Вопрос Как написать программу в паскале

Регистрация
3 Фев 2013
Сообщения
95
Репутация
0
Спасибо
0
Монет
0
Задание
Написать программу которая :
1.Описывает одномерный массив из 10 элементов
2.вводит значение элементов массива с клавиатуры
3.выводит на экран значение второго по величине элемента
4.если такого значения нет вывести No
программа должна осуществлять поиск за однократный проход по массиву.

Я могу написать программу которая проходится 2 раза по массиву но как написать такую чтобы она проходилась только один раз
 
var min_vals : array [1..2] of integer; data: array [1..10] of integer; ... Здесь ввод ... if data[1] < data[2] then begin min_vals[1] := data[1]; min_vals[2] := data[2] end else begin min_vals[1] := data[2]; min_vals[2] := data[1] end; for i := 3 to 10 do begin if data < min_vals[1] then begin min_vals[2] := min_vals[1]; min_vals[1] := data end else if data < min_vals[2] then begin min_vals[2] := data end; В результате в min_vals[1] - минимальный, в min_vals[2] - следёющий по величине. Но если в массиве есть два идентичных минимальных элемента, они оба окажутся в min_vals.
 
if a>premax then begin a:=premax; if premax>max then max=premax; end; вроде в premax должен оказаться второй по величине элемент
 
3 переменных 1я -- есть или нет (изначально ноль) 2я -- текущее значение 3я -- входное и по ходу ввода во вторую отправлять меньшее текущего или текущее, если новое больше и первой присваивать единичку если такое случилось
 

Похожие темы

Назад
Сверху