Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#2 18-11-2021 14:45:02
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 411
Re : Algorithme /Méthode
Bonjour,
Une solution consiste à appeler régulièrement (par exemple toutes les 100 millisecondes) l'horloge interne en lançant la procédure GetTime(Hr, Mn, Sc, Cs), laquelle retourne le temps actuel en heures, minutes, secondes et centièmes de seconde.
On recalcule la valeur entière approchée du temps en secondes, et en affiche la conversion au format habituel dès qu'elle diffère de la précédente.
La boucle s'achève sur l'enfoncement de la touche appropriée (ici l'esperluette '&').
Le programme source ci-dessous, rédigé en Pascal, se lit pratiquement comme du pseudo-code:
USES Crt, E_Texte, DOS;
PROCEDURE Aff_T(T_s: LongInt);
CONST o = 3;
VAR H1, M1, S1, T1: LongInt;
BEGIN
H1:= T_s DIV 3600; T1:= T_s MOD 3600;
M1:= T1 DIV 60; S1:= T1 MOD 60;
We(5, 5, H1, o); Write(' hr', M1:o, ' mn', S1:o, ' sc')
END;
PROCEDURE Enumeration;
VAR Cs, Hr, Mn, Sc, T1, Tsec: LongInt; Touche: Char;
BEGIN
E(1015); T1:= 0;
REPEAT
Delay(100); GetTime(Hr, Mn, Sc, Cs);
Tsec:= Sc; Inc(Tsec, 60 * Mn);
Inc(Tsec, 3600 * Hr); Inc(Tsec, Round(0.01 * Cs));
IF (Tsec<>T1) THEN Aff_T(Tsec);
T1:= Tsec; IF KeyPressed THEN Touche:= ReadKey
UNTIL (Touche='&')
END;
BEGIN
Enumeration
END.
E(1015) est une instruction de gestion de l'écran texte: # (1) pour l'effacement de l'écran, # (0) pour la couleur du fond et # (15) pour celle des caractères;
We(x, y, n, d) produit l'affichage de l'entier (n) sur (d) cases, à partir de celle de coordonnées (x, y);
Delay(100) suspend l'exécution du programme sur le délai indiqué;
KeyPressed est un booléen qui devient vrai dès l'appui sur une touche du clavier;
ReadKey déclenche la lecture du caractère correspondant.
Les intervenants du forum, qui maîtrisent Python, te fourniront toutes les indications nécessaires.
Dernière modification par Wiwaxia (18-11-2021 19:59:55)
Hors ligne
Pages : 1