Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_пяву_4.doc
Скачиваний:
129
Добавлен:
15.03.2015
Размер:
1.29 Mб
Скачать
  1. Составная инструкция

Составная инструкция – это последовательность объявлений, определений и инструкций, заключенных в фигурные скобки. Эта инструкция используется для группирования других инструкций. Дело заключается в том, что внутри некоторых управляющих конструкций допускается использование единственной инструкции. Составную инструкцию следует применять в тех же случаях, когда в соответствии с алгоритмом необходимо поместить несколько инструкций, а синтаксис языка разрешает использовать только одну,

  1. Инструкция ifelse

Эта инструкция используется для программирования разветвляющихся алгоритмов. Назначение этой инструкции состоит в моделировании на языке Си двух стандартных управляющих конструкций структурного программирования, которые применяются для организации разветвляющихся алгоритмов:

● Альтернатива.

● Действие или обход.

    1. Полная и сокращенная формы инструкции if

Рассматриваемая инструкция применяется в двух формах:

● Полной

● Сокращенной

В полной форме инструкция if .. elseмоделирует стандартную управляющую структуру, которая называется альтернатива, а в сокращенной форме – стандартную управляющую структуру действие или обход.

Рассматриваемая инструкция имеет следующий формат:

if(выр) инструкция1 [else инструкция2]

Инструкция if в общем случае содержит следующие компоненты:

● Зарезервированные слова ifиelse.

● Внутренние инструкции инструкция1иинструкция2.

● Выражение выр, предназначенное для принятия решения об использовании внутренних инструкций.

В формате инструкции if, представленном выше, в квадратные скобки заключена необязательная часть инструкцииif. В зависимости от наличия или отсутствия этой части говорят либо о полной форме инструкцииif, либо о сокращенной форме. В полной форме необязательная часть присутствует, а в сокращенной – нет.

Полная форма инструкции ifпозволяет организовать разветвление на два направления. Первое направление (true – ветвь разветвления) представлено единственной инструкцией языка Сиинструкция1, а второе направление (false - ветвь) – единственной инструкциейинструкция2.

Логика работы полной инструкции ifтакова. В зависимости от значения, которое имеет выражениевыр(true или false) будет выполняться либо внутренняя инструкцияинструкция1, либо внутренняя инструкцияинструкция2. Внутренняя инструкцияинструкция1выполняется только в том случае, когда значение выражениявырравно true, в противном случае будет выполняться внутренняя инструкцияинструкция2. Нетрудно видеть, что логика работы полной инструкцииifсоответствует стандартной управляющей конструкции “альтернатива”.

В сокращенной форме инструкции ifимеется только одна внутренняя инструкция (инструкция1). Работа такой формы инструкцииifотличается от работы полной формы инструкцииifтолько для случая, когда значение выражениявырравно false. В этом случае при использовании сокращенной формы инструкцииifне выполняется ни каких действий. Можно сказать, что в этом случае имеет место обход действия, предусмотренного единственной инструкциейинструкция1.

Приведем примеры использования инструкции if.

Пример 1. Даны два числа a и b. Необходимо найти значение наибольшего из этих чисел.

/* В коде, приведенном ниже a, b max – переменные типа double. Переменные a и b содержат исходные данные, а переменная max – ожидаемый результат */if(a > b) max = a;elsemax = b; /* Вызов функции printf()расположен в линейной части и выполняется сразу после завершения работы инструкцииif*/ printf(“Максимальное значение = %0.3f”, max); /* Конец фрагмента программного кода */

В качестве примера применения сокращенной формы рассматриваемой инструкции рассмотрим усложненный вариант задачи, решение которой было выбрано в качестве иллюстрации применения полной инструкции if.

Пример 2. Даны три числа a, b и c. Необходимо найти значение наибольшего из чисел.

Решение. Предположим вначале, что имеется только два числа. Пусть это будут числа a и b. Такая задача уже решена. Ее решение приведено выше. Теперь эту задачу следует решать повторно, сравнивая уже значения переменных с и max. Оказывается, что такое сравнение можно выполнить с помощью сокращенной формы инструкции if. Ниже приведен программный код, содержащий решение рассматриваемой задачи.

/* В коде, приведенном ниже, a,b, с иmax– переменные типаdouble.Переменныеa,bиcсодержат исходные данные, а переменнаяmax– ожидаемый результат */if(a>b)max=a;elsemax=b;if(c>max)max=c;printf(“Максимальное значение = %0.3f”,max); /* Конец фрагмента программного кода */