Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 2-АП.doc
Скачиваний:
2
Добавлен:
13.07.2019
Размер:
802.3 Кб
Скачать

Лабораторная работа №2 Подготовка и решение на пк задач с разветвлением

Цель лабораторной работы – приобретение практических навыков по подготовке, отладке и выполнению разветвляющихся программ.

Перед выполненим лабораторной работы студент должен знать:

- методику разработки программы с общей линейной частью и несколькими ветвями;

- алгоритмы выполнения и синтаксис опраторов if, if/else, switch/case и условной операции ?:.

После выполнения лабораторной работы студент должен уметь разрабатывать и отлаживать программы с разветвлениями.

3.1. Краткие теоретические сведения

Во многих случаях дальнейшее выполнение программы от некоторой точки должно идти по разным путям в зависимости от определенных условий. Например, при щелчке мышью по одной кнопке программа должна приступить к выполнению ветви 1, а при щелчке по другой кнопке - к выполнению ветви 2. Такие условные переходы совсем не обязательно связаны с командами пользователя; программа может сама выбрать дальнейший путь, например по результатам некоторой математической операции: при нулевом результате выполнить один фрагмент, при отрицательном - другой, при положительном - третий. В C++ существует три базовых опратора выбора: if, if/else, switch/case и условной операции ?:.

3.2. Оператор if

Оператор if предназначена для выполнения команды или блока команд в зависимости от того, истинно заданное условие или нет. Формат оператора if:

If (условие) выражение;

Если в результате проверки условия возвращается значение true, выполняется выражение, после чего управление передается следующей строке программы. Если же результатом проверки условия является значение false, выражение пропускается.

Оператор if/else позволяет выборочно выполнять одно из двух действий в зависимости от условия. Формат данной инструкции имеет вид:

If (условие) выражение1; else выражение2;

Если в результате проверки условия возвращается значение true, выполняется выражение1, в противном случае — выражение2.

Если операторная часть ветви If или else содержит не одно выражение, а несколько, необходимо заключить их в фигурные скобки. После закрывающей фигурной скобки точка с запятой не ставится.

Оператор if первой и второй формы реализуют алгоритмы представленные на рис. 19.

Рис.19. Алгоритмы работы операторов if

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

Наряду с операциями отношения в инструкции if широко используются логические операции. Объединяя их с операциями отношения, можно создавать комбинированные конструкции проверки данных.

3.3. Оператор switch/case

Оператор switch/case позволяет в зависимости от значения некоторого выражения выбрать один из многих вариантов продолжения программы. Оператор имеет следующий формат:

switch(выражение) {

case значение1: оператор1;break;

case значение2: оператор2;break;

...

case значениеN: операторN;break;

default: операторN+1;

}

Оператор switch/case реализует алгоритм представленный на рис. 20.

Рис.20. Алгоритмы работы оператора switch/case

Оператор switch/case может быть использован в варианте без опрератораN+1.

В качестве выражения при операторе switch обычно используется переменная типа int или char, хотя можно использовать и более сложные выражения, в которые входят, например, арифметические или логические операции над несколькими переменными и константами.

В качестве значений при операторе case обычно используются просто константы (в числовой форме или в символьной, если они были заранее определены с помощью оператора препроцессора #define), однако могут использоваться и выражения над константами.

Выполнение оператора switch начинается с вычисления выражения в скобках, которое должно давать целочисленный результат. Этот результат последовательно сравнивается с значениями при операторах case, и, если будет обнаружено равенство результатов, то выполняется оператор соответствующего case. Если совпадения результатов не обнаружено, выполняется оператор при операторе default , если оператор default отсутствует, то начинают выполняться операторы, следующие за всей конструкцией switch/case.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]