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

Ответы на вопрос

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.



Задача: Формирование одномерных массивов с количеством единиц, двоек и троек
Для решения данной задачи, нам необходимо сформировать три одномерных массива B1, B2 и B3, элементами которых будут являться количество единиц, двоек и троек в исходных массивах A1, A2 и A3 соответственно.
Алгоритм решения:
1. Создаем три одномерных массива B1, B2 и B3 с размерами 3 каждый, чтобы хранить количество единиц, двоек и троек соответственно. 2. Проходим по каждому элементу массива A1 и увеличиваем соответствующий элемент массива B1 в зависимости от значения элемента A1. 3. Проходим по каждому элементу массива A2 и увеличиваем соответствующий элемент массива B2 в зависимости от значения элемента A2. 4. Проходим по каждому элементу массива A3 и увеличиваем соответствующий элемент массива B3 в зависимости от значения элемента A3. 5. Возвращаем полученные массивы B1, B2 и B3.
Пример кода на PascalABC:
```pascal program Main;
const N = 4; // размер массива A1 N2 = 3; // размер массива A2 N3 = 5; // размер массива A3
type TArray = array[1..N] of Integer; TArray2 = array[1..N2, 1..N3] of Integer; TCountArray = array[1..3] of Integer;
procedure CountElements(const A1: TArray; const A2: TArray2; const A3: TArray2; var B1, B2, B3: TCountArray); var i, j: Integer; begin // Инициализация массивов B1, B2 и B3 for i := 1 to 3 do begin B1[i] := 0; B2[i] := 0; B3[i] := 0; end;
// Подсчет количества единиц, двоек и троек в массиве A1 for i := 1 to N do begin case A1[i] of 1: B1[1] := B1[1] + 1; 2: B1[2] := B1[2] + 1; 3: B1[3] := B1[3] + 1; end; end;
// Подсчет количества единиц, двоек и троек в массиве A2 for i := 1 to N2 do begin for j := 1 to N3 do begin case A2[i, j] of 1: B2[1] := B2[1] + 1; 2: B2[2] := B2[2] + 1; 3: B2[3] := B2[3] + 1; end; end; end;
// Подсчет количества единиц, двоек и троек в массиве A3 for i := 1 to N2 do begin for j := 1 to N3 do begin case A3[i, j] of 1: B3[1] := B3[1] + 1; 2: B3[2] := B3[2] + 1; 3: B3[3] := B3[3] + 1; end; end; end; end;
var A1: TArray; A2, A3: TArray2; B1, B2, B3: TCountArray; i: Integer; begin // Инициализация массива A1 A1[1] := 1; A1[2] := 2; A1[3] := 3; A1[4] := 1;
// Инициализация массива A2 A2[1, 1] := 1; A2[1, 2] := 2; A2[1, 3] := 3; A2[2, 1] := 1; A2[2, 2] := 2; A2[2, 3] := 3; A2[3, 1] := 1; A2[3, 2] := 2; A2[3, 3] := 3;
// Инициализация массива A3 A3[1, 1] := 1; A3[1, 2] := 2; A3[1, 3] := 3; A3[1, 4] := 1; A3[1, 5] := 2; A3[2, 1] := 1; A3[2, 2] := 2; A3[2, 3] := 3; A3[2, 4] := 1; A3[2, 5] := 2; A3[3, 1] := 1; A3[3, 2] := 2; A3[3, 3] := 3; A3[3, 4] := 1; A3[3, 5] := 2;
// Вызов подпрограммы для подсчета количества единиц, двоек и троек CountElements(A1, A2, A3, B1, B2, B3);
// Вывод результатов for i := 1 to 3 do begin writeln('B', i, ':'); writeln('Количество единиц: ', B1[i], ', количество двоек: ', B2[i], ', количество троек: ', B3[i]); end; end. ```
Блок-схема:
``` +-------------------+ | Начало | +-------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili