Programozás házi. Számbekérés, case változó. Hogyan kell?
Sziasztok.
Tudnátok segíteni?
A feladat így szól:
Írjuk ki, hogy 'Hányadik hónapja van az évnek jelenleg?'
számbekérés 1-12ig.
Ha
1..4 akkor Ki:'Elso negyed'
5..8 akkor Ki:'Második negyed'
9..12 akkor Ki:'Harmadik negyed'
különben
Ki: 'Hibás adat'
Lazarusban dolgozunk. Pascal nyelven.
A választ hálásan köszönöm.
Szóval a program elején a változókhoz mit kell megadni?
És a case-t hogyan kell deklarálni?
Nem tudom miért törölték az előbbi hozzászólásomat a hozzáértő moderátorok amikor csak 5 sor kód volt benne :(
A case-t nem magyarázom annyira, olyan mint sok egymásba ágyazott if - nem kell deklarálni.
var szam: Integer;
begin
WriteLn('Hanyadik honap van jelenleg?');
Write('Irj be egy szamot: ');
ReadLn(szam);
case szam of
1..3: WriteLn('Elso negyed');
4..6: WriteLn('Masodik negyed');
7..9: WriteLn('Harmadik negyed');
10..12: WriteLn('Negyedik negyed');
else
WriteLn('Erre nem tudok mit lepni.');
end; //case
ReadLn;
end.
Igen,lány vagyok:).
Őszintén az osztályban egyedül vagyok lány, a fiúk pedig nem túl segítőkészek.
1. Nyilván számot. Mivel kicsi, pozitív egész számról van szó, elég a byte.
var c, byte;
2. Mifenének kéne a CASE-et deklarálni? Ugyanolyan nyelvi elem, mint mondjuk az IF. Remélem, nem akarod a program minden szavát külön deklarálni, mert úgy kissé nehezen érsz a végére. Különösen a deklarációs résznek...
Mellesleg: Alkalmas adatok esetén vizsgálhatnál CHAR változóra is, így:
'1'..'4' : WriteLn('akármi');
...de itt kétkarakteres számok is lehetnek, tehát a CHAR alkalmatlan. Amúgy meg nem javaslom, amíg a 8 és a '8' közötti különbség nem világos a számodra. Utána majd igen, sőt, a hibák kiküszöbölésének fontos eszköze a szöveges adatbevitel. Csak nem ész nélkül.
Egyébként elég furcsán negyedeled az évet -- tudom, hogy magánügy, csak megemlítem. A program ettől még működhetne, csak hülyeségeket írna ki.
Egy kis 'okoskodás' :)
var szam: char;
begin
WriteLn('Hanyadik honap van jelenleg?');
Write('Irj be egy szamot, de hogy lássuk mennyit értesz az informatikához' + #10#13 + 'hexadecimálisan kérem: ');
ReadLn(szam);
case UpCase(szam) of
'1'..'3': WriteLn('Elso negyed');
'4'..'6': WriteLn('Masodik negyed');
'7'..'9': WriteLn('Harmadik negyed');
'A'..'C': WriteLn('Negyedik negyed');
else
WriteLn('Erre nem tudok mit lepni.');
end; //case
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!