Не используя массив, определить значение второго по величине элемента - Pascal
Формулировка задачи:
Помогите с комментариями в программе-С клавиатуры вводятся N. Не используя массив, определить значение второго по величине элемента.
var max,N,a,t,i,x: integer; begin writeln ('Введите N: '); readln (N); writeln ('Введите число: '); readln (a); //максимальное writeln ('Введите число: '); readln (max); //второй по величине if a<max then begin t:=max; max:=a; a:=t; end; for i:=3 to N do begin writeln ('Введите число: '); readln (x); if x>=a then begin max:=a; a:=x; end; if x>max then max:=x; end; writeln(max); end.
Решение задачи: «Не используя массив, определить значение второго по величине элемента»
textual
Листинг программы
var i, n: LongWord; //счётчик и количество чисел temp, fMax, sMax: Real; //текущая переменная, первый по величине, второй по величине begin repeat //считываем n Write('Введите N (>1): '); ReadLn(n); until (n > 1); //пока он не будет удовлетворять логическим условиям задачи Write('Введите число: '); ReadLn(fMax); //считываем число (оно единственное - поэтому и максимум) Write('Введите число: '); ReadLn(temp); //считываем второе число if (temp > fMax) then //если второе больше первого begin sMax := fMax; //первое запоминается как второе по величине fMax := temp; //второе - как первое end else //если первое было больше второго sMax := temp; //второе - запоминается как второе же по величине for i := 3 to n do //считываем остальные n-2 чисел begin Write('Введите число: '); ReadLn(temp); //запрашиваем число if (temp > fMax) then //если введённое больше первого максимума begin sMax := fMax; //переносим "старый" максимум во "второй по величине" fMax := temp; //запоминаем новый максимум end else //если введённое меньше первого максимума if (temp > sMax) then //и введённое больше второго по величине sMax := temp; //запоминаем новый "второй по величине" end; Write('Второй максимум: ', sMax:0:4); end.
Объяснение кода листинга программы
- Объявление переменных:
i
- счётчикn
- количество чиселtemp
- текущее число, которое будет сравниваться с максимумамиfMax
- переменная для хранения первого по величине числаsMax
- переменная для хранения второго по величине числа
- Цикл для ввода значения
n
:- Запрос пользователю ввести значение
n
(>1) - Считывание значения
n
- Повторять до тех пор, пока
n
не будет больше 1
- Запрос пользователю ввести значение
- Ввод первого числа:
- Запрос пользователю ввести число
- Считывание значения и сохранение в переменную
fMax
- Ввод второго числа:
- Запрос пользователю ввести число
- Считывание значения и сохранение в переменную
temp
- Сравнение введенных значений:
- Если
temp
больше чемfMax
, то:sMax
присваивается значениеfMax
fMax
присваивается значениеtemp
- В противном случае:
sMax
присваивается значениеtemp
- Если
- Цикл для ввода оставшихся чисел:
- Для каждого числа от 3 до
n
:- Запрос пользователю ввести число
- Считывание значения и сохранение в переменную
temp
- Сравнение
temp
сfMax
иsMax
: - Если
temp
больше чемfMax
, то:sMax
присваивается значениеfMax
fMax
присваивается значениеtemp
- В противном случае, если
temp
больше чемsMax
:sMax
присваивается значениеtemp
- Для каждого числа от 3 до
- Вывод второго по величине числа:
- Вывод на экран значения
sMax
с точностью до 4 знаков после запятой. Код предназначен для ввода последовательности чисел и определения значения второго по величине элемента этой последовательности.
- Вывод на экран значения
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д