Найти 2 наибольших числа - Pascal

Узнай цену своей работы

Формулировка задачи:

Дано: Ряд целых чисел,где каждый член>=2, найти 2 наибольших элемента Текст программы:
 Var p,i,max1,max2,x:integer;
 Begin
  write('введите кол-во чисел в последовательности-');
  readln(p);
  readln(x);
  max1:=x;
  readln(x);
  max2:=x;
   for i:=1 to p-2 do begin
                          readln(x);
                          if (x>max2) and (x<max1) then max2:=x;
                          if x>max2
                          then max1:=x;
                      
                    end;
  writeln(max1,' ',max2);
  End.
Что нужно изменить,чтобы программа работала не только для возрастающей последовательности?

Решение задачи: «Найти 2 наибольших числа»

textual
Листинг программы
Var p,i,max1,max2,x:integer;
 Begin
  write('введите кол-во чисел в последовательности-');
  readln(p);
  max1:=-maxint;
  max2:=-maxint;
   for i:=1 to p do 
   begin
    readln(x);
   if (x>max1) and (x>max2) then 
   begin
   max2:=max1;
   max1:=x;
   end
   else
   if x>max2 then max2:=x
   end;
  writeln(max1,' ',max2);
  End.

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

  1. Переменные p, i, max1, max2, x инициализируются типом integer.
  2. Пользователю предлагается ввести количество чисел в последовательности с помощью функции readln().
  3. Значения max1 и max2 инициализируются как -maxint, что гарантирует, что первое введенное число станет наибольшим.
  4. Используется цикл for для чтения p чисел из последовательности.
  5. Если текущее число (x) больше max1 и max2, то оно становится новым max1, а предыдущее max1 становится max2.
  6. Если текущее число (x) больше max2, то оно становится новым max2.
  7. После окончания цикла, наибольшие числа выводятся на экран с помощью функции writeln().

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


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

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

12   голосов , оценка 4.25 из 5
Похожие ответы