
Дан двумерный массив А. Сформировать одномерный массив, в который войдут элементы из А, больше 4.
Program primer_laba15; Var a : array [1..20,1..20] of integer; b : array [1..100] of integer; m,n,k,i,j : integer; Begin k:=0; Writeln ('Введите количество строк в массиве'); Readln(n); Write('Введите количество столбцов в матрице'); Readln(m); For i:=1 to n do For j:=1 to m do Begin Write('Введите а[', i, ',', j, ']='); Readln(a[i,j]) End; For i:=1 to n do For j:=1 to m do If a[i,j]>4 Then begin k:=k+1; b[k]:=a[i,j]; For k:=0 to i do End; Writeln('b[', i, ']=', b[k]); Readln End. Что я делаю не так?

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

var
a: array [1..20, 1..20] of integer;
b: array [1..100] of integer;
m, n, k, i, j: integer;
begin
k := 0;
Writeln('Введите количество строк в массиве'); Readln(n);
Write('Введите количество столбцов в матрице'); Readln(m);
for i := 1 to n do
for j := 1 to m do
begin
Write('Введите а[', i, ',', j, ']=');
Readln(a[i, j])
end;
Writeln('Новый массив');
for i := 1 to n do
for j := 1 to m do
if a[i, j] > 4 Then begin
b[i] := a[i, j];
Write(b[i], ' ');
end;
end.
Тестовое решение
Введите количество строк в массиве
3
Введите количество столбцов в матрице3
Введите а[1,1]=4
Введите а[1,2]=6
Введите а[1,3]=7
Введите а[2,1]=0
Введите а[2,2]=2
Введите а[2,3]=6
Введите а[3,1]=5
Введите а[3,2]=4
Введите а[3,3]=3
Новый массив
6 7 6 5



При просмотре вашего кода, я заметил несколько ошибок. Вот исправленный вариант программы:
pascalProgram primer_laba15; Var a : array [1..20, 1..20] of integer; b : array [1..100] of integer; m, n, k, i, j : integer; Begin k := 0; Writeln('Введите количество строк в массиве'); Readln(n); Writeln('Введите количество столбцов в матрице'); Readln(m); For i := 1 to n do For j := 1 to m do Begin Write('Введите a[', i, ',', j, ']= '); Readln(a[i, j]); End; For i := 1 to n do For j := 1 to m do Begin If a[i, j] > 4 Then begin k := k + 1; b[k] := a[i, j]; End; End; // Выводим элементы массива b, которые содержат значения из массива a больше 4 For i := 1 to k do Writeln('b[', i, ']= ', b[i]); Readln; End.
Ошибки, которые были исправлены:
- Отсутствует оператор
begin
после первого циклаFor
. - У второго цикла
For
некорректное использование переменнойk
внутри цикла. ЦиклFor k := 0 to i do
не имеет смысла здесь, и он был удален. - Вывод элементов массива
b
нужно было выполнить отдельным циклом после заполнения массива.
Теперь программа должна корректно считывать элементы массива a
, формировать массив b
из элементов больше 4 и выводить его на экран.


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







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