Вопрос задан 18.10.2026 в 19:49. Предмет Информатика. Спрашивает Чернядьев Саша.

Написать программу решения следующей задачи: Вычислить z = (s1 + s2) / 2, где s1 – сумма положительных элементов массива X(15); s2 – сумма отрицательных элементов массива Y(20). Использовать подпрограмму.
program z_2;
var
x: array[1..100] of integer;
y: array[1..100] of integer;
z: real;
i, j, n: integer;
s1, s2: integer;
procedure sums(var s1, s2: integer);
begin
s1 := 0;
write('n = '); readln(n);
for i := 1 to n do begin
write('x[', i, '] = '); readln(x[i]);
end;
for i := 1 to n do
if x[i] > 0 then begin
s1 := s1 + x[i];
end;
s2 := 0;
for j := 1 to n do begin
write('y[', j, '] = '); readln(y[j]);
for j := 1 to n do
if y[j] < 0 then begin
s2 := s2 + y[j];
end;
begin
sums(s1, s2);
z := (s1 + s2) / 2;
writeln('z = ', z:4:4);
end.

Перейти к ответам

Ответы на вопрос

Отвечает Межуев Данил.

Программа вводит 15 элементов массива \(X\) и 20 элементов массива \(Y\). Подпрограмма находит сумму положительных элементов первого массива и сумму отрицательных элементов второго.

program z_2;
var
  x: array[1..15] of integer;
  y: array[1..20] of integer;
  s1, s2: integer;
  z: real;
  i: integer;

procedure sums(var s1, s2: integer);
var
  i: integer;
begin
  s1 := 0;
  for i := 1 to 15 do
    if x[i] > 0 then s1 := s1 + x[i];

  s2 := 0;
  for i := 1 to 20 do
    if y[i] < 0 then s2 := s2 + y[i];
end;

begin
  for i := 1 to 15 do
  begin
    write('x[', i, '] = ');
    readln(x[i]);
  end;

  for i := 1 to 20 do
  begin
    write('y[', i, '] = ');
    readln(y[i]);
  end;

  sums(s1, s2);
  z := (s1 + s2) / 2;
  writeln('z = ', z:0:2);
end.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос