Подпрограммы, Pascal ABCДано массивы А1(N1,M1), A2(N2,M2), A3(N3,M3). Сформировать одномерные

Подпрограммы, Pascal ABC

Дано массивы А1(N1,M1), A2(N2,M2), A3(N3,M3). Сформировать одномерные массивы В1, В2, В3, каждый из которых состоит из 2-ух частей. В первом из их количество положительных частей массивов А1,А2,А3 соответственно, во втором количество отрицательных частей массивов А1,А2,А3 соответственно. Определение количества отрицательных и положительных частей в начальном массиве и формирование одномерного массива выполнить в подпрограмме.

Задать свой вопрос
1 ответ
Type
  M = array[,] of integer; // двумерный динамический
  V = array[1..2] of integer; // одномерный статический

function nPos(pm: M): integer;
var
  i, j, p: integer;
begin
  p := 0;
  for i := 0 to Length(pm, 0) - 1 do
    for j := 0 to Length(pm, 1) - 1 do
      if pm[i, j] gt; 0 then p := p + 1;
  nPos := p
end;

function nNeg(pm: M): integer;
var
  i, j, p: integer;
begin
  p := 0;
  for i := 0 to Length(pm, 0) - 1 do
    for j := 0 to Length(pm, 1) - 1 do
      if pm[i, j] lt; 0 then p := p + 1;
  nNeg := p
end;

procedure GetV(A: M; var C: V);
begin
  C[1] := nPos(A);
  C[2] := nNeg(A)
end;

procedure InitM(var A: M);
var
  i, j: integer;
begin
  for i := 0 to Length(A, 0) - 1 do
    for j := 0 to Length(A, 1) - 1 do
      A[i, j] := random(100) - 50
end;

procedure PrintM(A: M);
var
  i, j: integer;
begin
  for i := 0 to Length(A, 0) - 1 do
  begin
    for j := 0 to Length(A, 1) - 1 do
      write(A[i, j]:4);
    writeln
  end
end;

var
  A1, A2, A3: M;
  B1, B2, B3: V;
  n1, m1, n2, m2, n3, m3: integer;

begin
  Randomize;
  writeln('Введите число строк и столбцов массива');
  readln(n1, m1);
  SetLength(A1, n1, m1);
  InitM(A1);
  Writeln('массив А1');
  PrintM(A1);
  GetV(A1, B1);
  writeln('Количество положительных ', B1[1], ', количество отрицательных ', B1[2]);
  writeln('Введите число строк и столбцов массива');
  readln(n2, m2);
  SetLength(A2, n2, m2);
  InitM(A2);
  Writeln('массив А2');
  PrintM(A2);
  GetV(A2, B2);
  writeln('Количество положительных ', B2[1], ', количество отрицательных ', B2[2]);
  writeln('Введите число строк и столбцов массива');
  readln(n3, m3);
  SetLength(A3, n3, m3);
  InitM(A3);
  Writeln('массив А3');
  PrintM(A3);
  GetV(A3, B3);
  writeln('Количество положительных ', B3[1], ', количество отрицательных ', B3[2]);
end.

Тестовый прогон:

Введите число строк и столбцов массива
3 3
массив А1
   6  11 -46
  24 -41  36
  44   9  18
Количество положительных 7, количество отрицательных 2
Введите число строк и столбцов массива
2 4
массив А2
  37  -4  -2  43
 -18  36   0  44
Количество положительных 4, количество отрицательных 3
Введите число строк и столбцов массива
5 2
массив А3
   5 -15
  49  -1
 -40  35
 -33  -9
 -22 -31
Количество положительных 3, количество отрицательных 7


, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт