Hogyan kell a következő feladatot megoldani Pascalban?
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! :)
#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.
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!