Hogyan tudnám megcsinálni? Milyen parancs kell ide?
@SimkoL:
Gyanúm, hogy Kérdező a kész lehetőségeket még nem használja, hanem maga akarja felépíteni a rendszert alapelemekből.
@Kérdező:
Nem egészen értem, hogy mit csinálsz, de első blikkre az tűnik logikusnak, hogy használj tömböt, és a beolvasott hónapszámmal indexeld.
Például, csak ez a rész, nagyon leegyszerűsítve valahogy így:
var
melyikhonap: byte;
honap: array[1..12] of byte;
begin
// feltöltöd a tömb elemeit a napok számával:
honap[1] := 31;
honap[2] := 28;
honap[3] := 31;
.
.
.
// stb.
readln(melyikhonap);
writeln('Ebben a hónapban ', honap[melyikhonap], ' nap van.');
end.
Természetesen ez finomítandó, pl. szökőévekben honap[2] értékéhez egyet hozzá kell adnod a kiíráskor, a beolvasás hibalehetőségeit ki kell szűrnöd, stb.
Szerintem hasznos lenne, ha a kész programodat feltennéd valahova (mondjuk [link] ), hátha még tudunk tanácsokat adni.
Ööö... hoppá, szánom-bánom, SimkoL, a kapkodásban elfeledkeztem a szépészeti javaslataidról.
Gyorsan a vonatkozó linked:
Tehát -- annak ellenére, hogy a pascal nem érzékeny a kis- és nagybetűk közti különbségre, érdemes megszokni a korrekt használatukat, mert később más nyelvekben ez majd életbevágó is lehet. Vagyis korrigálva:
ReadLn(melyikhonap);
WriteLn('Ebben a hónapban ', honap[melyikhonap], ' nap van.');
Egy (valamilyen szinten) működőképes változat:
program napok_szama;
var
melyik_ev : integer;
melyik_honap : byte;
honap : array[1..12] of byte =
(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
Write('Melyik évről van szó? ');
ReadLn(melyik_ev);
Write('Melyik hónapra vagy kíváncsi? ');
ReadLn(melyik_honap);
Write(melyik_ev, '. év ', melyik_honap, '. hónapjában ');
if (melyik_honap = 2) and (melyik_ev mod 4 = 0) then
Write(honap[melyik_honap] + 1)
else
Write(honap[melyik_honap]);
WriteLn(' nap van.');
end.
Szánom-bánom elfogadva :), de hadd javítsak picit egy függvénnyel:
function szokoev(ev : integer) : Boolean;
begin
{Szökőévek a következők: minden néggyel osztható év,
kivéve a százzal is oszthatókat. Szökőévek viszont a
400-zal osztható évek. Vagyis a századfordulók évei
közül csak azok szökőévek, amelyek 400-zal is oszthatók.}
szokoev := (ev mod 4 = 0) and (ev mod 100 <> 0) ;
if ev mod 400 = 0 then szokoev := True;
end;
Én nem akartam megírni a programodat, csak egy jelentéktelen részfeladatára, a hónapokban lévő napok számának lekérdezésére írtam egy javaslatot.
A képedből nem derül ki a két időpont közötti különbség kiszámolásának módja, érdekelne, hogy erre mi az elképzelésed.
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!