Exercices Algorithme

Exercice 3 Les Enregistrements Corrigé

Soit Tdate un type date composé des champs entiers JJ,MM,AA.

  • Ecrire une AP CompareD permettant de comparer deux dates D1 et D2.
  • Soit TD un tableau de N dates (N≤100). En utilisant l’AP CompareD, écrire un algorithme permettant de trier ce tableau dans l’ordre croissant des dates.
Type Tdate = Enregistrement JJ,MM,AA :entier ; Fin ;
On considère une Fonction pouvant prendre 1 Pour >, 0 Pour = et -1 Pour <
Fonction CompareD(D1,D2 :Tdate) :entier ;
Debut
Si D1.AA>D2.AA
Alors CompareD←1
Sinon Si D1.AA<D2.AA
Alors CompareD← -1
Sinon Si D1.MM>D2.MM
Alors CompareD←1
Sinon Si D1.MM<D2.MM
Alors CompareD← -1
Sinon Si D1.JJ>D2.JJ
Alors CompareD←1
Sinon Si D1.JJ<D2.JJ
Alors CompareD← -1
Sinon CompareD← 0
Fsi
 
Fsi ;
 
Fsi
 
Fsi
 
Fsi
 
Fsi
Fin ;

Algorithme TriDate ;
Type Tdate = Enregistrement JJ,MM,AA :entier ; Fin ;
Var TD :Tableau[1..100] de Tdate ; D :Tdate ;
I,J :entier ;
Fonction CompareD(D1,D2 :Tdate) :entier ;
-	- - -
 
Debut
 

Ecrire(‘Donner N’) ;
Repeter Lire(N) ; Jusqu’à N>0 et N≤100 ;
/*lecture du tableau des dates
Pour I←1 à N
Faire Lire(TD[I].JJ, TD[I].MM, TD[I].AA); Fait;
/*le tri
Pour I←1 à N-1
Faire
 
Pour J←I+1 à N
Faire
Si CompareD( TD[I], TD[J])=1
Alors D← TD[I]; TD[I]←TD[J]; TD[J]←D
Fsi; 

Fait;

Fait;
/*affichage des dates triées
Pour I←1 à N
Faire Ecrire(TD[I].JJ,’/’, TD[I].MM,’/’, TD[I].AA); Fait;
Fin.

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.