Szükséges
PascalABC. NET vagy PascalTurbo programozási környezet
Utasítás
1. lépés
Tehát először nyissuk meg a programot. Hozzunk létre egy új fájlt, és adjuk meg a beépülő modulokat. Ebben az esetben szükségünk van egy modulra a konzollal való munkához - CRT.
erre írjuk:
használ
KATÓDSUGÁRCSŐ;
2. lépés
Jelöljük az i, s, m - a valós típusú változókat.
var
i, s, m: Valódi;
3. lépés
A program indításához írja be:
kezdődik
És megadjuk a konzolablak címét:
SetWindowTitle ('Stopper');
4. lépés
A TextColor eljárás színt rendel a szöveghez, az Write utasítás pedig megjeleníti a szöveget a képernyőn:
TextColor (világos zöld);
WriteLn ('A stopper elindításához nyomja meg az Enter billentyűt');
WriteLn ('Nyomja meg újra a leállításhoz');
Write ('Kattintson újra az újrakezdéshez');
Az Ln vége a következő sorra lép.
5. lépés
A ReadLn operátor beírja az értékeket a billentyűzetről, de ebben az esetben csak arra vár, hogy a felhasználó lenyomja az Enter billentyűt:
ReadLn;
6. lépés
Végtelen hurkot készítünk:
míg (igaz) csinál
kezdődik
A while (true) do begin konstrukció fordítása a következő: míg (feltétel) do (). Miért kezdődik itt?
Ebben az esetben összetett operátorra van szükségünk, ami azt jelenti, hogy bár a feltétel igaz, több operátor is végrehajtásra kerül. Ha nem kezdődne el, akkor a While után csak egy utasítás futott le, ami a program hibás működéséhez vezetne. A While utasítás végén a végére véget írunk.
7. lépés
Most állítsuk vissza a számlálót:
i: = 0;
8. lépés
A következő állítás a következőképpen fordítódik le: addig, amíg a do () billentyűt meg nem nyomják.
miközben nem nyomják meg a billentyűt
kezdődik
A ClrScr operátor törli a képernyőt:
ClrScr;
9. lépés
Megállapítottuk a feltételt: ha a másodperc meghaladja a 60-at és kevesebb, mint 3600 (erre azért van szükség, hogy ha az idő meghaladja az egy órát, akkor a program csak azt írja ki, ami a harmadik után van, ha), akkor:
ha (i> 60) és (i <3600) akkor kezdődik
Az m (perc) változó egyenlő: másodperc osztva 60-mal és előre kerekítve.
m: = Int (i / 60);
Az s változó (percek perc nélkül) egyenlő: minden másodperc mínusz perc szorozva 60-mal.
s: = i - m * 60;
10. lépés
A Write utasítás megírja, hogy hány perc és másodperc telt el, és a végutasítás befejezi a start munkáját az if feltétel alapján:
Írja (m, "perc (ek) és", s: 1: 2, "másodperc (ek)")
vége;
Funkció: 1: 2 azt jelenti, hogy a másodperceket két tizedesjegygel kell írni.
11. lépés
Ha a másodperc kevesebb, mint 60, akkor írja be, hogy hány másodperc telt el két tizedesjegy pontossággal:
ha i <60 akkor
Írás ('', i: 1: 2, 'másodperc (a / s)');
12. lépés
Ha a másodperc meghaladja a 3600-ot (vagyis több mint egy órát), akkor:
ha i> 3600 akkor kezdődik
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Írja (ch, 'óra (s)', m, 'perc (ek) és', s: 1: 2, 'másodperc (ek)');
vége;
13. lépés
Tehát a program azt írta, hogy 0 másodperc telt el, most 10 milliszekundummal növeli az i számlálót, és mivel a program mindent azonnal elvégez, késleltetünk ugyanannyira:
i: = i + 0,01;
Késés (10);
Ezután véget vessünk a While (nem billentyűzetes) utasításnak:
vége;
Ha a felhasználó megnyomta az Enter billentyűt, akkor a program megvárja, amíg újra megnyomja a stopper újrakezdéséhez:
Readln;
Readln;
Nem véletlen, hogy a számlálót nulla értékre állítjuk a While (true) utasítás után, mert amikor a felhasználó másodszor megnyomja az Enter billentyűt, a program onnan indul, visszaállítja a számlálót és újra elkezdi a számlálást.
Ezután befejezzük a While és az egész programot:
vége;
14. lépés
Itt van a teljes program:
használ
KATÓDSUGÁRCSŐ;
var
i: Valódi;
s: Valódi;
m: Valódi;
ch: Igazi;
kezdődik
SetWindowTitle ('Stopper');
TextColor (világos zöld);
WriteLn ('A stopper elindításához nyomja meg az Enter billentyűt');
WriteLn ('Nyomja meg újra a leállításhoz');
Write ('Kattintson újra az újrakezdéshez');
ReadLn;
míg (igaz) csinál
kezdődik
i: = 0;
miközben nem nyomják meg a billentyűt
kezdődik
ClrScr;
ha (i> 60) és (i <3600) akkor kezdődik
m: = Int (i / 60);
s: = i - m * 60;
Írja (m, "perc (ek) és", s: 1: 2, "másodperc (ek)")
vége;
ha i <60 akkor
Írás ('', i: 1: 2, 'másodperc (a / s)');
ha i> 3600 akkor kezdődik
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Írja (ch, 'óra (s)', m, 'perc (ek) és', s: 1: 2, 'másodperc (ek)');
vége;
i: = i + 0,01;
Késés (10);
vége;
Readln;
Readln;
vége;
vége.
15. lépés
Kiderült, hogy nem túl szép, de a program megfelelően működik!