une seule structure pour représenter toutes les composantes d’une heure ?
Struct hms
heures:entier
minutes:entier
secondes:entier
FinStruct
Un enregistrement peut être passé en paramètre d’une procédure tout comme une variable, en entrée ou en sortie.
La procédure et le programme peuvent être convertis comme ceci :
Types
Struct hms
heures:entier
minutes:entier
secondes:entier
FinStruct
Procédure sec_to_hms(E nbsec:entier, S duree:hms)
Début
duree.heures←nbsec DIV 3600
nbsec←nbsec%3600
duree.minutes←nbsec DIV 60
duree.secondes←nbsec%60
FinProcédure
PROGRAMME convert_sec
Var
nb_secondes:entier
heures:hms
Début
nb_secondes←3950
sec_to_hms(nb_secondes,heures)
Afficher heures.heures,heures.minutes,heures.secondes
Fin
b. Les fonctions
Les fonctions ne retournent qu’une seule valeur via l’instruction Retourne. Aussi il n’y a pas besoin de spécifier si les
paramètres sont en entrée ou en sortie. Ils sont forcément en entrée. Par contre, la valeur de la fonction peut être
de n’importe quel type.
Voici une fonction qui fait l’inverse de la procédure précédente : elle reçoit des heures, minutes et seconde, et en
contrepartie elle retourne le nombre de secondes total.
Fonction hms_to_sec(heures,minutes,secondes :entiers):entier
Var
total:entier
Début
total←heures*3600+minutes*60+secondes
Retourne total
FinFonc
Une fonction peut parfaitement récupérer un enregistrement comme paramètre. Voici une bonne occasion de
réutiliser le type structuré précédemment défini :
Fonction hms_to_sec(duree:hms):entire
Var
total :entier
Début
total←duree.heures*3600+duree.minutes*60+duree.secondes
Retourne total
FinFonc
Enfin, une fonction peut aussi retourner un enregistrement. Ce qui veut dire que la procédure sec_to_hms est
inutile : une fonction peut la remplacer :
- 9 -
© ENI Editions - All rigths reserved - Jonifar lina
132
Struct hms
heures:entier
minutes:entier
secondes:entier
FinStruct
Un enregistrement peut être passé en paramètre d’une procédure tout comme une variable, en entrée ou en sortie.
La procédure et le programme peuvent être convertis comme ceci :
Types
Struct hms
heures:entier
minutes:entier
secondes:entier
FinStruct
Procédure sec_to_hms(E nbsec:entier, S duree:hms)
Début
duree.heures←nbsec DIV 3600
nbsec←nbsec%3600
duree.minutes←nbsec DIV 60
duree.secondes←nbsec%60
FinProcédure
PROGRAMME convert_sec
Var
nb_secondes:entier
heures:hms
Début
nb_secondes←3950
sec_to_hms(nb_secondes,heures)
Afficher heures.heures,heures.minutes,heures.secondes
Fin
b. Les fonctions
Les fonctions ne retournent qu’une seule valeur via l’instruction Retourne. Aussi il n’y a pas besoin de spécifier si les
paramètres sont en entrée ou en sortie. Ils sont forcément en entrée. Par contre, la valeur de la fonction peut être
de n’importe quel type.
Voici une fonction qui fait l’inverse de la procédure précédente : elle reçoit des heures, minutes et seconde, et en
contrepartie elle retourne le nombre de secondes total.
Fonction hms_to_sec(heures,minutes,secondes :entiers):entier
Var
total:entier
Début
total←heures*3600+minutes*60+secondes
Retourne total
FinFonc
Une fonction peut parfaitement récupérer un enregistrement comme paramètre. Voici une bonne occasion de
réutiliser le type structuré précédemment défini :
Fonction hms_to_sec(duree:hms):entire
Var
total :entier
Début
total←duree.heures*3600+duree.minutes*60+duree.secondes
Retourne total
FinFonc
Enfin, une fonction peut aussi retourner un enregistrement. Ce qui veut dire que la procédure sec_to_hms est
inutile : une fonction peut la remplacer :
- 9 -
© ENI Editions - All rigths reserved - Jonifar lina
132
