Pas de compilation du programme

Fermé
ta9tou9a Messages postés 5 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 22 avril 2008 - 22 avril 2008 à 13:12
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 22 avril 2008 à 14:15
Bonjour,
prb en prog

program moyenne;
uses wincrt;
const k=31;
type tab1 = array [5..k] of real;

procedure saisie(var n: real;var t: tab1);
var
i: integer;

begin
repeat
write('donner la taille du tableau =' );readln(n);
until (n in [5..31]);
for i:=1 to n do
begin
write('donner t[ ', i,']:'); readln(t[i]);
end;
end;

procedure tri(n:real; var t:tab1);
procedure permut(var x,y: real);
var
a: real;
begin
x:=a;
a:=y;
y:=x;
end;

var
t: tab;
j: integer;
echange: boolean;
begin
repeat echange:= false;
for j:=1 to n do
begin
if t[j]>t[j+1] then permut();
echange:= true;
end;
n:=n-1; until (n=1) or (non(echange));
end;

procedure taux(var m: integer; t:tab1; a: real );
var
m: inetger;
i: integer;
begin
m:=0;
for i:=1 to n do
if (t[i]>=10) then m:=m+1;
a:=((m/n)*100);
write('le taux de reussite est ',a,'%');
end;
var
n: real;
t: tab1;


begin
saisie(n,t);
tri(n,t);
write('la moyenne la plus elevee est ',t[n]);
taux(var m: integer; t:tab1; a: real)
end.

1 réponse

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 121
22 avril 2008 à 14:15
Salut,

Je pense que le problème est dans la procedure du trie:
Je ne me rappelle pas bien, mais je pense qu'il y a un truc qui cloche.

Je pense que le bon algorithme est:

i := 1;

while(i < taille)
Begin
      if(tab[i] < tab[i+1]) then
      Begin
           permut(tab[i], tab[i+1]);
           i := 0;
      end
      else
           i := i + 1;
End;


Mais cette erreur est logique;
Est ce que vous pouvez nous donner le message d'erreur?
0