Найти 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.
Объяснение кода листинга программы
- Переменные p, i, max1, max2, x инициализируются типом integer.
- Пользователю предлагается ввести количество чисел в последовательности с помощью функции readln().
- Значения max1 и max2 инициализируются как -maxint, что гарантирует, что первое введенное число станет наибольшим.
- Используется цикл for для чтения p чисел из последовательности.
- Если текущее число (x) больше max1 и max2, то оно становится новым max1, а предыдущее max1 становится max2.
- Если текущее число (x) больше max2, то оно становится новым max2.
- После окончания цикла, наибольшие числа выводятся на экран с помощью функции writeln().