Основы программирования на языке Turbo Pascal. Беляева И.В. - 117 стр.

UptoLike

Составители: 

117
IndexElement = 1 .. MaxDays; {Индексы массива}
ArrayTemperatures = array[IndexElement] of Temperature;
{Массив температур}
{==========================================}
{Ищем в массиве температур T, начиная с элемента Start,
цепочку, состоящую из значений меньше N (градусов).
Если цепочка не найдена, возвращается False.
Если цепочка найдена, то возвращается True
и возвращается первый элемент цепочки (через BeginChain),
а также ее длина (через LengthChain).
NumDays – количество дней в месяце (количество элементов в массиве)}
function FindChain(const T : ArrayTemperatures;
NumDays : Integer;
N : Temperature;
Start : IndexElement;
var BeginChain : IndexElement;
var LengthChain : Integer) : Boolean;
var
i : IndexElement;
begin
{Ищем начало цепочки, начиная со стартового элемента массива}
i := Start;
{В цикле продвигаем i вперед по массиву до тех пор,
пока не встретится элемент, удовлетворяющий условию
(будет меньше, чем N), или пока не выйдем за пределы массива
(i станет больше, чем NumDays)}
while ( T[i] >= N ) and ( i <= NumDays ) do
i := i + 1;
{Сейчас i указывает на первый элемент цепочки (или на первый
элемент за пределами массива)}
BeginChain := i;
{Ищем конец цепочки}
{Для этого продвигаем i вперед до тех пор, пока не встретится