Сначала массив Dat заполняется числами 2, 8, 6, ..., 7. Затем производится поиск максимума среди Dat[1], Dat[8..12] (стандартный алгоритм: в m хранится текущий максимум, в month – номер месяца, в котором этот максимум впервые реализуется. Перед циклом m = Dat[1], month = 1, в цикле если элемент массива больше текущего максимума, то текущий максимум и номер месяца перезаписываются). Наконец, выводится month – номер месяца, в котором впервые количество детских праздников достигает максимума.
Максимальное значение равно 8, впервые встречается среди Dat[1], Dat[8..12] в Dat[9].
// PascalABC.Net 3.0, версия 1066 const mm=50; nn=50; var n,m,i,j,k1,k2,p:integer; s1,s2,s3:longint; a:array[1..mm,1..nn] of integer; begin Write('Число строк и столбцов массива: '); Read(m,n); Write('Значение p: '); Read(p); Writeln('*** Сгенерированный массив ***'); Randomize; s1:=0; s2:=0; s3:=0; k1:=0; k2:=0; for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=Random(101)-50; Write(a[i,j]:4); if a[i,j]>30 then s1:=s1+a[i,j]; if Odd(a[i,j]) then Inc(k1) else begin s2:=s2+a[i,j]; Inc(k2) end; if i+j=p then s3:=s3+a[i,j] end; Writeln end; Writeln('Сумма элементов массива, больших 30: ',s1); Writeln('Количество нечетных элементов массива: ',k1); Writeln('Среднее арифметическое четных элементов массива: ',s2/k2); Writeln('Сумма элементов массива c суммой индексов ',p,': ',s3) end.