Algorithme

Résolu
cs_serie1 Messages postés 10 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 25 octobre 2010 - 19 oct. 2010 à 15:58
cs_serie1 Messages postés 10 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 25 octobre 2010 - 19 oct. 2010 à 18:07
Bonjour,
je débute.
Quelqu'un pourrait m'expliquer le déroulement de cet alogo.
J'ai bien compris que l'on appelle la fonction que l'on a crée "calcul". Mais je n'arrive pas à le faire tourner manuellement.

Programme Essai
a,b,c entier
début
a = 3
b = calcul(a,7,2)
c = calcul(b,b-2,a)
fin

fonction calcul (ES:a:entier, E:b,c :entier):entier
début
a=a + b DIV c
c = c DIV 2
retourner (a + b + c)
fin

Par avance merci.

2 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
19 oct. 2010 à 16:54
Je suppose que tu comprends bien la notion de variables locales (et que la fonction qui a des arguments a, b, c est une coincidence, et qu'on aurait pu renommer a, b, c dans "calcul" sans soucis).

On est bien d'accord que ce code serait totalement équivalent:

Programme Essai
a,b,c entier
début
a = 3
b = calcul(a,7,2)
c = calcul(b,b-2,a)
fin

fonction calcul (ES:x:entier, E:y,z :entier):entier
début
x=x + y DIV z
z = z DIV 2
retourner (x + y + z)
fin


Si je ne me suis pas trompé dans mes calculs, l'exécution détaillée donnerait (pour l'exemple que tu as donné toi):

a = 3

Global
a = 3
b = ?
c = ?

b = calcul(a,7,2)

Global
a = 3
b = En attente du résultat de calcul
c = ?
Calcul
Appel de calcul avec calcul(3, 7, 2), soit a (local) 3, b (local) 7 et c (local) = 2

a = a + b DIV c

Global
a = 3
b = En attente du résultat de calcul
c = ?
Calcul
a 3 + 7 DIV 2 3 + 3 = 6
b = 7
c = 2

c = c DIV 2

Global
a = 3
b = En attente du résultat de calcul
c = ?
Calcul
a = 6
b = 7
c 2 DIV 2 1

retourner (a + b + c)

Global
a = 3
b resultat de calcul (3,7,2) 6 + 7 + 1 = 14
c = ?
Calcul
a = 6
b = 7
c = 1

c = calcul(b,b-2,a)

Global
a = 3
b = 14
c = resultat de calcul(b,b-2,a)
Calcul
Calcul
Appel de calcul avec calcul(14, 12, 3), soit a (local) 14, b (local) 12 et c (local) = 3

b = calcul(b,b-2,a)

Global
a = 3
b = 14
c = resultat de calcul(b,b-2,a) soit calcul(14, 12, 3)
Calcul
a = 14
b = 12
c = 3

a=a + b DIV c

Global
a = 3
b = 14
c = resultat de calcul(b,b-2,a) soit calcul(14, 12, 3)
Calcul
a 14 + 12 DIV 3 14 + 4 = 18
b = 12
c = 3

c = c DIV 2

Global
a = 3
b = 14
c = resultat de calcul(b,b-2,a) soit calcul(14, 12, 3)
Calcul
a = 18
b = 12
c 3 DIV 2 1

retourner (a + b + c)

Global
a = 3
b = 14
c = resultat de calcul(b,b-2,a) soit calcul(14, 12, 3), soit 18 + 12 + 1
Calcul
a = 18
b = 12
c = 1

c = calcul(b,b-2,a)

Global
a = 3
b = 14
c = 31
Calcul
a = ?
b = ?
c = ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
3
cs_serie1 Messages postés 10 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 25 octobre 2010
19 oct. 2010 à 18:07
Merci beaucoup,
je vais refaire ton développement.
Tu as raison c'est bien la notion de variables locales, car à l'appel de la fonction calcul (a,b,c) me dérangeais. Je ne savais pas si b passait par les valeurs, une après l'autre ou si ces valeurs étaient affectées à a,b,c.

A+
0
Rejoignez-nous