var //блок определения переменных
A: array[1..15, 1..15] of integer;//двумерный массив статической длины. 15 столбцов, 15 строк. Коротко - 15x15
i, j, m, n, max: integer;// 5 переменных целочисленного типа
begin//операторная скобка(начало программы)
writeln('Вводим двумерный массив:');//функция вывода на экран текста, который ей передали
writeln;//перевод каретки на новую строку
randomize;//рандомизация. Определяет, что при новом запуске программы значения функции random будут сгенерированы заного
n := 1 + random(15);//переменной н присваиваем значение от 1 до 15(random(15) генерирует от 0 до 14)
m := 1 + random(15);//аналогично н, только присваиваем теперь м
for i := 1 to n do//цикл с счетчиком. Стартовое значение: 1. Конечное: n
begin//операторная скобка(начало)
max := 0;//присваиваем переменной max значение 0
for j := 1 to m do//цикл с счетчиком. Стартовое значение: 1. Конечное: m
begin//операторная скобка
a[i, j] := random(200);//элементу массива a с индексами i, j(где i - строка, j - столбец) присваиваем значение от 0 до 199
write(a[i, j]:4);//выводим элемент массива a с индексами i, j(где i - строка, j - столбец) и устанавливаем ширину вывода в 4 знака. т.е вывод числа будет установлен в 4 символа
if max < a[i, j] then max := a[i, j]// если значение переменной max меньше значения элемента a[i,j], то присваиваем max значение a[i,j]
end;//операторная скобка(конец)
writeln('max = ':10, max)//выводим текст с шириной 10 символов и выводим значение переменной max
end//операторная скобка(конец)
end.//операторная скобка(конец)