Nevyhnutné
Programovacie prostredie PascalABC. NET alebo PascalTurbo
Inštrukcie
Krok 1
Najprv teda otvorme program. Vytvorme nový súbor a určime doplnky. V takom prípade potrebujeme modul pre prácu s konzolou - CRT.
za to napíšeme:
používa
CRT;
Krok 2
Uveďme premenné i, s, m - premenné skutočného typu.
var
i, s, m: skutočné;
Krok 3
Program spustíte napísaním:
začať
A označíme názov okna konzoly:
SetWindowTitle ('Stopky');
Krok 4
Procedúra TextColor priradí textu farbu a príkaz Write zobrazí text na obrazovke:
TextColor (LightGreen);
WriteLn ('Stopky spustíte stlačením klávesu Enter');
WriteLn ('Ďalším stlačením zastavíte');
Napísať („Opätovným kliknutím znova začnete“);
Koncová Ln sa posúva na ďalší riadok.
Krok 5
Operátor ReadLn zadáva hodnoty z klávesnice, ale v takom prípade iba čaká, kým používateľ klikne na kláves Enter:
ReadLn;
Krok 6
Vytvoríme nekonečnú slučku:
while (true) do
začať
Konštrukcia while (true) do begin sa prekladá ako: While (condition) do (). Prečo je to tu?
V tomto prípade potrebujeme zložený operátor, čo znamená, že aj keď je podmienka pravdivá, vykoná sa niekoľko operátorov. Ak by to nebolo na začiatku, potom sa po vykonaní príkazu While vykonal iba jeden príkaz, ktorý by viedol k nesprávnej činnosti programu. Na záver príkazu While na konci napíšeme koniec.
Krok 7
Teraz vynulujeme počítadlo:
i: = 0;
Krok 8
Nasledujúci príkaz sa prekladá ako: kým nestlačíte kláves do ().
aj keď nie je stlačený kláves
začať
Operátor ClrScr vymaže obrazovku:
ClrScr;
Krok 9
Nastavili sme podmienku: ak sú sekundy viac ako 60 a menej ako 3600 (je to nevyhnutné, aby pri čase viac ako hodinu program vytlačil iba to, čo je po tretej, ak), potom:
if (i> 60) a (i <3600) potom začnú
Premenná m (minúty) sa rovná: sekundy delené 60 a zaokrúhlené smerom dopredu.
m: = Int (i / 60);
A premenná s (sekundy bez minút) sa rovná: všetky sekundy mínus minúty vynásobené 60.
s: = i - m * 60;
Krok 10
Príkaz Write píše, koľko minút a sekúnd už uplynulo, a príkaz end končí prácu začiatku po splnení podmienky if:
Píšte (m, 'minúty (s) a', s: 1: 2, 'sekundy (s)')
koniec;
Funkcia: 1: 2 znamená, že sekundy by sa mali písať s dvoma desatinnými miestami.
Krok 11
Ak sú sekundy menej ako 60, stačí napísať, koľko sekúnd uplynulo s dvoma desatinnými miestami:
ak i <60 potom
Zápis ('', i: 1: 2, 'sekundy (a / s)');
Krok 12
Ak sú sekundy viac ako 3 600 (teda viac ako hodinu), potom:
ak i> 3600 tak začni
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Píšte (ch, 'hodina (y)', m, 'minúty (minúty) a', s: 1: 2, 'sekundy (y)');
koniec;
Krok 13
Program teda napísal, že uplynulo 0 sekúnd, teraz zvyšuje počítadlo i o 10 milisekúnd, a pretože program robí všetko okamžite, urobíme oneskorenie o rovnaký čas:
i: = i + 0,01;
Oneskorenie (10);
Ďalej urobíme koniec príkazu While (nie je stlačené):
koniec;
Ak používateľ stlačil kláves Enter, program počká, kým ho opätovným stlačením znova spustí stopky:
Readln;
Readln;
Nie je náhoda, že po príkaze While (true) nastavíme počítadlo na nulu, pretože keď používateľ druhýkrát stlačí Enter, program sa spustí odtiaľ, vynuluje počítadlo a začne znova počítať.
Ďalej ukončíme program While a pre celý program:
koniec;
Krok 14
Tu je kompletný program:
používa
CRT;
var
i: Real;
s: Real;
m: Real;
ch: Real;
začať
SetWindowTitle ('Stopky');
TextColor (LightGreen);
WriteLn ('Stopky spustíte stlačením klávesu Enter');
WriteLn ('Opätovným stlačením zastavíte');
Napísať („Opätovným kliknutím znova začnete“);
ReadLn;
while (true) do
začať
i: = 0;
aj keď nie je stlačený kláves
začať
ClrScr;
if (i> 60) a (i <3600) potom začnú
m: = Int (i / 60);
s: = i - m * 60;
Píšte (m, 'minúty (s) a', s: 1: 2, 'sekundy (s)')
koniec;
ak i <60 potom
Zápis ('', i: 1: 2, 'sekundy (a / s)');
ak i> 3600 tak začni
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Píšte (ch, 'hodina (y)', m, 'minúty (minúty) a', s: 1: 2, 'sekundy (y)');
koniec;
i: = i + 0,01;
Oneskorenie (10);
koniec;
Readln;
Readln;
koniec;
koniec.
Krok 15
Ukázalo sa to nie veľmi pekné, ale program funguje správne!