Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Ветвление - это алгоритмическая конструкция, в которой в зависимости от условия выполняется та или иная последовательность действий. Организовать ветвление в программе можно двумя способами: в зависимости от значения условного или логического выражения или в зависимости от значения переменной порядкового типа. Ветвление в зависимости от значения условного или логического выражения осуществляется с помощью одного из условных операторов. В языке Паскаль существует три вида условных операторов: короткий условный оператор, полный условный оператор и сложный условный оператор. Ветвление в зависимости от значения переменной порядкового типа осуществляется с помощью оператора выбора. В языке Паскаль определены две разновидности оператора выбора.
Что такое ветвление, думаю, вы уже поняли - я разъяснил это в позапрошлой теме. Ветвление в алгоритме и программе осуществляется двумя способами:
Безусловный переход осуществляется операторами GOTO и GotoLabel. При выполнении этих операторов, интерпритаторы начнут выполнение программы уже с заданной строки, номер которой указан в них. В бейсике метки ставятся либо перед строками программы (разделяются от операторов пробелами или символами ":"), либо на отдельных строках опять же перед строками (хотя удобнее ставить непосредственно перед строкой). В паскале каждую метку надо описывать. Делается это в Var'е - пишется "Label ", и, через запятую, перечисляются все номера возможных меток (описать можно до 9999 меток, а использовать ни одной, так что лучше описывать только те метки ,которые наверняка будут использованы в программе). Рассмотрим примеры простейших программ, которые будут выводить на экран символы "*" - бесконечно (чтобы выйти из бесконечного цикла, просто нажмите сочетание Ctrl+Break - это, кстати, принудительное завершение программы).
Условный переход, как я уже сказал, предполагает выполнение или невыполнение какого-либо условия и выполнения определённых операторов относительно возникшей ситуацией с условием. В паскале и бейсике к тому же существуют несколько конструкция для выполнения условного перехода. Начнём с классической конструкции. Это IF ... THEN ... ELSE - говоря по-русски, ЕСЛИ ... ТО ... ИНАЧЕ.
В записи условия можно использовать следующие символы:
По идее, всё должно быть понятно уже на этой стадии объяснения из самой конструкции оператора условия. |
Для программирования ветвящихся алгоритмов применяются условный оператор и оператор выбора.
Условный оператор имеет следующий формат: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 K of
A1: <оператор 1>;
A2: <оператор 2>;
...
AN: <оператор N>;
Else <оператор N+1>
End;
Здесь K-выражение-селектор, которое может иметь только простой порядковый тип(целый, символьный, логический).
A1,..,AN - константы того же типа, что и селектор, выполняющие роль меток ветвей. Исполнение оператора начинается с вычисления выражения K, полученное значение сравнивается с константами (метками) и выполняется соответствующий оператор. Если ни одна из меток не совпала со значением K, то выполняется оператор после слова else. Метки ветвей также могут быть заданы списком или интервалом.