Поиск минимального и максимального элементов массива
Процесс поиска минимального или максимального элемента массива обычно осуществляется при помощи операторов цикла. Перед запуском цикла предполагается, что один из элементов массива является минимальным или максимальным (обычно это первый элемент массива). Значение выбранного элемента массива принимается за эталонное. Цикл выполняется для всех элементов массива за исключением выбранного. Если выбран первый элемент массива, то цикл можно организовывать со второго элемента массива. В цикле осуществляется сравнение значений элементов массива с выбранным. Если при этом сравнении один из элементов массива оказывается больше (поиск максимального значения) или меньше (поиск минимального значения) текущего элемента, то значение текущего элемента массива принимается за эталонное. Цикл продолжает свое выполнение до нахождения нового эталонного значения или до его остановки (после перебора всех значений массива).
Рассмотрим пример. Необходимо найти минимальное значение элементов массива из 5 целых чисел. Алгоритм действий следующий: объявим массив целых чисел "а" из 5 элементов и задаем (или вводим с клавиатуры или файла) значения элементов массива, сохраняем количество элементов в массиве в переменной "n". Принимаем, что первый элемент массива является минимальным. Организуем цикл перебора элементов массива, начиная со второго элемента массива. В цикле осуществляется проверка - является ли значение, сохраненное в min, меньше значения текущего элемента. Если значение текущего элемента оказывается меньше, чем значение, находящееся в min, то заносим его в переменную min. После выполнения описанных действий в переменной min будет находиться минимальное значение массива.
int a[5]={3,5,4,1,2}; // создан массив целых чисел из 5 элементов
n=5;// определение количества обрабатываемых элементов
min=a[0];// принимаем, что первый элемент массива
// является минимальным
for(i=1;i<n;i++)// цикл перебора элементов массива
if(min>a[i]) // проверка, является ли значение, сохраненное в min,
// меньше значения текущего элемента
min=a[i];// если значение текущего элемента
// оказывается меньше min
Рассмотрим более подробно пример выполнения программы при поиске минимального числа среди последовательности чисел 3,5,4,1,2. При старте цикла в min=3, т.к. a[0]=3. Цикл выполнится 4 раза, т.е. переменная i будет принимать значения 1,2,3,4 (это задано в операторе цикла for). При i=1 в цикле сравнивается значения min=3 и a[1]=5. Значение min меньше значения a[1], т.е. условие min>a[1] не выполняется. При i=2, сравниваются значения min=3 и a[2]=4. Значение min меньше значения a[2], т.е. условие min>a[2] не выполняется.
При i=3 сравниваются значения min=3 и a[3]=1. Значение min больше значения a[3], т.е. найдено значение, меньше min. Значение min=a[3]. Это значение используется как эталонное для дальнейшего поиска минимального (до тех пор будет найдено новое наименьшее значение). При i=4 сравниваются значения min=1 и a[4]=4. Если значение в min меньше, то условие min>a[1] не выполняется.
При необходимости нахождения максимального элемента массива в операторе сравнения меняется знак с "больше" на "меньше".
Функции
Процесс разработки программного обеспечения предполагает расчленение сложной задачи на набор более простых подзадач. В Языке Си поддерживаются функции как логические единицы (поименованные блоки текста программы), служащие для реализации отдельных подзадач.
Функции в Си должны иметь уникальные имена. Существенное значение имеет тип возвращаемого значения функцией. Функция может возвращать только одно значение. Функция может иметь параметры, необходимые для ее выполнения. Список параметров объявляется в круглых скобках после имени функции. Количество параметров может быть произвольным.
Простейшим примером использования функций является функция main (головная), которая должна присутствовать в любой программе, разрабатываемой на Си. С нее начинается выполнение программы. Чаще всего функция main не имеет принимаемых параметров и не возвращает значения. В этом случае вместо отсутствующих типов указывается ключевое слово void (если тип возвращаемого параметра не указан, то по умолчанию тип возвращаемого значения такой функции является int). Пример: void main(void).
Если функция возвращает значение, то это значение передается вызвавшему фрагменту при помощи записываемого в операторе «return» выражения. Return вызывает завершение работы данной функции, передачу значения в функцию, вызвавшую данную, и возврат управления на оператор, следующий после вызова функции.
При вызове функции указываются фактические параметры вызова, их количество должно соответствовать числу и типу формальных параметров в заголовке вызываемой функции. Если функция не возвращает значения (т.е. возвращает void), то оператор return может использоваться в варианте «return;» (без следующего за ним выражения). Пример:
#include <dos.h>
#include <stdio.h>
#include <conio.h>
Float pi(void)
{ // функция только возвращает
//значение константы ПИ
return 3.14159265359; // возвращаемое значение
}
Дата добавления: 2016-04-14; просмотров: 994;