Nødvendig
PascalABC. NET eller PascalTurbo programmeringsmiljø
Instruktioner
Trin 1
Så lad os først åbne programmet. Lad os oprette en ny fil og specificere plugins. I dette tilfælde har vi brug for et modul til at arbejde med konsollen - CRT.
til dette vil vi skrive:
anvendelser
CRT;
Trin 2
Lad os angive variablerne i, s, m - variabler af den reelle type.
var
i, s, m: Real;
Trin 3
For at starte programmet skal du skrive:
begynde
Og vi vil angive titlen på konsolvinduet:
SetWindowTitle ('Stopur');
Trin 4
TextColor-proceduren tildeler en farve til teksten, og skriverklæringen viser teksten på skærmen:
TextColor (LightGreen);
WriteLn ('Tryk på Enter for at starte stopur');
WriteLn ('Tryk igen for at stoppe');
Skriv ('Klik igen for at starte forfra');
Slutningen Ln flytter til næste linje.
Trin 5
ReadLn-operatøren indtaster værdier fra tastaturet, men i dette tilfælde venter det bare på brugeren at trykke Enter:
ReadLn;
Trin 6
Vi laver en uendelig løkke:
mens (sandt) gør
begynde
The while (true) begynder konstruktion oversættes som: While (condition) do (). Hvorfor begynder her?
I dette tilfælde har vi brug for en sammensat operator, hvilket betyder, at mens betingelsen er sand, udføres flere operatører. Hvis det ikke var for at begynde, blev der kun udført én erklæring efter While, hvilket ville føre til forkert programdrift. For at afslutte While-erklæringen i slutningen skriver vi slutningen.
Trin 7
Lad os nu nulstille tælleren:
i: = 0;
Trin 8
Følgende udsagn oversættes som: indtil der trykkes på do () -tasten.
mens ikke tastetryk gør
begynde
ClrScr-operatøren rydder skærmen:
ClrScr;
Trin 9
Vi indstiller betingelsen: Hvis sekunder er mere end 60 og mindre end 3600 (dette er nødvendigt, så når tiden er mere end en time, udskriver programmet kun det, der er efter det tredje, hvis), så:
hvis (i> 60) og (i <3600) så start
Variablen m (minutter) er lig med: sekunder divideret med 60 og afrundet til fronten.
m: = Int (i / 60);
Og variablen s (sekunder uden minutter) er lig med: alle sekunder minus minutter ganget med 60.
s: = i - m * 60;
Trin 10
Skriverklæringen skriver, hvor mange minutter og sekunder der er gået, og sluterklæringen afslutter arbejdet med begyndelsen efter if-betingelsen:
Skriv (m, 'minutter (er) og', s: 1: 2, 'sekunder (s)')
ende;
Funktion: 1: 2 betyder, at sekunder skal skrives med to decimaler.
Trin 11
Hvis sekunder er mindre end 60, så skriv bare hvor mange sekunder der er gået med to decimaler:
hvis jeg er <60 så
Skriv ('', i: 1: 2, 'sekunder (a / s)');
Trin 12
Hvis sekunder er mere end 3600 (dvs. mere end en time), så:
hvis jeg> 3600 så start
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Skriv (ch, 'time (r)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)');
ende;
Trin 13
Så programmet skrev, at der er gået 0 sekunder, nu øger det tælleren i med 10 millisekunder, og da programmet gør alt med det samme, gør vi en forsinkelse på samme tid:
i: = i + 0,01;
Forsinkelse (10);
Derefter afslutter vi udsagnet While (ikke tastetryk):
ende;
Hvis brugeren trykkede på Enter-tasten, venter programmet på, at han trykker på den igen for at starte stopuret igen:
Readln;
Readln;
Det er ikke tilfældigt, at vi indstiller tælleren til nul efter While (sand) udsagnet, for når brugeren trykker Enter igen, starter programmet derfra, nulstiller tælleren og begynder at tælle igen.
Derefter afslutter vi While og for hele programmet:
ende;
Trin 14
Her er det komplette program:
anvendelser
CRT;
var
i: Virkelig;
s: Rigtig;
m: Rigtig;
ch: Virkelig;
begynde
SetWindowTitle ('Stopur');
TextColor (LightGreen);
WriteLn ('Tryk på Enter for at starte stopur');
WriteLn ('Tryk igen for at stoppe');
Skriv ('Klik igen for at starte forfra');
LæsLn;
mens (sandt) gør
begynde
i: = 0;
mens ikke tastetryk gør
begynde
ClrScr;
hvis (i> 60) og (i <3600) så start
m: = Int (i / 60);
s: = i - m * 60;
Skriv (m, 'minutter (er) og', s: 1: 2, 'sekunder (s)')
ende;
hvis jeg er <60 så
Skriv ('', i: 1: 2, 'sekunder (a / s)');
hvis jeg> 3600 så start
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Skriv (ch, 'time (r)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)');
ende;
i: = i + 0,01;
Forsinkelse (10);
ende;
Readln;
Readln;
ende;
ende.
Trin 15
Det viste sig ikke meget rart, men programmet fungerer korrekt!