Fonction sec_to_hms(nbsec :entier):hms
Var
duree:hms
Début
duree.heures←nbsec DIV 3600
nbsec←nbsec%3600
duree.minutes←nbsec DIV 60
duree.secondes←nbsec%60
Retourne duree
FinFonc
Pour cette dernière fonction, le résultat doit être affecté à un enregistrement de même type.
PROGRAMME convert_sec2
Var
nb_secondes:entier
heures:hms
Début
nb_secondes←3950
heures←sec_to_hms(nb_secondes)
Afficher heures.heures,heures.minutes,heures.secondes
Fin
Une procédure ne retournant qu’une seule valeur et quel que soit son type est toujours convertible en
fonction. Une telle procédure doit d’ailleurs toujours être convertie en ce sens : elle n’a pas d’intérêt
autrement.
Pour tester les fonctions sec_to_hms et hms_to_sec, vous pouvez appeler l’une avec l’autre. Une fonction
représentant son résultat (la valeur de la fonction est le résultat qu’elle retourne), elle peut être utilisée comme
paramètre à une autre fonction si les types attendus sont compatibles.
PROGRAMME convert_sec3
Var
nb_secondes1:entier
nb_secondes2:entier
Début
nb_secondes1←3950
nb_secondes2←hms_to_sec(sec_to_hms(nb_secondes1))
Si nb_secondes1!=nb_secondes2 Alors
Afficher "Erreur dans l’une des fonctions ?"
Sinon
Afficher "Un programme parfait"
FinSi
Fin
c. Paramètres et Java
Le langage Java accepte n’importe quel type de paramètre en argument d’une méthode (une fonction) : types
classiques comme les entiers, ou tableaux, structures (enregistrements), objets. Dans certains cas ces paramètres
peuvent être en entrée et en sortie : uniquement si la variable passée en argument n’est pas d’un type primitif
(entiers, réels, caractères). Pour les autres il n’y a pas le choix : les tableaux ou enregistrements passés en
paramètres en entrée et sortie, ce qui veut dire que les paramètres de ce genre, s’ils sont modifiés dans la méthode,
sont aussi modifiés hors de la méthode. C’est le principe du passage par référence. Les références seront abordées
un peu plus profondément dans le chapitre Notions avancées consacré aux notions avancées dont les pointeurs.
En attendant tous les exemples précédents sont faisables en Java, bien heureusement. La procédure RepeteCar()
est donc transformée ainsi :
class chap6_param1 {
static void RepeteCar(int nbcar, char c) {
int i ;
for(i=1 ;i<=nbcar ;i++) System.out.print(c);
System.out.println();
- 10 -
© ENI Editions - All rigths reserved - Jonifar lina
133
Var
duree:hms
Début
duree.heures←nbsec DIV 3600
nbsec←nbsec%3600
duree.minutes←nbsec DIV 60
duree.secondes←nbsec%60
Retourne duree
FinFonc
Pour cette dernière fonction, le résultat doit être affecté à un enregistrement de même type.
PROGRAMME convert_sec2
Var
nb_secondes:entier
heures:hms
Début
nb_secondes←3950
heures←sec_to_hms(nb_secondes)
Afficher heures.heures,heures.minutes,heures.secondes
Fin
Une procédure ne retournant qu’une seule valeur et quel que soit son type est toujours convertible en
fonction. Une telle procédure doit d’ailleurs toujours être convertie en ce sens : elle n’a pas d’intérêt
autrement.
Pour tester les fonctions sec_to_hms et hms_to_sec, vous pouvez appeler l’une avec l’autre. Une fonction
représentant son résultat (la valeur de la fonction est le résultat qu’elle retourne), elle peut être utilisée comme
paramètre à une autre fonction si les types attendus sont compatibles.
PROGRAMME convert_sec3
Var
nb_secondes1:entier
nb_secondes2:entier
Début
nb_secondes1←3950
nb_secondes2←hms_to_sec(sec_to_hms(nb_secondes1))
Si nb_secondes1!=nb_secondes2 Alors
Afficher "Erreur dans l’une des fonctions ?"
Sinon
Afficher "Un programme parfait"
FinSi
Fin
c. Paramètres et Java
Le langage Java accepte n’importe quel type de paramètre en argument d’une méthode (une fonction) : types
classiques comme les entiers, ou tableaux, structures (enregistrements), objets. Dans certains cas ces paramètres
peuvent être en entrée et en sortie : uniquement si la variable passée en argument n’est pas d’un type primitif
(entiers, réels, caractères). Pour les autres il n’y a pas le choix : les tableaux ou enregistrements passés en
paramètres en entrée et sortie, ce qui veut dire que les paramètres de ce genre, s’ils sont modifiés dans la méthode,
sont aussi modifiés hors de la méthode. C’est le principe du passage par référence. Les références seront abordées
un peu plus profondément dans le chapitre Notions avancées consacré aux notions avancées dont les pointeurs.
En attendant tous les exemples précédents sont faisables en Java, bien heureusement. La procédure RepeteCar()
est donc transformée ainsi :
class chap6_param1 {
static void RepeteCar(int nbcar, char c) {
int i ;
for(i=1 ;i<=nbcar ;i++) System.out.print(c);
System.out.println();
- 10 -
© ENI Editions - All rigths reserved - Jonifar lina
133
