soit le programme suivant qui permet de:
  • remplir les tableaux Nom, Prénom,Dc, Ds par la procedure Rempir
  • Calculer les moyennes des élèves par la procédure Calculer qui fait appel à la fonction Moyenne
  • Afficher les noms, prénoms et moyennes des élèves par la procédure Afficher

Le problème : lorsque j'exécute le programme il affiche des moyennes = 0
Voila le code de programme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
program ex;
uses wincrt;
type T1=Array[1..90]of string[20];
T2 = Array[1..90]of real;
var
Nom,Prenom:T1;
dc,ds,Moy:T2;
n:integer;
 
procedure remplir(var N,P:T1;var S,C:T2;x:integer);
var i:integer;
begin
for i:=1 to x do
begin
writeln('donner le nom de l''élève N° ',i); readln(N[i]);
writeln('donner le prénom de l''élève N° ',i); readln(P[i]);
writeln('donner la note du devoir de controle');readln(C[i]);
writeln('donner la note du devoir de synthèse');readln(S[i]);
end;
end;
 
function Moyenne(c1,s1:T2;j:integer):real;
begin
Moyenne:=(c1[j]+2*s1[j])/3;
end;
 
procedure calculer(var M:T2;C,S:T2;x:integer);
var i:integer;
begin
for i:= 1 to x do
begin
M[i]:=Moyenne(c,s,i);
end;
end;
 
procedure afficher(N,P:T1;M:T2;x:integer);
var i:integer;
begin
for i:= 1 to x do
writeln('l''élève ',N[i],' ',P[i], ' a une moyenne ',M[i]:5:2);
end;
 
begin
repeat
writeln('donner n '); readln(n);
until (n>0);
Remplir(Nom,Prenom,Dc,Ds,n);
Calculer(Dc,Ds,Moy,n);
Afficher(Nom,Prenom,Moy,n);
end.