Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции программирование.doc
Скачиваний:
36
Добавлен:
05.11.2018
Размер:
4.73 Mб
Скачать

Программирование простых ветвлений

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

Каждый из возможных вариантов решения называется ветвью.

В зависимости от количества проверяемых условий разветвляющиеся процессы делятся на простые и сложные (рис. 4.1).

Простыми называются разветвляющиеся процессы с проверкой одного условия.

Сложными называются разветвляющиеся процессы с проверкой двух (нескольких) условий.

Простые ветвления, в свою очередь, по сложности проверяемого условия можно разделить на элементарные и составные (рис. 4.2).

4.1.5. Программирование задачи

Программирование указанных в алгоритме переходов требует использования специальных управляющих операторов Си. Таковыми являются операторы передачи управления.

По принципу действия операторы передачи управления делятся на услоные

и безусловные.

Рассмотрим основные операторы передачи управления.

Структура оператора:

goto m;

где goto - ключевое слово (перейдти к);

m - метка оператора, которому передаётся управление;

; - признак простого оператора.

Метка - буквенно-цифровое обозначение, позволяющее выделить (пометить) требуемый оператор в ряду других.

Правила составления и использования

  1. Под меткой понимается идентификатор аналогичный имени переменной

  2. Идентификатор метки составляется пользователем/

  3. Указанная в операторе goto метка записывается перед помечаемым оператором, отделяясь от него двоеточием.

  4. Оператор, помеченный меткой m, может располагаться в соответствии с требованием алгоритма решения выше или ниже самого оператора goto, как указано в следующих фрагментах программы:

. . . . . .

goto f3; met2: scanf(. . .);

. . . . . .

f3: v=.36; goto met2;

В первом фрагмента управление передаётся от оператора goto f3; вниз – оператору v=.36;, перед которым проставлена его метка. При этом расположенная |между ними часть программы (последовательность операторов) выполнена не будет. Во втором - управление передаётся вверх на повторный ввод переменных.

  1. Оператор, записанный под goto, должен быть помечен меткой другого оператора управления, иначе участок программы, записанный ниже goto, не

будет выполняться:

. . .

goto А;

В: х1=23.;

А: х2=х- 15.;

6. Метка m может проставляться только перед простым оператором. При необходимости передать управление на начало (конец) составного оператора (фигурную скобку) используется специальный пустой оператор (;). Он записывается над скобкой и помечается нужной меткой. Например:

goto М1;

. . .

М1:; {… }

7. Запрещено делать переходы через выражения, содержащие инициализацию объектов:

goto m;

float f=0.0;

m: f=f+1;

Внимание! Использование оператора безусловной передачи управления допускается, но не поощряется правилами структурного про­граммирования, т.к. позволяет создавать нестандартные структуры с немотивированными передачами управления.