Язык программирования C

Скачать в pdf «Язык программирования C»


Следующая конструкция встречается так часто, что заслуживает отдельного рассмотрения:


if (выражение} оператор


else if (выражение) оператор


else if (выражение) оператор


else if (выражение) оператор


else


оператор


Эта последовательность операторов if представляет собой самый общий способ записи принятия многовариантного решения. Перечисленные выражения вычисляются по порядку; если какое-нибудь из них оказывается истинным, то выполняется ассоциированный с ним оператор, и цепочка проверки условий прерывается. Как всегда, оператор может представлять собой как отдельный оператор, так и блок в фигурных скобках.


Последний фрагмент данной конструкции (else без условия) обрабатывает вариант “ничто из перечисленного” — выполняет операции “по умолчанию” в случае, если ни одно из условий не удовлетворяется: else


оператор


Иногда этот вариант не нужен — для него не предусмотрены никакие операции. Тогда и завершающий фрагмент можно опустить или же воспользоваться им для обработки ошибок — перехвата “невозможной” ситуации.


Проиллюстрируем выбор решения из трех возможных на примере функции двоичного поиска (дихотомии), которая определяет, встречается ли некоторое число х в упорядоченном массиве v. Элементы v должны располагаться в порядке возрастания. Функция возвращает позицию в массиве (число от 0 до п-1), если х в нем встречается, или -1, если не встречается.


Вначале процедура двоичного поиска сравнивает значение х со средним элементом массива v. Если х меньше, чем средний элемент, дальнейший поиск выполняется в нижней части таблицы, в противном случае — в верхней. В любом из случаев следующий шаг состоит в том, чтобы сравнить х со средним элементом выбранной половины. Процесс деления диапазона пополам продолжается, пока не будет найдено требуемое значение или пока диапазон не станет пустым.

Скачать в pdf «Язык программирования C»