Kezdőoldal » Számítástechnika » Programozás » Hogyan kell a következő...

Hogyan kell a következő feladatot megoldani Pascalban?

Figyelt kérdés

Kérjen be egy szöveget és egy színt! A bekért szöveget írassa ki a bekért színnel!


Tudom, hogy csak féle angol színt tudok megadni, viszont a Free Pascal program csak számkódokkal fogadná el, úgy, ahogy én próbáltam. Tehát azt mondja, hogy a változót byte-ban deklaráljam, ne stringben...


Esetleg valaki le tudná nekem írni ezt a kis programot, úgy, hogy angol színt keljen beírni? Előre is köszönöm! :)


2015. júl. 18. 16:37
1 2
 11/12 SimkoL ***** válasza:

#9, #10: Kicsit átírtam a tiedet, ha lúd legyen kövér alapon:


program project1;


uses

Classes, Crt;


const

szinek: array[0..15] of string =

('black', 'blue', 'green', 'cyan', 'red', 'magenta', 'brown', 'lightgray', 'darkgray',

'lightblue', 'lightgreen', 'lightcyan', 'lightred', 'lightmagenta', 'yellow', 'white');

mszinek: array[0..15] of string =

('Fekete', 'Kék', 'Zöld', 'Ciánkék', 'Vörös', 'Lila', 'Barna', 'Világosszürke', 'Sötétszürke',

'Világoskék', 'Világoszöld', 'Világos ciánkék', 'Világos vörös', 'Világoslila', 'Sárga', 'Fehér');


var

szin, szo: string;

szkod: integer;

sznevek, msznevek: TStringList;


begin

sznevek := TStringList.Create;

msznevek := TStringList.Create;

for szkod := Low(szinek) to High(szinek) do sznevek.Append(szinek[szkod]);

for szkod := Low(mszinek) to High(mszinek) do msznevek.Append(mszinek[szkod]);

ClrScr;

TextAttr := $0F;

Write(#10#13, 'Kérem a kiírandó szöveget: ');

ReadLn(szo);

repeat

TextAttr := $0F;

Write(#10#13, 'Kérem a szín nevét ("?" -> help, "exit" -> kilép): ');

ReadLn(szin);

if LowerCase(szin) = 'exit' then

begin

sznevek.Free;

msznevek.Free;

Halt(0);

end;

if szin = '?' then

begin

WriteLn(#10#13, 'Használható szín constansok: ', #10#13);

for szkod := 0 to 4 do Write(mszinek[szkod], ': ',szinek[szkod], ' ');

WriteLn;

for szkod := 5 to 8 do Write(mszinek[szkod], ': ',szinek[szkod], ' ');

WriteLn;

for szkod := 9 to 11 do Write(mszinek[szkod], ': ',szinek[szkod], ' ');

WriteLn;

for szkod := 12 to 15 do Write(mszinek[szkod], ': ',szinek[szkod], ' ');

WriteLn;

end;

if szin <> '?' then

begin

szkod := sznevek.IndexOf(szin);

if szkod = -1 then szkod := msznevek.IndexOf(szin);

if (szkod = -1) then WriteLn(#10#13, 'Ilyen nevű szín: "', szin, '" nincs a készletben!')

else

begin

WriteLn(#10#13, 'Kód: ', szkod, ' Név: ', msznevek[szkod], ' Constans: ', sznevek[szkod]);

TextAttr := szkod;

WriteLn;

if szkod < 7 then TextAttr := 7 * 16 + szkod;

WriteLn(szo);

end;

end;

until False;

end.

2015. júl. 20. 11:53
Hasznos számodra ez a válasz?
 12/12 A kérdező kommentje:
Köszönöm szépen a segítséget! Bár utólag a megoldókulcsból kiderült, hogy elég lett volna csak a kódját beírni... kár, hogy nem fogalmazott egyértelműen a feladat... a case ... of szerkezet tűnt nekem a legideálibbnak :) a többiben van olyan, amit még nem tanultam. :)
2015. júl. 24. 20:48
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!