E nevojshme
Mjedisi i programimit PascalABC. NET ose PascalTurbo
Udhëzimet
Hapi 1
Pra, së pari, le të hapim programin. Le të krijojmë një skedar të ri dhe të specifikojmë shtojcat. Në këtë rast, na duhet një modul për të punuar me konsolën - KRRT.
për këtë do të shkruajmë:
përdor
KRRT;
Hapi 2
Le të tregojmë variablat i, s, m - variablat e tipit real.
var
i, s, m: Real;
Hapi 3
Për të filluar programin, shkruaj:
filloj
Dhe ne do të tregojmë titullin e dritares së konsolës:
SetWindowTitle ('Kronometri');
Hapi 4
Procedura TextColor i cakton një ngjyrë tekstit dhe deklarata Shkruaj e shfaq tekstin në ekran:
Ngjyra e Tekstit (GreenGreen);
WriteLn ('Shtypni Enter për të filluar kronometrin');
ShkruaniLn ('Shtypni përsëri për të ndaluar');
Shkruaj ('Kliko përsëri për të filluar nga e para');
Ln që mbaron lëviz në rreshtin tjetër.
Hapi 5
Operatori ReadLn fut vlera nga tastiera, por në këtë rast ai thjesht pret që përdoruesi të godasë Enter:
ReadLn;
Hapi 6
Ne bëjmë një lak të pafund:
ndërsa (e vërtetë) bëj
filloj
Ndërtimi while (true) do të fillojë përkthehet si: Ndërsa (kushti) do (). Pse është fillimi këtu?
Në këtë rast, na duhet një operator i përbërë, që do të thotë se ndërsa kushti është i vërtetë, disa operatorë ekzekutohen. Nëse nuk do të ishte fillimi, atëherë pas Ndërsa, vetëm një deklaratë u ekzekutua, e cila do të çonte në funksionim të pasaktë të programit. Për ta përfunduar thënien Ndërsa në fund, shkruajmë fund.
Hapi 7
Tani le të rivendosim banakun:
i: = 0;
Hapi 8
Deklarata e mëposhtme përkthehet si: derisa të shtypet butoni do ().
ndërsa nuk është shtypur çelësi
filloj
Operatori ClrScr pastron ekranin:
ClrScr;
Hapi 9
Ne vendosim kushtin: nëse sekondat janë më shumë se 60 dhe më pak se 3600 (kjo është e nevojshme në mënyrë që kur koha të jetë më shumë se një orë, programi të shtypë vetëm atë që është pas të tretës nëse) atëherë:
nëse (i> 60) dhe (i <3600) atëherë fillojmë
Ndryshorja m (minuta) është e barabartë me: sekonda të ndara me 60 dhe të rrumbullakosura përpara.
m: = Int (i / 60);
Dhe ndryshorja s (sekonda pa minuta) është e barabartë me: të gjitha sekondat minus minuta shumëzuar me 60.
s: = i - m * 60;
Hapi 10
Deklarata Shkruani shkruan sa minuta dhe sekonda kanë kaluar, dhe deklarata përfundimtare përfundon punën e fillimit duke ndjekur gjendjen if:
Shkruaj (m, 'minuta (et) dhe', s: 1: 2, 'sekonda (s)')
fundi;
Funksioni: 1: 2 do të thotë që sekondat duhet të shkruhen me dy presje dhjetore.
Hapi 11
Nëse sekondat janë më pak se 60, atëherë thjesht shkruani sa sekonda kanë kaluar me dy presje dhjetore:
nëse i <60 atëherë
Shkruaj ('', i: 1: 2, 'sekonda (a / s)');
Hapi 12
Nëse sekondat janë më shumë se 3600 (domethënë më shumë se një orë) atëherë:
nëse i> 3600 atëherë fillo
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Shkruaj (ch, 'orë (et), m,' minutat (et) dhe ', s: 1: 2,' sekondat (et) ');
fundi;
Hapi 13
Pra, programi shkruajti se kanë kaluar 0 sekonda, tani ai rrit numrin e numrit 10 milisekonda, dhe meqë programi bën gjithçka menjëherë, ne bëjmë një vonesë për të njëjtën kohë:
i: = i + 0,01;
Vonesa (10);
Tjetra, ne i japim fund deklaratës Ndërsa (jo i shtypur në çelës):
fundi;
Nëse përdoruesi shtyp butonin Enter, atëherë programi pret që ai ta shtypë përsëri për të filluar përsëri kronometrin:
Readln;
Readln;
Nuk është rastësi që vendosim numëruesin në zero pas deklaratës Ndërsa (e vërtetë), sepse kur përdoruesi shtyp për herë të dytë Enter, programi do të fillojë nga atje, do të rivendosë numëruesin dhe do të fillojë përsëri të numërojë.
Tjetra, ne përfundojmë Ndërsa dhe për të gjithë programin:
fundi;
Hapi 14
Këtu është programi i plotë:
përdor
KRRT;
var
i: Real;
s: Real;
m: Real;
ch: Real;
filloj
SetWindowTitle ('Kronometri');
Ngjyra e Tekstit (GreenGreen);
WriteLn ('Shtypni Enter për të filluar kronometrin');
ShkruaniLn ('Shtypni përsëri për të ndaluar');
Shkruaj ('Kliko përsëri për të filluar nga e para');
ReadLn;
ndërsa (e vërtetë) bëj
filloj
i: = 0;
ndërsa nuk është shtypur çelësi
filloj
ClrScr;
nëse (i> 60) dhe (i <3600) atëherë fillojmë
m: = Int (i / 60);
s: = i - m * 60;
Shkruaj (m, 'minuta (et) dhe', s: 1: 2, 'sekonda (s)')
fundi;
nëse i <60 atëherë
Shkruaj ('', i: 1: 2, 'sekonda (a / s)');
nëse i> 3600 atëherë fillo
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Shkruaj (ch, 'orë (et), m,' minutat (et) dhe ', s: 1: 2,' sekondat (et) ');
fundi;
i: = i + 0,01;
Vonesa (10);
fundi;
Readln;
Readln;
fundi;
fundi
Hapi 15
Doli jo shumë bukur, por programi funksionon si duhet!