Процедуры и функции при работе с массивами в Паскале

maxresdefault
С клавиатуры вводится 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.

Комментарии закрыты, но вы можете Трекбэк с вашего сайта.

Комментарии закрыты.

rax.ru Рейтинг@Mail.ru