Найти номер первого из столбцов матрицы, не содержащих элементов, меньших s - Turbo Pascal
Формулировка задачи:
Найти номер первого из столбцов, не содержащих элементов, меньших s. (матрица)
Решение задачи: «Найти номер первого из столбцов матрицы, не содержащих элементов, меньших s»
textual
Листинг программы
var
ar: Array[Byte, Byte] Of ShortInt;
i, j: Byte;
n, m, s: Integer;
flag: Boolean;
begin
repeat
Write('Введите количество строк (1..256): ');
ReadLn(n);
until ((n > 0) And (n <= 256));
repeat
Write('Введите количество столбцов (1..256): ');
ReadLn(m);
until ((m > 0) And (m <= 256));
Randomize;
for i := 0 to n - 1 do
begin
for j := 0 to m - 1 do
begin
ar[i, j] := Random(199) - 99;
Write(ar[i, j]:4);
end;
WriteLn;
end;
Write('Введите число s: '); ReadLn(s);
j := 0;
repeat
i := 0;
repeat
flag := (ar[i, j] >= s);
Inc(i);
until ((i >= n) Or (Not flag));
Inc(j);
until ((j >= m) Or flag);
if (flag)
then
WriteLn('Ответ: столбец №', j)
else
WriteLn('Все столбцы содержать элементы, меньшие ', s);
end.
Объяснение кода листинга программы
- Создается переменная ar типа Array[Byte, Byte] Of ShortInt, которая представляет собой матрицу размером n x m.
- Задаются переменные i и j типа Byte, которые будут использоваться для прохода по матрице.
- Задается переменная n типа Integer, которая представляет количество строк в матрице.
- Задается переменная m типа Integer, которая представляет количество столбцов в матрице.
- Задается переменная s типа Integer, которую пользователь должен ввести и которая будет использоваться для проверки элементов матрицы.
- Инициализируется переменная flag типа Boolean, которая будет использоваться для отслеживания того, есть ли в матрице столбцы, содержащие элементы, меньшие s.
- В цикле while происходит следующее:
- Пользователю предлагается ввести количество строк и столбцов матрицы.
- Введенные значения проверяются на соответствие допустимому диапазону.
- Если введенные значения некорректны, цикл повторяется.
- Если введенные значения корректны, переходят к следующему шагу.
- В цикле while повторяется следующий код:
- Переменная i и j инициализируются.
- В цикле повторяется следующий код:
- Переменная flag устанавливается в значение (ar[i, j] >= s).
- Переменная i инкрементируется.
- Пока условие (i >= n) или (Not flag) истинно, переменная j инкрементируется.
- Если флаг равен true, выводится ответ на вопрос о номере столбца.
- Если флаг равно false, выводится сообщение о том, что все столбцы содержат элементы, меньшие s.