Задать вопрос
4 апреля, 12:33

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

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

+4
Ответы (1)
  1. 4 апреля, 13:35
    0
    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
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Подпрограммы, Pascal ABC Дано массивы А1 (N1, M1), A2 (N2, M2), A3 (N3, M3). Сформировать одномерные массивы В1, В2, В3, каждый из которых ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы