Nécessaire
Environnement de programmation PascalABC. NET ou PascalTurbo
Instructions
Étape 1
Alors, d'abord, ouvrons le programme. Créons un nouveau fichier et spécifions les plugins. Dans ce cas, nous avons besoin d'un module pour travailler avec la console - CRT.
pour cela nous écrirons:
les usages
tube cathodique;
Étape 2
Désignons les variables i, s, m - variables de type réel.
var
i, s, m: réel;
Étape 3
Pour démarrer le programme, écrivez:
commencer
Et on indiquera le titre de la fenêtre de la console:
SetWindowTitle ('Chronomètre');
Étape 4
La procédure TextColor attribue une couleur au texte et l'instruction Write affiche le texte à l'écran:
TextColor (Vert Clair);
WriteLn ('Appuyez sur Entrée pour démarrer le chronomètre');
WriteLn ('Appuyez à nouveau pour arrêter');
Ecrire ('Cliquez à nouveau pour recommencer');
La fin Ln passe à la ligne suivante.
Étape 5
L'opérateur ReadLn entre les valeurs à partir du clavier, mais dans ce cas il attend simplement que l'utilisateur appuie sur Entrée:
ReadLn;
Étape 6
On fait une boucle sans fin:
tandis que (vrai) faire
commencer
La construction while (true) do begin se traduit par: While (condition) do (). Pourquoi commencer ici ?
Dans ce cas, nous avons besoin d'un opérateur composé, ce qui signifie que tant que la condition est vraie, plusieurs opérateurs sont exécutés. Si ce n'était pas pour commencer, alors après le While, une seule instruction a été exécutée, ce qui conduirait à un fonctionnement incorrect du programme. Pour terminer l'instruction While à la fin, nous écrivons end.
Étape 7
Réinitialisons maintenant le compteur:
je: = 0;
Étape 8
L'instruction suivante se traduit par: jusqu'à ce que la touche do () soit enfoncée.
pendant que vous n'appuyez pas sur la touche, faites
commencer
L'opérateur ClrScr efface l'écran:
ClrScr;
Étape 9
On pose la condition: si les secondes sont supérieures à 60 et inférieures à 3600 (cela est nécessaire pour que lorsque le temps est supérieur à une heure, le programme n'imprime que ce qui est après le troisième si) alors:
si (i> 60) et (i <3600) alors commencer
La variable m (minutes) est égale à: secondes divisées par 60 et arrondies au premier.
m: = Int (i / 60);
Et la variable s (secondes sans minutes) est égale à: toutes les secondes moins les minutes multipliées par 60.
s: = je - m * 60;
Étape 10
L'instruction Write écrit combien de minutes et de secondes se sont écoulées, et l'instruction end termine le travail du début suivant la condition if:
Écrivez (m, 'minutes (s) et', s: 1: 2, 'secondes (s)')
finir;
Fonction: 1: 2 signifie que les secondes doivent être écrites avec deux décimales.
Étape 11
Si les secondes sont inférieures à 60, écrivez simplement combien de secondes se sont écoulées avec deux décimales:
si je <60 alors
Écrivez ('', i: 1: 2, 'secondes (a / s)');
Étape 12
Si les secondes sont supérieures à 3600 (c'est-à-dire plus d'une heure) alors:
si i> 3600 alors commencer
m: = Int (i / 60);
s: = je - m * 60;
ch: = Int (m/60);
m: = m - ch * 60;
Écrivez (ch, 'heure(s)', m, 'minutes(s) et', s:1:2, 'secondes(s)');
finir;
Étape 13
Donc, le programme a écrit que 0 seconde s'est écoulée, maintenant il augmente le compteur i de 10 millisecondes, et comme le programme fait tout instantanément, on fait un retard pour le même temps:
i: = i + 0,01;
Retard (10);
Ensuite, nous terminons l'instruction While (pas de touche enfoncée):
finir;
Si l'utilisateur a appuyé sur la touche Entrée, le programme attend qu'il appuie à nouveau pour relancer le chronomètre:
Readln;
Readln;
Ce n'est pas un hasard si nous avons mis le compteur à zéro après l'instruction While (true), car lorsque l'utilisateur appuie une deuxième fois sur Entrée, le programme démarre à partir de là, réinitialise le compteur et recommence à compter.
Ensuite, nous terminons le While et pour l'ensemble du programme:
finir;
Étape 14
Voici le programme complet:
les usages
tube cathodique;
var
i: réel;
s: réel;
m: réel;
ch: réel;
commencer
SetWindowTitle ('Chronomètre');
TextColor (Vert Clair);
WriteLn ('Appuyez sur Entrée pour démarrer le chronomètre');
WriteLn ('Appuyez à nouveau pour arrêter');
Ecrire ('Cliquez à nouveau pour recommencer');
ReadLn;
tandis que (vrai) faire
commencer
je: = 0;
pendant que vous n'appuyez pas sur la touche, faites
commencer
ClrScr;
si (i> 60) et (i <3600) alors commencer
m: = Int (i / 60);
s: = je - m * 60;
Écrivez (m, 'minutes (s) et', s: 1: 2, 'secondes (s)')
finir;
si je <60 alors
Écrivez ('', i: 1: 2, 'secondes (a / s)');
si i> 3600 alors commencer
m: = Int (i / 60);
s: = je - m * 60;
ch: = Int (m/60);
m: = m - ch * 60;
Écrivez (ch, 'heure(s)', m, 'minutes(s) et', s:1:2, 'secondes(s)');
finir;
i: = i + 0,01;
Retard (10);
finir;
Readln;
Readln;
finir;
finir.
Étape 15
Cela s'est avéré pas très agréable, mais le programme fonctionne correctement !