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

Подпрограммы, Pascal ABC Дано массивы А1(N1,M1), A2(N2,M2), A3(N3,M3). Сформировать одномерные массивы В1, В2, В3, каждый из которых состоит из 2-ух элементов. В первом из них количество положительных элементов массивов А1,А2,А3 соответственно, во втором количество отрицательных элементов массивов А1,А2,А3 соответственно. Определение количества отрицательных и положительных элементов в исходном массиве и формирование одномерного массива осуществить в подпрограмме.
Гость
Ответ(ы) на вопрос:
Гость
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 := 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] < 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы