• Подпрограммы, 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] > 0 then p := p + 1;  nPos := pend;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] < 0 then p := p + 1;  nNeg := pend;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) - 50end;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  endend;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
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years