Bonjour

Quelqu'un peut-il m'aider avec mon programme s'il vous plait...
J'ai un tableau unidimensionnel et je suis censé le diviser en trois à l'aide des places qu'occupent le maximum et le minimum et faire trois sommes correspondant à ces trois parties en m'aidant des procédures et fonctions pour trouver les indices du maximum et du minimum ! Voyez comment j'ai procédé et corrigez-moi svp:
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
52
53
procedure formmatr;
var i:integer;
begin
  for i:=1 to n do
    read(a[i]);
end;
 
function imax:integer;
var i,max:integer;
begin
  max:=a[1]; imax:=1;
  for i:=2 to n do
    if a[i]>max then
      imax:=i
    else
      imax:=1;
end;//function
 
function imin:integer;
var i,min:integer;
begin
  min:=a[1];
  imin:=1;
  for i:=2 to n do begin
    if a[i]<min then
      imin:=i;
end;//function 
 
begin
  formmatr;
  sum1:=0;sum2:=0; sum3:=0;
  if (imax >imin) then begin
    for i:=1 to imin do
      sum1:=sum1+a[i];
    for i:=imin+1 to imax do
      sum2:=sum2+a[i];
    for i:=imax+1 to n do
      sum3:=sum3+a[i];
    end
  else begin
    for i:=1 to imin do
      sum1:=sum1+a[i];
    for i:=imin+1 to imax do
      sum2:=sum2+a[i];
    for i:=imax+1 to n do
      sum3:=sum3+a[i];
    end;
  end;
  writeln(sum1);
  writeln(sum2);
  writeln(sum3); readln;
end;
end.