Les structures de contrôle itératives
Mise à jour le : 01/11/2004
![]()
Énoncé
Écrire un programme qui somme N notes.
1ère
Méthode : utilisation d'une seule case Note.
2ème
Méthode : utilisation d'un Tableau Note.
I) La préanalyse :
2ème
Méthode (utilisation d'un Tableau
Note)
Données : - Le nombre de notes est (N=4). - Les valeurs à saisir sont 17, 11, 10, 15 .
Résultat :
| S | |
|---|---|
| |
|
|
|
Réel |
La variable S contient la somme des notes saisies.
Soit Note un tableau utilisé pour recevoir les notes saisies.
I une Variable compteur
| I |
Note |
S | ||||||
|---|---|---|---|---|---|---|---|---|
| ? |
17 |
11 | 12 | 15 | ? | |||
|
|
Entier
|
1 | 2 | 3 | 4 |
Réel
|
||
Étape 1 :
On
initialise S à zéro :
| I |
Note |
S | ||||||
|---|---|---|---|---|---|---|---|---|
| ? |
17 |
11 | 12 | 15 | ||||
|
|
Entier
|
1 | 2 | 3 | 4 |
Réel
|
||
Étape 2 :
Le compteur prend la valeur 1 : I = 1
On somme l'ancienne valeur de S et la nouvelle valeur de Note[1] : S ß S + Note[1]
| I | Note | S | ||||||
|---|---|---|---|---|---|---|---|---|
| 11 | 12 | 15 | ||||||
|
|
Entier
|
1 | 2 | 3 | 4 |
Réel
|
||
Étape 3 :
Le compteur prend la valeur 2 : I = 2
On somme l'ancienne valeur de S et la nouvelle valeur de Note[2] : S ß S + Note[2]
| I | Note | S | ||||||
|---|---|---|---|---|---|---|---|---|
| 17 | 12 | 15 | ||||||
|
|
Entier
|
1 | 2 | 3 | 4 |
Réel
|
||
Étape 4 :
Le compteur prend la valeur 3 : I = 3
On somme l'ancienne valeur de S et la nouvelle valeur de Note[3] : S ß S + Note[3]
| I | Note | S | ||||||
|---|---|---|---|---|---|---|---|---|
| 17 | 11 | 15 | ||||||
|
|
Entier
|
1 | 2 | 3 | 4 |
Réel
|
||
Étape 5 :
Le compteur prend la valeur 4 : I = 4
On somme l'ancienne valeur de S et la nouvelle valeur de Note[4] : S ß S + Note[4]
| I | Note | S | ||||||
|---|---|---|---|---|---|---|---|---|
| 17 | 11 | 12 | ||||||
|
|
Entier
|
1 | 2 | 3 | 4 |
Réel
|
||
II) L'analyse :
|
Nom = Somme |
||
| Séquences | Liste des définitions Explicites | Objets Utilisés |
| 3 2 1 4 |
Résultat
=
Écrire(S) S ß 0 Pour I de 1 A N Faire Répéter Lire(Note[I]) Jusqu'à (Note[I]>=0) et (Note[I]<=20) S ß S + Note[I] FinPour Répéter Lire(N) Jusqu'à N>0 Fin Somme |
S Note I N
|
III) Le tableau de déclaration des objets :
| Objets Utilisés | Nature / Type | Rôle |
| Note | Variable/Tableau[1..40] de Réel |
Recevoir les notes |
| I | Variable/Entier | Compteur |
| S | Variable/Réel | Recevoir le cumul des Notes |
| N | Variable/Entier | Le nombre de notes |
IV) L'algorithme :
| 0- | Début Somme |
| 1- | Répéter |
| Lire(N) | |
| Jusqu'à N>0 | |
| 2- | S ß 0 |
| Pour I de 1 A N Faire | |
| Répéter | |
| Lire(Note[I]) | |
| Jusqu'à (Note[I]>=0) et (Note[I]<=20) | |
| S ß S + Note[I] | |
| FinPour | |
| 3- | Écrire(S) |
| 4- | Fin Somme |
V) La traduction en turbo pascal :
Program Somme;
uses Wincrt;
Var I, N : Integer;
S: Real;
Note : Array [1..40] Of Real;
Begin
Repeat
Write('N :');
Readln(N);
Until N>0;
S : = 0;
For I : = 1 To N Do
Begin
Repeat
Write('Note [',I,']:');
Readln(Note[I]);
Until (Note[I]>=0) And (Note[I]<=20);
S : = S + Note[I];
End;
Write('La Somme est :',S:5:2);
End.
VI) La traduction en C++ :
#include <stdio.h>
int main()
{ int N,I;
float Note[40],S ;
do
{printf("N=");
scanf("%d",&N);}
while (N<0);
S=0;
for (I=1;I<=N;I++)
{ do
{printf("Note[%d]=",I);
scanf("%f",&Note[I]);}
while ((Note[I]<0) || (Note[I]> 20));
S = S + Note[I]; }
printf("S=%5.2f",S);
getchar();getchar();
}
![]()
| Page d'index | Série Les structures de contrôle itératives | Haut |