Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 18-11-2021 10:06:13

Carsone
Membre
Inscription : 05-11-2021
Messages : 1

Algorithme /Méthode

Bonjour chers tous
Je voudrais avoir votre aide sur la résolution de ce problème.
*Proposer un algorithme qui indique l'heure d'une montre qui bat la seconde .*

Hors ligne

#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:

 PROGRAM Horloge_Numerique;

 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.

KKsm2qdU8Wm_Affichage-Heure-506x334.png

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

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt onze moins soixante six
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums