|
Written by Administrator
|
|
Saturday, 15 March 2008 14:39 |
|
Source : un ancien livre de bac pour l'option informatique, section scientifique. Écrire un programme qui saisit un entier naturel supérieur à 5, le remplit par des réels compris entre 0 et 20. Ensuite, ce programme calcule et affiche la moyenne de ces n réels. Exemple - Entrée : 5, t=10|20|30|40|50
- Sortie : 30
Correction : Par M. Rached Douari Le problème est axé sur les tests à faire sur les entrées que ce soit n ou celles des éléments du tableau. Analyse du problème | | NOM = test | | | S | L.D.E. | O.U. | | 5 4 3 2 1 6 | Résultat = Ecrire("Moyenne = ", moy) moy = somme /n somme = [somme = 0 ] Pour i de 1 à n répéter somme = somme + T[i] FinPour T = [ ] Pour i de 1 à n répéter [ ] Répéter Lire(T[i]) jusqu'à (0<=T[i]<=20) FinPour n = [ ] Répéter Lire(" n = ", n ) jusqu'à (n >5) Fin test | moy somme n i T | Codification des variables | Nom | Code | Type | Rôle | | moy | m | Réel | la moyenne des n réels | | somme | sm | Réel | la somme des n réels | | n | n | entier | nombre d'éléments de T | | i | i | entier | compteur | | T | T | tableau de réels | contiendra les n réels | Algorithme 0) début test 1) Répéter Lire(" n = ", n ) jusqu'à (n >5) 2) Pour i de 1 à n répéter Répéter Lire(T[i]) jusqu'à (0<=T[i]<=20) FinPour 3) [sm = 0 ] Pour i de 1 à n répéter sm = sm + T[i] FinPour 4) m = sm/n 5) Ecrire("Moyenne = ", m) 6) Fin test Traduction en Pascal PROGRAM test; VAR n, i : INTEGER; m , sm : REAL; T : ARRAY[1..100] OF REAL; BEGIN REPEAT WRITE(' n = '); READLN(n); UNTIL ( n > 5); FOR i :=1 TO n DO BEGIN REPEAT READLN(T[i]); UNITIL (0<=T[i]) AND (T[i]<=20); END; sm := 0; FOR i :=1 TO n DO BEGIN sm := sm + T[i]; END; m := sm/n; WRITELN('Moyenne = ', m); END.
|
|
Last Updated ( Saturday, 15 March 2008 15:22 )
|