Nezbytné
Programovací prostředí PascalABC. NET nebo PascalTurbo
Instrukce
Krok 1
Nejprve tedy otevřete program. Vytvořme nový soubor a určíme doplňky. V tomto případě potřebujeme modul pro práci s konzolou - CRT.
k tomu napíšeme:
používá
CRT;
Krok 2
Uveďme proměnné i, s, m - proměnné reálného typu.
var
i, s, m: Skutečné;
Krok 3
Pro spuštění programu napište:
začít
A označíme název okna konzoly:
SetWindowTitle ('Stopky');
Krok 4
Procedura TextColor přiřadí textu barvu a příkaz Write zobrazí text na obrazovce:
TextColor (LightGreen);
WriteLn ('Stopky spustíte stisknutím klávesy Enter');
WriteLn ('Zastavit dalším stisknutím');
Napište („Opětovným kliknutím znovu začnete“);
Koncová Ln se přesune na další řádek.
Krok 5
Operátor ReadLn zadává hodnoty z klávesnice, ale v tomto případě pouze čeká, až uživatel stiskne klávesu Enter:
ReadLn;
Krok 6
Vytváříme nekonečnou smyčku:
while (true) do
začít
Konstrukce while (true) do begin se překládá jako: While (podmínka) do (). Proč tady začít?
V tomto případě potřebujeme složený operátor, což znamená, že i když je podmínka pravdivá, provede se několik operátorů. Pokud by to nebylo pro začátek, pak po chvíli byl proveden pouze jeden příkaz, což by vedlo k nesprávné činnosti programu. Pro ukončení příkazu While na konci napíšeme end.
Krok 7
Nyní resetujme počítadlo:
i: = 0;
Krok 8
Následující příkaz se překládá jako: dokud nestisknete klávesu do ().
zatímco není stisknuto tlačítko
začít
Operátor ClrScr vymaže obrazovku:
ClrScr;
Krok 9
Nastavili jsme podmínku: pokud jsou sekundy více než 60 a méně než 3600 (je to nutné, aby v případě, že je čas více než hodinu, program vytiskne pouze to, co je po třetí, pokud), pak:
if (i> 60) and (i <3600) then begin
Proměnná m (minuty) se rovná: sekund děleno 60 a zaokrouhleno dopředu.
m: = Int (i / 60);
A proměnná s (sekundy bez minut) se rovná: všechny sekundy minus minuty vynásobené 60.
s: = i - m * 60;
Krok 10
Příkaz Write zapíše, kolik minut a sekund uplynulo, a příkaz end ukončí práci začátku po podmínce if:
Zápis (m, 'minuty a', s: 1: 2, 'sekundy')
konec;
Funkce: 1: 2 znamená, že sekundy by měly být psány se dvěma desetinnými místy.
Krok 11
Pokud jsou sekundy menší než 60, stačí napsat, kolik sekund uplynulo se dvěma desetinnými místy:
pokud i <60 pak
Zápis ('', i: 1: 2, 'sekundy (a / s)');
Krok 12
Pokud jsou sekundy delší než 3600 (tj. Více než hodinu), pak:
pokud i> 3600, pak začni
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Write (ch, 'hour (s)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)');
konec;
Krok 13
Program tedy napsal, že uplynulo 0 sekund, nyní zvyšuje čítač i o 10 milisekund, a protože program dělá vše okamžitě, uděláme zpoždění na stejnou dobu:
i: = i + 0,01;
Zpoždění (10);
Dále uděláme konec příkazu While (není stisknuto):
konec;
Pokud uživatel stiskl klávesu Enter, program čeká na jeho další stisknutí, aby se stopky znovu spustily:
Readln;
Readln;
Není náhodou, že jsme po příkazu While (true) nastavili počitadlo na nulu, protože když uživatel podruhé stiskne Enter, program se spustí odtud, vynuluje počítadlo a začne znovu počítat.
Dále ukončíme program While a pro celý program:
konec;
Krok 14
Zde je kompletní program:
používá
CRT;
var
i: Skutečné;
s: Skutečné;
m: Skutečné;
ch: Skutečné;
začít
SetWindowTitle ('Stopky');
TextColor (LightGreen);
WriteLn ('Stopky spustíte stisknutím klávesy Enter');
WriteLn ('Zastavit dalším stisknutím');
Napsat („Opětovným kliknutím znovu začít“);
ReadLn;
while (true) do
začít
i: = 0;
zatímco není stisknuto tlačítko
začít
ClrScr;
if (i> 60) and (i <3600) then begin
m: = Int (i / 60);
s: = i - m * 60;
Zápis (m, 'minuty a', s: 1: 2, 'sekundy')
konec;
pokud i <60 pak
Write ('', i: 1: 2, 'seconds (a / s)');
pokud i> 3600, pak začni
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Write (ch, 'hour (s)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)');
konec;
i: = i + 0,01;
Zpoždění (10);
konec;
Readln;
Readln;
konec;
konec.
Krok 15
Ukázalo se to ne moc hezké, ale program funguje správně!