profile
Опубликовано 6 лет назад по предмету Информатика от geniral2012

Теперь с двумерным массивом =/ 
Дано: массивы A1(N,B), A2(N2,M2), A3(N3,M3). Сформировать одномерные массивы B1,B2,B3, элементами каждого из которых являются количество единиц,двоек и троек в исходных массивах A1, A2, A3 соответственно. Формирование одномерного массива из трех элементов, содержащего количество единиц, двое и троек в исходном массиве, осуществить в подпрограмме и изобразить блоксхему.

PascalABC, тут надо также : "неученым языком(начальным уровнем)" написать с подпрограммой через PROCEDURE.Уповаю на вашу помощь... Заранее спасибо!

  1. Ответ
    Ответ дан Аккаунт удален
    type
      arr = array[,] of integer;
      arrB = array[1..3] of integer;
    var
      i,  n, m: integer;
      A1, A2, A3: arr;
      B1, B2, B3: arrB;

    procedure FormB(var A: arr;var B:arrB);
    var  i, j, n, m: integer;
    begin
      n:= Length(A,0);
      m:= Length(A,1);
    for i := 0 to n-1 do
      begin
      for j := 0 to m-1 do
        begin
        A[i,j]:=random(10);
        write(A[i,j]:2);
        if A[i,j]=1 then B[1]:=B[1]+1;
        if A[i,j]=2 then B[2]:=B[2]+1;
        if A[i,j]=3 then B[3]:=B[3]+1
        end;
      writeln
      end
    end;

    begin
    write('Введите N1 и M1:');
    readln(n,m);
    SetLength(A1, n, m);
    FormB(A1,B1);
    write('Число единиц, двоек и троек соответственно равно: ');
    for i := 1 to 3 do write(B1[i]:4);
    writeln;
    write('Введите N2 и M2:');
    readln(n,m);
    SetLength(A2, n, m);
    FormB(A2,B2);
    write('Число единиц, двоек и троек соответственно равно: ');
    for i := 1 to 3 do write(B2[i]:4);
    writeln;
    write('Введите N3 и M3:');
    readln(n,m);SetLength(A3, n, m);
    FormB(A3,B3);
    write('Число единиц, двоек и троек соответственно равно: ');
    for i := 1 to 3 do write(B3[i]:4)
    end.

    Сделал еще вариант с двумя процедурами:
    type 
      arr = array[,] of integer;
      arrB = array[1..3] of integer;
    var 
      A1, A2, A3: arr;
      B1, B2, B3: arrB;


    procedure FormB(var A: arr;var B:arrB);
    var  i, j, n, m: integer;
    begin
    for i:=1 to 3 do B[i]:=0;
    n:= Length(A,0);
    m:= Length(A,1);
    for i := 0 to n-1 do
      begin
      for j := 0 to m-1 do
        begin
        A[i,j]:=random(10);
        write(A[i,j]:2);
        if A[i,j]=1 then B[1]:=B[1]+1;
        if A[i,j]=2 then B[2]:=B[2]+1;
        if A[i,j]=3 then B[3]:=B[3]+1
        end;
      writeln
      end
    end;

    procedure Inp(var A: arr;var B:arrB);
    var i,n,m:integer;
    begin
    write('Введите N и M: ');
    readln(n,m);
    SetLength(A, n, m);
    FormB(A,B);
    write('Число единиц, двоек и троек соответственно равно: ');
    for i := 1 to 3 do write(B[i]:4);
    writeln
    end;

    begin
    Inp(A1,B1);
    Inp(A2,B2);
    Inp(A3,B3)
    end.
    1. Ответ
      Ответ дан geniral2012
      Ух,Алекс,спасибо тебе,что потратил время на это! Мне это очень помогло!
    2. Ответ
      Ответ дан Аккаунт удален
      Пожалуйста! )) Надеюсь, ошибок нет, а то в глазах уже от буковок рябит))
    3. Ответ
      Ответ дан geniral2012
      Желаю вам выспаться=)
    4. Ответ
      Ответ дан Аккаунт удален
      Спасибо))
Самые новые вопросы