12. Типові алгоритми пошуку максимуму та мінімуму
У цьому розділі ми вивчимо найпростіші статистичні алгоритми, головний з яких - визначення максимального та мінімального значень на множині даних.
Розглянемо алгоритм у загальному вигляді:
описати для кожного максимуму та мінімуму по одній змінній того ж типу, що аналізовані дані;
до циклу максимуму присвоюється або заздалегідь мале для аналізованих даних значення, або перший елемент даних; мінімуму присвоюється або заздалегідь велике для аналізованих даних значення, або перший елемент даних;
у тілі циклу кожен підходящий для пошуку елемент даних t обробляється операторами виду: if t&max then max:=t; - Для максимуму; if t max не виконається жодного разу і відповіддю буде max, що дорівнює нулю, що неправильно. Вибірнаперед малогопочаткового значення max (наприклад, значення -1E30, тобто, -10 30 , навряд чи зустрінеться в будь-яких реальних даних) гарантує, що умова t>max виконається хоча б раз і максимум буде знайдено. Альтернативний спосіб - присвоїти змінній max значення окремо обчисленого першого елемента послідовності даних. У цьому випадку відповідь або вже знайдена, якщо перший елемент і є максимальна, або буде знайдена в циклі.
Аналогічні міркування допомагають зрозуміти, чому мінімуму слід присвоювати як початкове значення заздалегідь велике число.
Перейдемо до прикладів. Для функції y(x)=sin 2 (x),

Позначивши значення min і max відповідно, напишемо наступну програму:
- свідомо мале та велике для синуса>
if y max then max:=y;
writeln ('Мінімум =',min:8:2);
reset (input); readln;
У наступному прикладі додатково збережемо значенняаргументів функції, котрим знайдено мінімум і максимум.
Послідовність T(k) задана співвідношеннями T(k)=max(sin k, cos k), k=1, 2, . ,31. Знайти номери максимального та мінімального елементів послідовності.
Пошукномерівне позбавить нас необхідності пошукузначень. Тому, окрім змінних min і max, нам знадобляться дві цілі перемінні для зберігання номерів мінімального та максимального значень, позначимо їх kmin і kmax відповідно. Зверніть також увагу, що на кожному кроці циклу додатково потрібно знаходити максимальне значення sin(k) і cos(k), для занесення його в змінну t.