Exercices Algorithme

Exercice 1 Les Enregistrements Corrigé

 

  1. Définir un type TEMPS qui contient les champs heure, minute, seconde.
  2. Ecrire une action paramétrée qui réalise la somme T de deux durées T1 et T2 de type temps.
  3. Ecrire une fonction TRANSFORM qui transforme un temps T de type TEMPS en un entier S qui exprime ce temps en secondes.

Exemple : pour T = 2 heures 10 minutes 37 secondes, S = 7837 secondes.

  1. Ecrire une procédure DECOMPOS qui décompose un temps S exprimé en secondes en un temps T de type TEMPS.

Exemple : pour S = 7837 secondes, T = 2 heures 10 minutes 37 secondes.

  1. Etant donnés deux temps T1 et T2 de type TEMPS, écrire un algorithme qui calcule le temps T somme des temps T1 et T2 (T, T1 et T2 sont de type TEMPS) en utilisant les actions TRANSFORM et DECOMPOS.
1-	Type TEMPS=Enregistrement H,M,S :entier ; Fin ;
2-	Procedure SommeT(E/ T1,T2 :TEMPS ; S/ T :TEMPS) ;
Var X :entier ;
Debut
X←T1.S+T2.S;
T.S←X mod 60; T.M← X div 60; X←T.M+T1.M+T2.M;
T.M← X mod 60; T.H← X div 60+ T1.H+T2.H;
Fin ;
3-	Fonction TRANSFORM(T :TEMPS) :entier ;
Debut
TRANSFORM←T.S+60*T.M+3600*T.H ;
Fin ;
En algorithmique, on ne peut pas avoir une fonction de type enregistrement, donc on utilise une procédure.
4-	Procedure DECOMPOS(E/ S :entier ; S/ T :TEMPS) ;
Debut
T.H←S div 3600 ; S← S mod 3600 ; T.M←S div 60 ; T.S← S mod 60 ;
Fin;
5-	
Algorithme CalculT;
Type TEMPS=Enregistrement H,M,S :entier ; Fin ;
Var T1,T2,T :TEMPS ;
S :entier ;
Debut
Ecrire(‘Donner un Temps T1 : H M S’) ; Lire(T1.H,T1.M,T1.S) ;
Ecrire(‘Donner un Temps T2 : H M S’) ;
/*on peut lire en utilisant l’instruction Avec
Avec T2 Faire Lire(H,M,S) ; Fait ;
/*transformer T1 et T2 en secondes, puis additionner
S← TRANSFORM(T1) + TRANSFORM(T2) ;
/*décomposer S en TEMPS T

 
DECOMPOS(S,T) ;
/*On peut faire aussi DECOMPOS(TRANSFORM(T1) + TRANSFORM(T2) ,T) ;
Ecrire(‘La somme est :’,T.H,’ :’,T.M,’ :’,T.S) ;
 
Fin.

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.