Eléggé új vagyok még a C programozásban és kaptam egy feladatot. Ki kellene rajzoltatni egy tetszőleges betűt pl. : B tetszőleges jelekkel pl. : #-kal. Hogyan tudnám ezt kivitelezni függvénnyel hogy általánosan működjön?
Igaz ez nem függvénnyel van de az én próbálkozásom így nézett ki:
#include <stdio.h>
int main(){
int sor;
int oszlop;
int oldal=6;
for(sor=1;sor<oldal;sor++){
for(oszlop=1;oszlop<oldal;oszlop++)
if((sor%2!=0 && oszlop==oldal-1) || (sor%2==0 && oszlop!=1 && oszlop!=oldal-1))
printf(" ");
else
printf("&");
printf("\n");
}
}
Pl. a függvény két paramétert vár: egy mátrixot, mely boolean értékeket tartalmaz és egy char-t.
Egy ciklussal végigmész a mátrix összes során, a soron belül az összes elemen és ahol true van, ott kiírod a char-t, ahol pedig false, ott egy space-t. Ha a mátrix sorának végére értél, akkor csinálsz egy LF, CR-t.
CR := carriage return - kocsi vissza - $0D
LF := line feed - soremelés -$0A
Javaslom figyelmedbe az 5*7 mátrixkijelző karaktereit:
hogy ne kelljen hosszú sztringeket tárolnod, egy karakter állhat 5 (oszlopok) vagy 7 (sorok) számból - például a 0 sorai:
int a[7] = {14,17,19,21,25,17,14};
itt egy számból visszaszámolhatod annak bináris reprezentációját, és a szerint rakhatsz #-t vagy szóközt
14 = 01110 = .###.
17 = 10001 = #...#
19 = 10011 = #..##
21 = 10101 = #.#.#
25 = 11001 = ##..#
17 = 10001 = #...#
14 = 01110 = .###.
A fentihez hasonló esetben teljesen kötött adatokról van szó, a két érték maximum annyit adhat meg, hogy az általad eltárolt képből mekkora részletet jelenítsen meg. Kicsinyíteni vagy nagyítani nem fogja. Általános esetben szerintem csak úgy oldható meg, ha minden engedélyezett oldalmérethez külön tárolod a mintázatot. (Vagy nem értem, mire gondolsz a két méret megadásával.)
Az egyébként érdekes feladatnak tűnik, hogy egy bizonyos alkalmas betűt hogyan tudsz növelni a mintázat ismételhető részeinek beszúrásával.
" Az ésszerűség miatt - hadd ne kelljen elmagyarázni - 8 x valahanyas mátrix az értelemszerű."
Mondjuk a pontmátrixos kijelzőknél a kijelző tényleg 8*x szélesek és 8*y magasak (az x és y értékek egész számok), de a karakterek mindenféle méretűek lehetnek:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!