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.