Не используя массив, определить значение второго по величине элемента - 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 знаков после запятой. Код предназначен для ввода последовательности чисел и определения значения второго по величине элемента этой последовательности.
- Вывод на экран значения
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д