Теперь с двумерным массивом =/ дано: массивы a1(n,b), a2(n2,m2), a3(n3,m3). сформировать одномерные массивы b1,b2,b3, элементами каждого из которых являются количество единиц,двоек и троек в исходных массивах a1, a2, a3 соответственно. формирование одномерного массива из трех элементов, содержащего количество единиц, двое и троек в исходном массиве, осуществить в подпрограмме и изобразить блоксхему. pascalabc, тут надо также : "неученым языком(начальным уровнем)" написать с подпрограммой через procedure.уповаю на вашу заранее !

123ЭщКеРе123 123ЭщКеРе123    3   04.06.2019 14:20    0

Ответы
An0NimKa00 An0NimKa00  05.07.2020 13:56
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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика