Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
12.06.2015
Размер:
18.13 Кб
Скачать

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

Что такое ветвление, думаю, вы уже поняли - я разъяснил это в позапрошлой теме. Ветвление в алгоритме и программе осуществляется двумя способами:

  • на основе безусловного перехода;

  • на основе условного перехода.

Безусловный переход осуществляется операторами GOTO и GotoLabel. При выполнении этих операторов, интерпритаторы начнут выполнение программы уже с заданной строки, номер которой указан в них. В бейсике метки ставятся либо перед строками программы (разделяются от операторов пробелами или символами ":"), либо на отдельных строках опять же перед строками (хотя удобнее ставить непосредственно перед строкой). В паскале каждую метку надо описывать. Делается это в Var'е - пишется "Label ", и, через запятую, перечисляются все номера возможных меток (описать можно до 9999 меток, а использовать ни одной, так что лучше описывать только те метки ,которые наверняка будут использованы в программе). Рассмотрим примеры простейших программ, которые будут выводить на экран символы "*" - бесконечно (чтобы выйти из бесконечного цикла, просто нажмите сочетание Ctrl+Break - это, кстати, принудительное завершение программы).

 Условный переход, как я уже сказал, предполагает выполнение или невыполнение какого-либо условия и выполнения определённых операторов относительно возникшей ситуацией с условием. В паскале и бейсике к тому же существуют несколько конструкция для выполнения условного перехода. Начнём с классической конструкции. Это IF ... THEN ... ELSE - говоря по-русски, ЕСЛИ ... ТО ... ИНАЧЕ.

!

В паскале блок операторов, который идёт после условия, естественно сдвигается на ступень вправо и выделяется логическими скобками Begin и End; (End именно с точной с запятой). Это делается в блоке операторов при выполнении условия и в блоке его невыполнения (Else - Иначе). Если же там или там оператор только один (под фразой "один оператор" подразумевается и одна строка, и оператор условия, содержащий много строк, и циклы и т.п.), то ставть Begin и End; не надо. В бейсике всё так же, только начальной логической скобки ставить не надо, а конечную заменяет слово ENDIF.

          В записи условия можно использовать следующие символы:

  • = (равно);

  • > (больше);

  • < (меньше);

  • <> или >< (не равно);

  • <= или =< (меньше или равно);

  • >= или => (больше или равно);

          По идее, всё должно быть понятно уже на этой стадии объяснения из самой конструкции оператора условия.

Для программирования ветвящихся алгоритмов применяются условный оператор и оператор выбора.

Условный оператор имеет следующий формат:If <логическое выражение> Then <оператор 1>

Else <оператор 2>;

Операторы 1 и 2 могут быть простыми или составными. Если логическое выражение, выступающее в качестве условия, ветвления, принимает значения False, то выполняется оператор 2, если True - оператор 1.

Неполная форма условного оператора:

If<логическое выражение> Then <оператор>;

Пример. Из трех данных вещественных чисел X,Y,Z выбрать наибольшее.

Решение. Используем алгоритм с вложенными полными ветвлениями.

Program max 3;

Uses crt;

Var x,y,z, max : real;

Begin

Write('введите x, y, z ');

Readln (x, y ,z);

If x>=y

Then If x>=z Then max:=x Else max:=z

Else If y>=z Then max:=y Else max:=z;

Writeln ('максимальное значение=' , max)

End.

Оператор выбора позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости от значения заданного выражения(селектора выбора).

Case of

    A1: <оператор 1>;

    A2: <оператор 2>;

     ...

   AN: <оператор N>;

   Else <оператор N+1>

End;

   Здесь K-выражение-селектор, которое может иметь только простой порядковый тип(целый, символьный, логический).

A1,..,AN - константы того же типа, что и селектор, выполняющие роль меток ветвей. Исполнение оператора начинается с вычисления выражения K, полученное значение сравнивается с константами (метками) и выполняется соответствующий оператор. Если ни одна из меток не совпала со значением K, то выполняется оператор после слова else. Метки ветвей также могут быть заданы списком или интервалом.

Соседние файлы в папке инфа полная