8pro107
DESCRIPTION
8PRO107. Éléments de programmation. Comment répéter plusieurs fois une séquence d’instructions. Étude de cas 6.1. Additionner une série d’entiers Description du problème: Calculer et imprimer la somme d’une série d’entiers donnée en entrée. Spécification de l’entrée: Une liste d’entiers - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/1.jpg)
8PRO107
Éléments de programmation
Comment répéter plusieurs fois une séquence d’instructions
![Page 2: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/2.jpg)
Étude de cas 6.1
Additionner une série d’entiers
Description du problème: Calculer et imprimer la somme d’une série d’entiers donnée en entrée.
Spécification de l’entrée: Une liste d’entiers
Sortie: Un entier
![Page 3: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/3.jpg)
Étude de cas 6.1
Fonction principalequatre entiers: n1, n2, n3, n4un entier : somme
LIRE n1, n2, n3, n4somme n1 + n2 + n3 + n4ÉCRIRE somme
![Page 4: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/4.jpg)
Étude de cas 6.1
Fonction principaleentier n1, n2, n3, n4entier somme
LIRE n1, n2, n3, n4somme n1 + n2 + n3 + n4AFFICHER somme
Remarque: Fonctionne si la liste ne contient que 4 entiers.
![Page 5: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/5.jpg)
Étude de cas 6.1
Fonction principaleentier n1, n2, n3, n4entier somme
LIRE n1, n2, n3, n4somme n1 + n2 + n3 + n4AFFICHER somme
Remarque: Fonctionne si la liste ne contient que 4 entiers.
// fichier : c5ex1_0.cpp#include <iostream>
int main (){
int n1, n2, n3, n4 ;int somme ;
std::cout << "Entrez quatre entiers : " ;std::cin >> n1 >> n2 >> n3 >> n4 ;somme = n1 + n2 + n3 + n4 ;std::cout << "La somme est " << somme << std::endl ;return 0 ;
}
![Page 6: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/6.jpg)
Étude de cas 6.1
Fonction principale
entier somme, nombre
somme 0TANT QUE ( il y a encore des entiers à lire) FAIRE
LIRE nombresomme somme + nombre
ÉCRIRE somme
![Page 7: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/7.jpg)
Étude de cas 6.1
Fonction principaleentier : somme
somme total()ÉCRIRE somme
En utilisant un sous-programme
![Page 8: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/8.jpg)
Étude de cas 6.1
Fonction total
En-tête:entier total()
Corps:2 entiers : somme, nombre
somme 0TANT QUE ( il y a encore des entiers à lire) FAIRE
LIRE nombresomme somme + nombre
RETOURNER somme
![Page 9: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/9.jpg)
Étude de cas 6.1
Forme générale
TANT QUE condition FAIRE instruction
En C/C++
while ( condition ) instruction ;
![Page 10: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/10.jpg)
Étude de cas 6.1
Fonction principale
entier somme, nombre
somme 0TANT QUE ( il y a encore des entiers à lire) FAIRE
LIRE nombresomme somme + nombre
ÉCRIRE somme
![Page 11: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/11.jpg)
Étude de cas 6.1
Fonction principale
entier somme, nombre
somme 0TANT QUE ( il y a encore des entiers à lire) FAIRE
LIRE nombresomme somme + nombre
ÉCRIRE somme
Comment spécifiercette condition?
![Page 12: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/12.jpg)
Étude de cas 6.1
Fonction total
En-tête:entier total()
Corps:entier somme, nombre
somme 0TANT QUE ( il y a encore des entiers à lire) FAIRE
LIRE nombresomme somme + nombre
RETOURNER somme
Avec sous-programme
![Page 13: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/13.jpg)
Étude de cas 6.1
Fonction total
En-tête:entier total()
Corps:entier somme, nombre
somme 0TANT QUE ( il y a encore des entiers à lire) FAIRE
LIRE nombresomme somme + nombre
RETOURNER somme
Comment spécifiercette condition?
Avec sous-programme
![Page 14: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/14.jpg)
Étude de cas 6.1
3 méthodes
• Mettre le nombre d’entiers à lire au début de la liste
• Mettre une valeur spéciale à la fin de la liste
• Utiliser la valeur de retour de la fonction de lecture
![Page 15: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/15.jpg)
Étude de cas 6.1
Fonction principale entiers n, somme, nombre, compteur
LIRE nsomme 0compteur 0TANT QUE (compteur < n) FAIRE
LIRE nombresomme somme + nombrecompteur compteur + 1
AFFICHER somme
Méthode 1
![Page 16: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/16.jpg)
Étude de cas 6.1
Fonction principale entiers n, somme, nombre, compteur
LIRE nsomme 0compteur 0TANT QUE (compteur < n) FAIRE
LIRE nombresomme somme + nombrecompteur compteur + 1
AFFICHER somme
Méthode 1
#include <iostream>
int main (){
int n, somme, nombre, compteur ;
somme = 0 ;compteur = 0 ;std::cout << "Entrez combien de nombres à additionner: " ;std::cin >> n ;std::cout << "Entrez vos " << n << " nombres:" << std::endl ;while ( compteur < n ){
std::cin >> nombre ;somme = somme + nombre ;compteur = compteur + 1 ;
}std::cout << "La somme de vos " << n << " nombres est "<< somme << std::endl ;return 0 ;
}
![Page 17: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/17.jpg)
Étude de cas 6.1
Fonction principale deux entiers : somme, n
LIRE nsomme total(n)AFFICHER somme
où total satisfait le prototype
total(entier) retourne un entier
Méthode 1
Avec sous-programme
![Page 18: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/18.jpg)
En-tête:total(entier n) retourne un entier
Corps:deux entiers : somme, nombre un entier : compteur
somme 0compteur 0TANT QUE (compteur < n) FAIRE
LIRE nombresomme somme + nombrecompteur compteur + 1
RETOURNER somme
Étude de cas 6.1
compte le nombre d’itérations
Méthode 1
Avec sous-programme
![Page 19: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/19.jpg)
En-tête:total(entier n) retourne un entier
Corps:deux entiers : somme, nombre un entier : compteur
somme 0compteur 0TANT QUE (compteur < n) FAIRE
LIRE nombresomme somme + nombrecompteur compteur + 1
RETOURNER somme
Étude de cas 6.1
compte le nombre d’itérations
Méthode 1
Avec sous-programme// fichier : c5ex1_1.cpp#include <iostream>
int total ( int n ){
int somme, nombre ;int compteur ;
somme = 0 ;compteur = 0 ;std::cout << "Entrez vos " << n << " nombres:" << std::endl ;while ( compteur < n ){
std::cin >> nombre ;somme = somme + nombre ;compteur = compteur + 1 ;
}return somme ;
}
int main (){
int somme, n ;
std::cout << "Entrez combien de nombres … additionner: " ;std::cin >> n ;somme = total(n) ;std::cout << "La somme de vos " << n << " nombres est "<< somme << std::endl ;return 0 ;
}
![Page 20: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/20.jpg)
Fonction principaleentiers somme, nombreentier fini
somme 0fini 1TANT QUE (fini 0) FAIRE
LIRE nombreSI (nombre = valeur_spéciale) ALORS
fini 0SINON
somme somme + nombreAFFICHER somme
Mis à 0 après avoir lu la valeur spéciale
Méthode 2Étude de cas 6.1
![Page 21: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/21.jpg)
Fonction principaleentiers somme, nombreentier fini
somme 0fini 1TANT QUE (fini 0) FAIRE
LIRE nombreSI (nombre = valeur_spéciale) ALORS
fini 0SINON
somme somme + nombreAFFICHER somme
Mis à 0 après avoir lu la valeur spéciale
valeur indiquant la fin de la liste
Méthode 2Étude de cas 6.1
drapeau
![Page 22: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/22.jpg)
Étude de cas 6.1
Fonction principaleentier : somme
somme total()ÉCRIRE somme
Avec sous-programme
![Page 23: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/23.jpg)
En-tête:total() retourne un entier
Corps:deux entiers : somme nombre un entier : fini
somme 0fini 1TANT QUE (fini 0) FAIRE
LIRE nombreSI (nombre = valeur_spéciale) ALORS
fini 0SINON
somme somme + nombreRETOURNER somme
Étude de cas 6.1
Mis à 0 après avoir lu la valeur spéciale
Méthode 2Avec sous-programme
![Page 24: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/24.jpg)
En-tête:total() retourne un entier
Corps:deux entiers : somme nombre un entier : fini
somme 0fini 1TANT QUE (fini 0) FAIRE
LIRE nombreSI (nombre = valeur_spéciale) ALORS
fini 0SINON
somme somme + nombreRETOURNER somme
Mis à 0 après avoir lu la valeur spéciale
valeur indiquant la fin de la liste
pas d’argument
Méthode 2Étude de cas 6.1
drapeau
![Page 25: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/25.jpg)
Fin de fichier
Un programme peut lire des données en provenance• du terminal (programme interactif)• d’un fichier (programme non interactif)
Étude de cas 6.1
![Page 26: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/26.jpg)
Fin de fichier
Un programme peut lire des données en provenance• du terminal (programme interactif)• d’un fichier (programme non interactif)
Étude de cas 6.1
Dans un fichier : Lorsqu’il n’y a plus de données à lire, on dit que c’est la fin du fichier.La plupart des fonctions de lecture retournent une valeur spéciale lorsqu’elles rencontrent la fin d’un fichier.Nous dénoterons cette valeur par FDF (Fin De Fichier).
![Page 27: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/27.jpg)
Fin de fichier
Un programme peut lire des données en provenance• du terminal (programme interactif)• d’un fichier (programme non interactif)
Étude de cas 6.1
Au terminal : Lorsqu’un programme lit au terminal, comment sait-il qu’il a atteint la fin du fichier?L’utilisateur doit envoyer un signal de fin de fichier en appuyant sur ^d (sur Unix) ou ^z (sur Windows).
Dans un fichier : Lorsqu’il n’y a plus de données à lire, on dit que c’est la fin du fichier.La plupart des fonctions de lecture retournent une valeur spéciale lorsqu’elles rencontrent la fin d’un fichier.Nous dénoterons cette valeur par FDF (Fin De Fichier).
![Page 28: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/28.jpg)
Fonction principaleentiers somme, nombre entier fini
somme 0fini 1TANT QUE (fini 0) FAIRE
SI (LIRE nombre = FDF) ALORSfini 0
SINONsomme somme + nombre
AFFICHER somme
Étude de cas 6.1 Méthode 3
![Page 29: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/29.jpg)
En-tête:total() retourne un entier
Corps:deux entiers : somme nombre un entier : fini
somme 0fini 1TANT QUE (fini 0) FAIRE
SI (LIRE nombre = FDF) ALORSfini 0
SINONsomme somme + nombre
RETOURNER somme
Étude de cas 6.1 Méthode 3
Avec sous-programme
![Page 30: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/30.jpg)
Fonction principaleentier somme, nombre
somme 0TANT QUE (LIRE nombre 0) FAIRE
somme somme + nombreRETOURNER somme
Étude de cas 6.1
Méthode 3 (version2)
![Page 31: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/31.jpg)
En-tête:total() retourne un entier
Corps:entier somme, nombre
somme 0TANT QUE (LIRE nombre 0) FAIRE
somme somme + nombreRETOURNER somme
Étude de cas 6.1
Méthode 3 (version2)
Avec sous-programme
![Page 32: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/32.jpg)
int total (){
int somme, nombre;
somme = 0;while (cin>>nombre)
somme = somme + nombre;return somme;
}
Étude de cas 6.1
En C/C++
![Page 33: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/33.jpg)
Étude de cas 6.2
Additionner les n premiers entiers pairs
Description du problème: Calculer et afficher la somme des n premiers nombres entiers pairs.
Spécification de l’entrée: Un nombre entier n 1
![Page 34: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/34.jpg)
Étude de cas 6.2 Fonction principale (1)
deux entiers : n, sommeLIRE nSI (n < 0) ALORS
AFFICHER “Erreur dans les données”SINON
AFFICHER “La somme des ” n “premiers entiers pairs est ” sommepair(n)
où sommepair est une fonction satisfaisant le prototype
sommepair(entier) retourne un entier
![Page 35: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/35.jpg)
Étude de cas 6.2 Fonction principale
deux entiers : n, sommeLIRE nSI (sommepair(n, somme) < 0) ALORS
ÉCRIRE “Erreur dans les données”SINON
ÉCRIRE “La somme des ” n “premiers entiers pairs est ” somme
où sommepair est une fonction satisfaisant le prototype
sommepair(entier, entier référence) retourne un entier
![Page 36: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/36.jpg)
Étude de cas 6.2
Fonction sommepair (version 1)
En-tête:sommepair(entier n, entier référence somme) retourne un entierCorps:
entier : compteurSI (n < 1) ALORS retourner -1somme 0compteur 1TANT QUE (compteur n) FAIRE
somme somme + 2*compteurcompteur compteur + 1
RETOURNER 0
![Page 37: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/37.jpg)
Étude de cas 6.2
Fonction sommepair (version 1)
En-tête:sommepair(entier n, entier référence somme) retourne un entier Corps:
entier : compteurSI (n < 1) ALORS retourner -1somme 0compteur 2TANT QUE (compteur n) FAIRE
somme somme + compteurcompteur compteur + 1
RETOURNER 0
1n)
2*compteur1
![Page 38: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/38.jpg)
Étude de cas 6.2
Fonction sommepair (version 2)
En-tête:sommepair(entier n, entier référence somme) retourne un entier Corps:
entier : compteurSI (n < 1) ALORS retourner -1somme 0compteur 2TANT QUE (compteur 2*n) FAIRE
somme somme + compteurcompteur compteur + 1
RETOURNER 0
22*n)
compteur2
![Page 39: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/39.jpg)
Étude de cas 6.2
POUR i allant de k à n avec pas de s faireinstruction
i = kTANT QUE (i n) FAIRE
instructioni i + s
Les boucles avec incrémentation automatique
équivalent à
![Page 40: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/40.jpg)
Étude de cas 6.2
for (i=k; i<=n; i=i+s) instruction ;
i = k;while (i n){ instruction i = i + s;
}
En C/C++
équivalent à
![Page 41: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/41.jpg)
Étude de cas 6.2
Fonction sommepair (version 3)
En-tête:sommepair(entier n, entier référence somme) retourne un entierCorps:
entier : compteurSI (n < 1) RETOURNER -1somme 0POUR compteur allant de 1 à n avec pas de 1 faire
somme somme + 2 * compteurRETOURNER 0
![Page 42: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/42.jpg)
Étude de cas 6.3
Calculer la moyenne des notes
Description du problème: Calculer la moyenne de chacun des étudiants d’une classe où chaque étudiant a exactement n notes. La moyenne de la classe doit aussi être calculée.
Spécification de l’entrée: La première ligne d’entrée contient la valeur n. Il y a ensuite autant de lignes que d’étudiants dans la classe, chacune contenant un numéro d’identification suivi des n notes.
![Page 43: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/43.jpg)
Étude de cas 6.3
Exemple
375332 78 80 8675761 95 100 10075730 67 61 7575810 23 16 5675831 88 85 90
![Page 44: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/44.jpg)
Étude de cas 6.3
Fonction principale deux entiers: nbnotes moyenne
LIRE nbnotesmoyenne moyenne_groupe(nbnotes)AFFICHER “La moyenne du groupe est”, moyenne
où moyenne_groupe est une fonction respectant le prototype
moyenne_groupe(entier) retourne un entier
![Page 45: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/45.jpg)
Étude de cas 6.3
Fonction moyenne_groupe
En-tête: moyenne_groupe(entier n) retourne un entier
Corps:
POUR chaque étudiant dans la liste FAIREcalculer la moyenne des n notesafficher la moyenne
RETOURNER la moyenne du groupe
![Page 46: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/46.jpg)
Étude de cas 6.3Fonction moyenne_groupe
En-tête: moyenne_groupe(entier n) retourne un entier
Corps:trois entiers : mgroupe, metudiants, nbetudiantsun entier : id
TANT QUE (LIRE(id) FDF) FAIREmetudiants total(n) / nÉCRIRE “La moyenne de l’étudiant ” id “est ” metudiants
RETOURNER la moyenne du groupe
![Page 47: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/47.jpg)
Étude de cas 6.3Fonction moyenne_groupe
En-tête: moyenne_groupe(entier n) retourne un entier
Corps:trois entiers : mgroupe, metudiants, nbetudiantsun entier : id
TANT QUE (LIRE(id) FDF) FAIREmetudiants total(n) / nÉCRIRE “La moyenne de l’étudiant ” id “est ” metudiants
RETOURNER la moyenne du groupe
fonction vue précédemment
![Page 48: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/48.jpg)
Étude de cas 6.3Fonction moyenne_groupe
En-tête: entier moyenne_groupe(entier n)
Corps:entier mgroupe, metudiants, nbetudiantsentier id
nbetudiants = 0TANT QUE (LIRE(id) FDF) FAIRE
metudiants total(n) / nÉCRIRE “La moyenne de l’étudiant ” id “est ” metudiants
RETOURNER mgroupe
nbetudiants nbetudiants + 1mgroupe mgroupe + metudiants
mgroupe / nbetudiants
nbetudiant 0
![Page 49: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/49.jpg)
Étude de cas 6.4
Accumulation d’intérêts
Description du problème:Étant donné un investissement initial et un taux d’intérêt annuel, déterminer le nombre d’années nécessaire pour atteindre un objectif spécifié en entrée. Faire ceci pour des intérêts simples et composés.
Spécification de l’entrée: Trois valeurs réelles 0: l’investissement initial, le taux d’intérêt annuel et l’objectif.
![Page 50: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/50.jpg)
Étude de cas 6.4 Fonction principale
trois réels: initial, taux_annuel, objectifdeux entiers: nbsimple, nbcompose
LIRE initial, taux_annuel, objectifSI (initial0 ou taux_annuel0 ou objectifinitial ) ALORS
ÉCRIRE “Erreur dans les données” SINON
nbsimple simple(initial, taux, annuel, objectif)nbcomp compose(initial, taux, annuel, objectif)AFFICHER “nombre d’années (simple): ” nbsimpleAFFICHER “nombre d’années (composé): ” nbcom
où simple et compose sont des fonctions respectant les prototypes:
simple(réel, réel, réel) retourne un entiercompose( réel, réel, réel) retourne un entier
![Page 51: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/51.jpg)
Étude de cas 6.4Fonction simple
En-tête: simple(réel initial, réel taux, réel objectif) retourne un entierCorps:
réel: cumulentier: annees
cumul initialannees 0TANT QUE (cumul < objectif) FAIRE
cumul cumul + initial*taux/100annees annees + 1
RETOURNER annees
![Page 52: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/52.jpg)
Étude de cas 6.4Fonction compose
En-tête: compose(réel initial, réel taux, réel objectif) retourne un entierCorps:
réel: cumulentier: annees
cumul initialannees 0TANT QUE (cumul < objectif) FAIRE
cumul cumul + cumul*taux/100annees annees + 1
RETOURNER annees
![Page 53: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/53.jpg)
Étude de cas 6.4
TANT QUE (condition) FAIREinstruction
FAIREinstruction
TANT QUE (condition)
Autre type de boucle
Utilisé lorsque le corps de la boucle doit être exécuté au moins une fois
Pour s’assurer que le corps de la boucle ne soit jamais exécuté si la condition est fausse.
![Page 54: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/54.jpg)
Étude de cas 6.4Fonction simple
En-tête: simple(réel initial, réel taux, réel objectif) retourne un entierCorps:
réel: cumulentier: annees
cumul initialannees 0FAIRE
cumul cumul + initial*taux/100annees annees + 1
TANT QUE (cumul < objectif) RETOURNER annees
![Page 55: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/55.jpg)
Étude de cas 6.4Fonction compose
En-tête: compose(réel initial, réel taux, réel objectif) retourne un entierCorps:
réel: cumulentier: annees
cumul initialannees 0FAIRE
cumul cumul + cumul*taux/100annees annees + 1
TANT QUE (cumul < objectif) RETOURNER annees
![Page 56: 8PRO107](https://reader031.vdocuments.fr/reader031/viewer/2022012918/56813283550346895d991eee/html5/thumbnails/56.jpg)
Étude de cas 6.4
Pseudo-codeFAIRE instructionTANT QUE (condition)
En C/C++do instructionwhile (expression);