Potrebno
PascalABC. NET ili PascalTurbo programsko okruženje
Upute
Korak 1
Dakle, prvo, otvorimo program. Stvorimo novu datoteku i odredimo dodatke. U ovom slučaju trebamo modul za rad s konzolom - CRT.
za ovo ćemo napisati:
koristi
CRT;
Korak 2
Označimo varijable i, s, m - varijable stvarnog tipa.
var
i, s, m: Stvarno;
3. korak
Da biste pokrenuli program, napišite:
početi
I naznačit ćemo naslov prozora konzole:
SetWindowTitle ('Štoperica');
4. korak
Postupak TextColor tekstu dodjeljuje boju, a naredba Write prikazuje tekst na zaslonu:
Boja teksta (LightGreen);
WriteLn ('Pritisnite Enter za pokretanje štoperice');
WriteLn ('Pritisnite ponovno da biste zaustavili');
Write ('Kliknite ponovo da biste započeli ispočetka');
Završetak Ln pomiče se na sljedeći redak.
Korak 5
Operator ReadLn unosi vrijednosti s tipkovnice, ali u ovom slučaju samo čeka da korisnik pritisne Enter:
ReadLn;
Korak 6
Radimo beskrajnu petlju:
dok (istina) čine
početi
Konstrukcija while (true) do begin prevodi se kao: While (condition) do (). Zašto je ovdje započeti?
U ovom nam je slučaju potreban složeni operator, što znači da se, iako je uvjet istinit, izvršava nekoliko operatora. Da nije bilo početka, tada je nakon Dok je izvršena samo jedna naredba, što bi dovelo do pogrešnog rada programa. Za završetak izjave While na kraju pišemo end.
Korak 7
Sada resetirajmo brojač:
i: = 0;
Korak 8
Sljedeća se izjava prevodi kao: dok se ne pritisne tipka do ().
iako nije pritisnut tipkom
početi
Operator ClrScr briše zaslon:
ClrScr;
Korak 9
Postavili smo uvjet: ako su sekunde veće od 60, a manje od 3600 (to je neophodno da bi se, kada vrijeme traje više od jednog sata, program ispisao samo ono što je iza trećeg ako) tada:
ako (i> 60) i (i <3600) tada počinju
Varijabla m (minute) jednaka je: sekundama podijeljenim sa 60 i zaokruženim naprijed.
m: = Int (i / 60);
A varijabla s (sekunde bez minuta) jednaka je: sve sekunde minus minute pomnožene sa 60.
s: = i - m * 60;
Korak 10
Naredba Write zapisuje koliko je minuta i sekundi prošlo, a završna naredba završava rad početka slijedeći uvjet if:
Napiši (m, 'minute i minute', s: 1: 2, 'sekunde)')
kraj;
Funkcija: 1: 2 znači da sekunde treba pisati s dvije decimale.
11. korak
Ako su sekunde manje od 60, samo napišite koliko je sekundi prošlo s dvije decimale:
ako je i <60 onda
Napišite ('', i: 1: 2, 'sekunde (a / s)');
Korak 12
Ako su sekunde duže od 3600 (odnosno više od sata), tada:
ako je> 3600, tada započnite
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Napišite (ch, 'sat (i)', m, 'minute (i) i', s: 1: 2, 'sekunde (s)');
kraj;
Korak 13
Dakle, program je napisao da je prošlo 0 sekundi, sada povećava brojač i za 10 milisekundi, a budući da program sve radi odmah, napravimo kašnjenje za isto vrijeme:
i: = i + 0,01;
Kašnjenje (10);
Dalje, završavamo izjavu Dok (nije pritisnuta tipkom):
kraj;
Ako je korisnik pritisnuo tipku Enter, tada program čeka da je ponovo pritisne za ponovno pokretanje štoperice:
Readln;
Readln;
Nije slučajno da smo brojač postavili na nulu nakon naredbe While (true), jer kada korisnik drugi put pritisne Enter, program će se odatle pokrenuti, resetirati brojač i ponovno početi brojati.
Dalje, završavamo program While i za cijeli program:
kraj;
14. korak
Evo kompletnog programa:
koristi
CRT;
var
i: Stvarno;
s: Stvarno;
m: Stvarno;
ch: Stvarno;
početi
SetWindowTitle ('Štoperica');
Boja teksta (LightGreen);
WriteLn ('Pritisnite Enter za pokretanje štoperice');
WriteLn ('Pritisnite ponovno da biste zaustavili');
Write ('Ponovno kliknite za početak');
ReadLn;
dok (istina) čine
početi
i: = 0;
iako nije pritisnut tipkom
početi
ClrScr;
ako (i> 60) i (i <3600) tada počinju
m: = Int (i / 60);
s: = i - m * 60;
Napiši (m, 'minute i minute', s: 1: 2, 'sekunde)')
kraj;
ako je i <60 onda
Napišite ('', i: 1: 2, 'sekunde (a / s)');
ako je> 3600, tada započnite
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Napišite (ch, 'sat (i)', m, 'minute (i) i', s: 1: 2, 'sekunde (s)');
kraj;
i: = i + 0,01;
Kašnjenje (10);
kraj;
Readln;
Readln;
kraj;
kraj.
Korak 15
Ispalo je ne baš lijepo, ali program radi ispravno!