В матрице указать строку, содержащую минимальный элемент, оканчивающийся на цифру k - PascalABC.NET
Формулировка задачи:
Пожалуйста помогите решить задачу.
В прямоугольной таблице указать строку, содержащую минимальный элемент, оканчивающийся на цифру k.
Решение задачи: «В матрице указать строку, содержащую минимальный элемент, оканчивающийся на цифру k»
textual
Листинг программы
procedure OutTable(T : array [,] of Integer); begin var D := 1; for var Row := 0 to T.GetLength(0)-1 do for var Col := 0 to T.GetLength(1)-1 do D := max(D, T[Row, Col].ToString.Length); D += 1; for var Row := 0 to T.GetLength(0)-1 do begin for var Col := 0 to T.GetLength(1)-1 do Write(T[Row, Col]:D); WriteLn; end; end; begin var Rows := ReadLnInteger(' Строк в таблице ='); var Cols := ReadLnInteger('Колонок в таблице ='); var T : array [,] of Integer; SetLength(T, Rows, Cols); Randomize; for var Row := 0 to Rows-1 do for var Col := 0 to Cols-1 do T[Row, Col] := Random(0, 999); WriteLn('Таблица заполнена случайными числами от 0 до 999:'); OutTable(T); var K := ReadLnInteger('Введите цифру (0..9)= '); if Not(K in [0..9]) then Halt; var minVal := 1000 + K; var minRow := 0; var minCol := 0; for var Row := 0 to Rows-1 do for var Col := 0 to Cols-1 do if (T[Row, Col] mod 10 = K) and (minVal > T[Row, Col]) then begin minVal := T[Row, Col]; minRow := Row; minCol := Col; end; Write('Строка, содержащая минимальный элемент,', NewLine, ' оканчивающийся на ', K); if minVal = 1000 + K then WriteLn(' в таблице не найдена.') else WriteLn(' находится в строке ', minRow+1); end.
Объяснение кода листинга программы
- Входные данные: массив T, представляющий собой таблицу чисел, заполненную случайными значениями от 0 до 999.
- Выходные данные: таблица, в которой все числа записаны с добавленным к их длине единичным сдвигом, для обеспечения уникальности записи чисел, оканчивающихся на конкретную цифру k.
- После заполнения таблицы и вывода её на экран, программа запрашивает у пользователя цифру k от 0 до 9.
- Переменная minVal инициализируется значением 1000 + k.
- Переменные minRow и minCol инициализируются нулевыми значениями.
- Циклом перебираются все строки и столбцы таблицы.
- Если элемент в текущей строке и столбце является кратным 10 равным k и его значение меньше minVal, то minVal, minRow и minCol обновляются соответственно.
- Если minVal равно 1000 + k, то выводится сообщение о том, что строка, содержащая минимальный элемент, оканчивающийся на k, в таблице не найдена.
- В противном случае выводится сообщение о том, что строка, содержащая минимальный элемент, оканчивающаяся на k, находится в строке minRow+1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д