Здравствуйте , помогите пожалуйста решить в паскаль ABC.net
Дано масив А[1..18, 1.. n] та натуральне число n. Скласти програму пошуку найбільшого
по модулю елементу масиву, а також індексу цього елементу.
Ответы
Программа:
Pascal:
var
A: array[,] of integer;
i, j, n, maxNum: integer;
maxIndex: string;
begin
maxNum := -MAXINT;
write('n = '); readln(n);
SetLength(A, 18, n);
for i := 0 to 18 - 1 do
for j := 0 to n - 1 do begin
A[i, j] := random(50);
if A[i, j] > maxNum then begin
maxNum := A[i, j];
maxIndex := 'строка ' + i + ', столбец ' + j;
end;
end;
writeln('Массив: ', A, #10, 'Максимальное число: ', maxNum, #10, 'Индекс макс. элемента: ', maxIndex);
end.
Объяснение:
В начале выделяется память под массив; переменные i, j, n, maxNum - integer, maxIndex - string. Далее начинается основной код. Переменной maxNum присваивается минимальное число. Далее - вводится значение переменной n. Устанавливается длина массива, как требуется по условию (18 строк, n рядов). С помощью цикла пробегаемся по каждому элементу массива, где: i - пробегается по строкам, j - пробегается по рядам. Так как функция SetLength() устанавливает индекс элементам именно от нуля до определённого числа - 1. То есть, устанавливает именно кол-во элементов массива именно по определённому направлению (строки/столбцы). В теле двойного цикла элементу присваивается рандомное число (от 0 до 50), проверяется условие: элемент массива больше текущего максимального элемента? Если да, то значение переменной maxNum изменяется на текущий элемент; если нет, то переменной maxIndex присваивается строка и столбец текущего элемента. В конце вывод массива, максимального числа и индекса этого числа.
Результат:
n = 5
Массив: [[35,34,11,23,6],[6,38,38,0,33],[44,18,1,18,18],[29,3,43,27,40],[26,19,30,13,30],[37,45,48,40,48],[26,31,16,35,44],[34,0,27,8,24],[35,14,0,16,4],[29,11,0,21,40],[1,34,4,0,21],[15,4,48,43,19],[10,40,48,2,7],[13,1,15,23,34],[29,26,34,3,4],[12,18,14,8,1],[25,45,26,49,46],[41,26,15,14,28]]
Максимальное число: 49
Индекс макс. элемента: строка 16, столбец 3