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
| program divsom;
uses wincrt;
type tab= array[1..100] of integer;
var t,v:tab; n,sm,i:integer;
procedure remplissage (var t:tab; var n:integer);
var i:integer;
begin
repeat
writeln ('donner le nombre de cases');
readln (n);
until n in [3..20];
for i:=1 to n do
begin
repeat
writeln ('t[',i,']=');
readln(t[i]);
until t[i]>=0;
end;
end;
function somme (t:tab;n:integer):integer;
var i,s:integer;
begin
s:=0;
for i:=1 to n do
s:=s+t[i];
somme:=s;
end;
procedure divisible (t:tab; n:integer;s:integer);
var i,ss:integer; v:tab;
begin
ss:= somme (t,n);
for i:= 1 to n do
if t[i] mod ss =0 then v[i]:= t[i];
end;
begin
remplissage (t,n);
sm:= somme (t,n);
writeln(sm);
divisible (t,n,sm);
for i:= 1 to n do
writeln (v[i]);
end. |
Partager