Вопрос задан 13.07.2023 в 01:51. Предмет Информатика. Спрашивает Ольховик Захар.

Дан двумерный массив А. Сформировать одномерный массив, в который войдут элементы из А, больше 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. Что я делаю не так?
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Скляревский Миша.

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

При просмотре вашего кода, я заметил несколько ошибок. Вот исправленный вариант программы:

pascal
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); 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.

Ошибки, которые были исправлены:

  1. Отсутствует оператор begin после первого цикла For.
  2. У второго цикла For некорректное использование переменной k внутри цикла. Цикл For k := 0 to i do не имеет смысла здесь, и он был удален.
  3. Вывод элементов массива b нужно было выполнить отдельным циклом после заполнения массива.

Теперь программа должна корректно считывать элементы массива a, формировать массив b из элементов больше 4 и выводить его на экран.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос