Mégis mi a f*** baja van ezzel? (Pascal)
Nem tetszik neki sehogy sem a második case. Mindent próbáltam és lassan agykukim lesz.
program untitled;
uses crt;
var s,n : byte;
BEGIN
writeln('Adjon meg egy szamot (1-100), hogy kiirhassam betukkel!');
readln(s);
n:=s;
{if szam<=100 then
begin}
case s of
10 : write('tiz');
20 : write('husz');
30 : write('harminc');
40 : write('negyven');
50 : write('otven');
60 : write('hatvan');
70 : write('hetven');
80 : write('nyolcvan');
90 : write('kilencven');
100 : write('szaz');
end;
case n of
(n div 10=1) : write('tizen');
(n div 10=2) : write('huszon');
(n div 10=3) : write('harminc');
(n div 10=4) : write('negyven');
(n div 10=5) : write('otven');
(n div 10=6) : write('hatvan');
(n div 10=7) : write('hetven');
(n div 10=8) : write('nyolcvan');
(n div 10=9) : write('kilencven');
end;
{case s of
(s mod 10=1) : write('egy');
(s mod 10=2) : write('ketto');
(s mod 10=3) : write('harom');
(s mod 10=4) : write('negy');
(s mod 10=5) : write('ot');
(s mod 10=6) : write('hat');
(s mod 10=7) : write('het');
(s mod 10=8) : write('nyolc');
(s mod 10=9) : write('kilenc')
else
end;
else
writeln('Nem 1 es 100 kozott van.');
end;}
END.
nem irhatsz bele ilyet:
case n of
(n div 10=1) : write('tizen');
maximum ilyet:
case (n div 10) of
1 : write('tizen');
Érdekességképpen, hibakezeléssel:
program numtochar;
{$APPTYPE CONSOLE} //Delphi miatt
var egyesek : array[1..9] of string = ('egy', 'kettő', 'három', 'négy', 'öt',
'hat', 'hét', 'nyolc', 'kilenc');
egesztizesek : array[1..9] of string = ('tiz', 'husz', 'harminc', 'negyven', 'ötven',
'hatvan', 'hetven', 'nyolcvan', 'kilencven');
tizesek : array[1..9] of string = ('tizen', 'huszon', 'harminc', 'negyven', 'ötven',
'hatvan', 'hetven', 'nyolcvan', 'kilencven');
szam_s, s : string;
szam, hiba : integer;
begin
while (hiba <> 0) or (szam > 100) or (szam < 1) do
begin
Write('Adjon meg egy számot (1-100), hogy kiirhassam betűkkel: ');
ReadLn(szam_s);
Val(szam_s, szam, hiba);
if hiba <> 0 then WriteLn('Nem számot adott meg !');
if (hiba = 0) and (szam > 100) then WriteLn('A szám nem lehet nagyob 100-nál !');
if (hiba = 0) and (szam < 1) then WriteLn('A szám nem lehet kisebb 1-nél !');
end;
if szam < 10 then s := egyesek[szam mod 10];
if szam mod 10 = 0 then s := egesztizesek[szam div 10];
if (szam > 10) and (szam < 100) then s := tizesek[szam div 10] + egyesek[szam mod 10];
if szam mod 100 = 0 then s := 'száz';
WriteLn(szam, ' betűvel: ', s);
ReadLn;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!