Necessari
Entorn de programació PascalABC. NET o PascalTurbo
Instruccions
Pas 1
Per tant, primer obrim el programa. Creem un fitxer i especifiquem els connectors. En aquest cas, necessitem un mòdul per treballar amb la consola - CRT.
per a això escriurem:
usos
CRT;
Pas 2
Indiquem les variables i, s, m - variables del tipus real.
var
i, s, m: Real;
Pas 3
Per iniciar el programa, escriviu:
començar
I indicarem el títol de la finestra de la consola:
SetWindowTitle ('Cronòmetre');
Pas 4
El procediment TextColor assigna un color al text i la sentència Write mostra el text a la pantalla:
TextColor (LightGreen);
WriteLn ('Premeu Retorn per iniciar el cronòmetre');
WriteLn ('Torneu a prémer per aturar');
Escriviu ('Feu clic de nou per tornar a començar');
El final Ln passa a la línia següent.
Pas 5
L’operador ReadLn introdueix valors des del teclat, però en aquest cas només espera que l’usuari faci clic a Retorn:
ReadLn;
Pas 6
Fem un bucle sense fi:
mentre que (cert) sí
començar
La construcció while (true) do begin es tradueix com: While (condition) do (). Per què comença aquí?
En aquest cas, necessitem un operador compost, cosa que significa que, mentre que la condició és certa, s’executen diversos operadors. Si no fos per començar, després de la Mentre, només es va executar una sentència, que conduiria a un funcionament incorrecte del programa. Per finalitzar la sentència While al final, escrivim end.
Pas 7
Ara restablim el comptador:
i: = 0;
Pas 8
La següent afirmació es tradueix com: fins que es prem la tecla do ().
mentre no es premen les tecles, feu-ho
començar
L'operador ClrScr neteja la pantalla:
ClrScr;
Pas 9
Establim la condició: si els segons són més de 60 i menys de 3600 (això és necessari perquè, quan el temps sigui superior a una hora, el programa imprimeixi només el que hi ha després del tercer si), llavors:
si (i> 60) i (i <3600) llavors comenceu
La variable m (minuts) és igual a: segons dividits per 60 i arrodonits al davant.
m: = Int (i / 60);
I la variable s (segons sense minuts) és igual a: tots els segons menys minuts multiplicats per 60.
s: = i - m * 60;
Pas 10
La sentència Write escriu quants minuts i segons han passat i la sentència final finalitza el treball de l'inici seguint la condició if:
Escriure (m, 'minuts i', s: 1: 2, 'segons (s)')
final;
Funció: 1: 2 vol dir que s’escriuen segons amb dos decimals.
Pas 11
Si els segons són inferiors a 60, escriviu quants segons han passat amb dos decimals:
si jo <60 llavors
Write ('', i: 1: 2, 'segons (a / s)');
Pas 12
Si els segons són més de 3600 (és a dir, més d’una hora), llavors:
si i> 3600, llavors comenceu
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Escriviu (ch, 'hora (s)', m, 'minuts (s) i', s: 1: 2, 'segons (s)'));
final;
Pas 13
Per tant, el programa va escriure que han passat 0 segons, ara augmenta el comptador i en 10 mil·lisegons i, com que el programa ho fa tot a l'instant, fem un retard al mateix temps:
i: = i + 0,01;
Retard (10);
A continuació, fem el final de la sentència While (no premuda amb la tecla):
final;
Si l’usuari va prémer la tecla Retorn, el programa espera que el torni a prémer per tornar a engegar el cronòmetre:
Readln;
Readln;
No és casual que definim el comptador a zero després de la sentència While (true), perquè quan l’usuari prem una tecla Enter una segona vegada, el programa començarà des d’allà, restablirà el comptador i començarà a comptar de nou.
A continuació, acabem el programa Mentre i per a tot el programa:
final;
Pas 14
Aquí teniu el programa complet:
usos
CRT;
var
i: Real;
s: Real;
m: Real;
ch: Real;
començar
SetWindowTitle ('Cronòmetre');
TextColor (LightGreen);
WriteLn ('Premeu Retorn per iniciar el cronòmetre');
WriteLn ('Torneu a prémer per aturar');
Escriu ('Fes clic de nou per tornar a començar');
ReadLn;
mentre que (cert) sí
començar
i: = 0;
mentre no es premen les tecles, feu-ho
començar
ClrScr;
si (i> 60) i (i <3600) llavors comenceu
m: = Int (i / 60);
s: = i - m * 60;
Escriure (m, 'minuts i', s: 1: 2, 'segons (s)')
final;
si jo <60 llavors
Write ('', i: 1: 2, 'segons (a / s)');
si i> 3600, llavors comenceu
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Escriviu (ch, 'hora (s)', m, 'minuts (s) i', s: 1: 2, 'segons (s)'));
final;
i: = i + 0,01;
Retard (10);
final;
Readln;
Readln;
final;
final.
Pas 15
No va ser molt agradable, però el programa funciona correctament.