Программирование
разветвляющихся алгоритмов
В общем случае полная форма конструкции условного оператора имеет вид:
Var
x, y : integer; {вводимые числа}
1. Запишите на языке Паскаль следующие условия (ссылка)
2. Какое значение будет принимать переменная х, после выполнения фрагмента программы?
№1
f:=5; d:=7;
if f>=d then x:=f else x:=d;
№2
a:=8; b:=4;
if a>b then x:=a + b else x:=a-b;
3. Напишите программу, вычисляющую значение функции
-1 при х<0,
y={ 0 при х=0,
1 при х>0.
4. Напишите программу, которая производит обмен значений переменных х и у, если х больше у.
На входе х=5, у=6
На выходе х=5, у=6
На входе х=6, у=5
На выходе х=5, у=6
Определение. Разветвляющимся называется такой алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса. Каждый подобный путь называется ветвью алгоритма.
Признаком разветвляющегося алгоритма является наличие операций проверки условия. Различают два вида условий - простые и составные.
Простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют операндами), связанных одним из знаков:
< - меньше, чем...
> - больше, чем...
<= - меньше, чем... или равно
>= - больше, чем... или равно
<> - не равно
= - равно
< - меньше, чем...
> - больше, чем...
<= - меньше, чем... или равно
>= - больше, чем... или равно
<> - не равно
= - равно
В общем случае полная форма конструкции условного оператора имеет вид:
if <логическое выражение> then <оператор 1> else <оператор 2>
if
|
читается "иф"
|
переводится "если"
|
then
|
читается "зэн"
|
переводится "то"
|
else
|
читается "элз"
|
переводится "иначе"
|
Условный оператор работает по следующему алгоритму.
Сначала вычисляется значение логического выражения, расположенного за служебным словом IF. Если его результат истина, выполняется <оператор 1>, расположенный после слова THEN, а действия после ELSE пропускаются; если результат ложь, то, наоборот, действия после слова THEN пропускаются, а после ELSE выполняется <оператор 2>.
Рассмотрим пример.
Задача.
Вывести на экран большее из двух данных чисел.
Вывести на экран большее из двух данных чисел.
Var
x, y : integer; {вводимые числа}
Begin
writeln('Введите 2 числа '); {вводим два целых числа через пробел}
readln(x,y);
writeln('Введите 2 числа '); {вводим два целых числа через пробел}
readln(x,y);
if x>y
then
writeln (x) {если х больше y, то выводим х}
then
writeln (x) {если х больше y, то выводим х}
else
writeln (y) {иначе выводим y}
End.
writeln (y) {иначе выводим y}
End.
Можно также использовать и сокращенную (неполную) форму записи условного оператора.
Эта форма используется тогда, когда в случае невыполнения условия ничего делать не надо.
Эта форма используется тогда, когда в случае невыполнения условия ничего делать не надо.
Неполная форма условного оператора имеет следующий вид.
if <логическое выражение>
then
then
<оператор>
Тогда если выражение, расположенное за служебным словом IF. в результате дает истину, выполняются действия после слова THEN, в противном случае эти действия пропускаются.
Управляющая структура if может показаться негибкой, так как выполняемые действия могут быть описаны только одним оператором. Иногда может потребоваться выполнение последовательности операторов. В этом случае хотелось бы заключить всю последовательность в воображаемые скобки. В Паскале предусмотрен этот случай.
Если в качестве оператора должна выполниться серия операторов, то они заключаются в операторные скобки begin-end.
Конструкция Begin ... End называется составным оператором.
Конструкция Begin ... End называется составным оператором.
if <логическое выражение>
then
then
begin
оператор 1;
оператор 2;
...
end
else
begin
оператор 2;
...
end
else
begin
оператор 1;
оператор 2;
...
end;
оператор 2;
...
end;
Определение. Составной оператор - объединение нескольких операторов в одну группу. Группа операторов внутри составного оператора заключается в операторные скобки (begin-end).
begin
оператор 1;
оператор 2;
оператор 2;
end;
Перед служебным словом Else разделитель (точка с запятой) не ставится.
Практические задания
1. Запишите на языке Паскаль следующие условия (ссылка)
2. Какое значение будет принимать переменная х, после выполнения фрагмента программы?
№1
f:=5; d:=7;
if f>=d then x:=f else x:=d;
№2
a:=8; b:=4;
if a>b then x:=a + b else x:=a-b;
3. Напишите программу, вычисляющую значение функции
-1 при х<0,
y={ 0 при х=0,
1 при х>0.
4. Напишите программу, которая производит обмен значений переменных х и у, если х больше у.
На входе х=5, у=6
На выходе х=5, у=6
На входе х=6, у=5
На выходе х=5, у=6
Ответы занесите в таблицу продвижения
Комментариев нет:
Отправить комментарий