Доделать функцию - 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.

Объяснение кода листинга программы

  1. Переменная n и тип vector определены и объявлены.
  2. Переменная max2 определена и объявлена.
  3. Переменная a инициализирована.
  4. Переменная rez инициализирована.
  5. Переменная i инициализирована.
  6. Переменная fl инициализирована.
  7. Функция max объявлена.
  8. Вложенные циклы for начинаются.
  9. Первый цикл for начинается. Он сортирует первую половину массива a.
  10. Второй цикл for начинается. Он проверяет, есть ли два четных числа в первой половине массива.
  11. Если условие цикла выполняется, то происходит объединение двух чисел в одно.
  12. Если условие цикла не выполняется, то переменная k увеличивается.
  13. Цикл while начинается. Он продолжается до тех пор, пока условие цикла не выполнится или пока в первой половине массива не будет двух четных чисел.
  14. Если условие цикла выполняется, то переменные x.m1 и x.m2 инициализируются.
  15. Цикл while заканчивается.
  16. Если условие цикла не выполняется, то переменная max инициализируется значением x.
  17. Основной цикл for заканчивается.
  18. Если флаг fl равен true, то выводится значение rez.m1 и rez.m2.
  19. Если флаг fl равен false, то выводится сообщение о том, что в первой половине массива нет двух четных чисел.
  20. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5