С клавиатуры вводится 2 вещественных вектора, максимальная размерность – 30 элементов. Для того вектора, в котором сумма элементов больше найти и вывести количество отрицательных элементов. Другой вектор просто вывести на экран. В случае равенства сумм вывести соответствующее сообщение.
type mas=array [1..30] of real;
var a, c:mas;
i, n1, n2, s1, s2:integer;
function sum(var b:mas; n:integer):integer; // сумма элементов
var i, s:integer;
begin
s:=0;
for i:=1 to n do
s:=s+b[i];
sum:=s;
end;
function k(var b:mas; n:integer):integer;// количество отрицательных
var i, ko:integer;
begin
ko:=0;
for i:=1 to n do
if b[i]<0 then
ko:=ko+1;
k:=ko;
end;
procedure vivod(var b:mas; n:integer);// вывод на экран
var i:integer;
begin
for i:=1 to n do
write (b[i], ' ');
end;
procedure vvod(var b:mas; n:integer );// ввод массива
var i:integer;
begin
for i:=1 to n do begin
write ('Введите элемент массива');
readln(b[i]);
end;
end;
begin
repeat
writeln ('введите размерность первого массива');
readln (n1);
until (n1>=1) and (n1<=30);
repeat
writeln ('введите размерность второго массива');
readln (n2);
until (n2>=1) and (n2<=30);
vvod(a, n1);
vvod(c, n2);
s1:=sum(a, n1);
s2:=sum(c, n2);
writeln ('сумма первого ', s1, ' сумма второго ', s2);
if s1>s2 then
begin
writeln(‘количество отрицательных в первом ‘, k(a, n1));
vivod(c, n2);
end
else
begin
writeln(‘количество отрицательных во втором ‘,k(c, n2));
vivod(a, n1);
end;
if s1=s2 then
writeln (‘ суммы равны’);
end.