Доделать функцию - Pascal ABC
Формулировка задачи:
Решение задачи: «Доделать функцию»
textual
Листинг программы
const n=10; type vector=array[1..n] of integer; max2=record m1,m2:integer end; var a:vector; rez:max2; i:integer; fl:boolean; function max(a:vector;var f:boolean):max2; //если нет двух четных в первой половине массива f=false var i,j,k:integer; x:max2; begin i:=1; for i:=1 to n div 2-1 do //сортируем первую половину массива for j:=1 to n div 2-i do if a[j]<a[j+1] then begin a[j]:=a[j]+a[j+1]; a[j+1]:=a[j]-a[j+1]; a[j]:=a[j]-a[j+1] end; k:=0;i:=1;f:=true; while (k<2)and(i<= n div 2) do begin if not(odd(a[i])) then begin if k=0 then begin x.m1:=a[i];inc(k) end else begin x.m2:=a[i];inc(k) end; end; inc(i) end; if k<2 then f:=false else max:=x end; begin for i:=1 to n do begin a[i]:=random(21);write(a[i],' ') end;writeln; rez:=max(a,fl); if fl then writeln(rez.m1,' ',rez.m2) else writeln('в первой половине массива нет двух четных') end.
Объяснение кода листинга программы
- Переменная
n
и типvector
определены и объявлены. - Переменная
max2
определена и объявлена. - Переменная
a
инициализирована. - Переменная
rez
инициализирована. - Переменная
i
инициализирована. - Переменная
fl
инициализирована. - Функция
max
объявлена. - Вложенные циклы
for
начинаются. - Первый цикл
for
начинается. Он сортирует первую половину массиваa
. - Второй цикл
for
начинается. Он проверяет, есть ли два четных числа в первой половине массива. - Если условие цикла выполняется, то происходит объединение двух чисел в одно.
- Если условие цикла не выполняется, то переменная
k
увеличивается. - Цикл
while
начинается. Он продолжается до тех пор, пока условие цикла не выполнится или пока в первой половине массива не будет двух четных чисел. - Если условие цикла выполняется, то переменные
x.m1
иx.m2
инициализируются. - Цикл
while
заканчивается. - Если условие цикла не выполняется, то переменная
max
инициализируется значениемx
. - Основной цикл
for
заканчивается. - Если флаг
fl
равенtrue
, то выводится значениеrez.m1
иrez.m2
. - Если флаг
fl
равенfalse
, то выводится сообщение о том, что в первой половине массива нет двух четных чисел. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д