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
|
program traitement;
uses wincrt;
type
tab=array [1..1000]of integer;
var
v,t:tab;
i,p,n:integer;
procedure saisir_taille(var n :integer);
begin
repeat
writeln('donner la taille du tableau:');
readln(n);
until n in [5..30];
end;
procedure remplir_tab (var t:tab ; n: integer);
begin
for i:=1 to n do
begin
repeat
t[i]:=random (1001);
until t[i]<>0;
end;
end;
procedure saisir_position(var p:integer;n:integer);
begin
repeat
writeln('donner une position:');
readln(p);
until p in[1..n];
end;
procedure affichage(t:tab ; p:integer ;n:integer);
var
s,k,i,s1:integer;
begin
s:=0;
k:=1;
for i:= p-1 downto 1 do
begin
s:=s+t[i];
if s <= t[p] then
begin
v[k]:= t[i];
k:=k+1;
s1:=s1+t[i];
end;
end;
if s1= t[p] then
begin
procedure afficher(v:tab;k:integer);
begin
for i:=1 to k do
begin
writeln(v[i]);
end;
end;
end
else
begin
writeln('condition non verifiee');
end;
end;
begin
saisir_taille(n);
remplir_tab(t,n);
saisir_position(p,n);
affichage(v,n,p);
end. |
Partager