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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
program tab1;
uses crt;
var mytable:array[1..10] of integer; // ok
var A,B,c,d:integer; // essaye d'utiliser des noms plus représentatifs
var affichemin,affichemax:integer; // tu déclares ces variables mais tu ne les utilises nulle part !?
const min=0; // pas besoin de déclarer des constantes pour ça
const max=1; // idem
procedure remplir;
var i:integer;
begin
randomize; // à mettre dans le program principal et pas dans la procedure
for i:=1 to 10 do
begin // pas besoin de begin et end s'il n'y a qu'une seule instruction
mytable[i]:=random(10);
end;
end;
procedure lire;
var i:integer;
begin
for i:=1 to 10 do
begin
write(mytable[i]); // mieux vaut rajouter un espace entre les nombres pour que la lecture soit plus facile
end;
end;
function testmax(grand:integer):integer;
var i:integer;
begin
i:=1; // inutile, autant mettre tout de suite b:=mytable[1]
B:=mytable[i];
for i:=1 to 10 do // et ici autant commencer la boucle à la position 2
begin
if B > mytable[i] then B:=mytable[i]; // la y a un problème, soit dans le nom de ta fonction,
end; // soit dans le résultat, car à la fin B contient le plus petit
testmax:=B; // jamais vu ça, moi j'utilise toujours result, mais si ça marche pourquoi pas.
end; // mais bon c'est quand même moins clair que result.
function testmin(petit:integer):integer; // exactement les meme remarques que pour testmax
var i:integer;
begin
i:=1;
A:=mytable[i];
for i:=1 to 10 do
begin
if A < mytable[i] then A:=mytable[i];
end;
testmin:=A;
end;
function positionmax(x:integer):integer;
var i:integer;
begin
i:=1; // inutile, directement c:=mytable[1]
c:=mytable[i];
for i:=1 to 10 do // et commencer la boucle à 2
begin
if c > mytable[i] then c:=i; // la y a un problème, tu affectes à c la valeur de l'indice
end; // ce qui fait qu'ensuite tu compares la valeur de l'indice aux éléments du tableau
positionmax:=c;
end;
function positionmin(y:integer):integer; // meme remarque que positionmax
var i:integer;
begin
i:=1;
d:=mytable[i];
for i:=1 to 10 do
begin
if d < mytable[i] then d:=i;
end;
positionmin:=d;
end;
procedure tableau;
begin
remplir;
lire;
writeln;
writeln('plus grand ', testmin(min));
writeln('plus petit ',testmax(max));
writeln('position du plus grand ', positionmax(max));
writeln('position du plus petit ',positionmin(min));
end;
{Ici on appel la procedure tableau}
begin
clrscr;
tableau;
readkey;
end. |
Partager