Программирование алгоритмов ветвления
Turbo Pascal 7.0
Екатеринбургский автомобильно-дорожный колледж
Преподаватель: Неверова Ирина Юрьевна
План урока:
- Алгоритм ветвления
- Логические выражения и операции отношения
- Логические операции и порядок выполнения
- Условный оператор IF
- Оператор выбора CASE
Литература :
И. Г. Семакин. Основы программирования, с. 57 – 64.
Алгоритм ветвления
Ветвление – это такая форма организации действий, при которой в зависимости от некоторого условия выполняются те или иные действия.
Формы ветвления :
- Условие полной и неполной формы
- Выбор условия полной и неполной формы
Условие – это логические выражение, которое может принимать только два значения: true и false .
Логические выражения
- Выражением отношения называется словосочетание языка, в котором два выражения связаны знаком операции отношения.
- Выражение отношения определяет истинность или ложность результата.
- Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно.
- Сравнимые логические значения обозначаются служебными словами False (ложь) и True (истина), а идентификатор данных логического типа – Boolean .
- В языке Pascal логические операции отношения важны при написании программ разветвляющихся алгоритмов.
Не равно A=B Результат True, если А равно В AB Больше = True, если А не равно В AB Меньше Больше или равно True, если А больше B ATrue, если А меньше В A=B Меньше или равно In True, если А больше или равно В AПринадлежность True, если А меньше или равно В A in M True, если А находится в списке M " width="640"
Операции отношения
Операция
Название
=
Выражение
Равно
Не равно
A=B
Результат
True, если А равно В
AB
Больше
=
True, если А не равно В
AB
Меньше
Больше или равно
True, если А больше B
A
True, если А меньше В
A=B
Меньше или равно
In
True, если А больше или равно В
A
Принадлежность
True, если А меньше или равно В
A in M
True, если А находится в списке M
Логические операции
Логическая операция
Название операции
Not
And
Запись
Не
Or
И
Not F1
Результат операции
Значение, противоположное F1
F1 and F2
Или
Xor
Сложное условие выполняется, если выполняются условия F1 и F2
F1 or F2
Исключающее «Или»
Сложное условие выполняется, если выполняется хотя бы одно из условий F1 или F2
F1 xor F2
Сложное условие выполняется, если F1 неравно F2
= 3) and (xПравило 2: Перед Else (иначе) точка с запятой не ставится Правило 3: Если вместо одного оператора необходимо выполнить несколько, используются операторные скобки Begin end; " width="640"
Сложное условие
- Условия бывают простые и сложные .
- Сложное условие – это условие, построенное из нескольких простых условий с помощью логических операций.
- Правило1: При записи сложного условия простые условия заключаются в скобки!
Пример: записать условие 3=
(x= 3) and (x
- Правило 2: Перед Else (иначе) точка с запятой не ставится
- Правило 3: Если вместо одного оператора необходимо выполнить несколько, используются операторные скобки Begin end;
Порядок выполнения операций
Для определения старшинства операций имеются четыре основных правила :
- Операнд, находящийся между двумя операциями с разными приоритетами, связывается с операцией, имеющей более высокий приоритет.
- Операция, находящаяся между двумя операциями с равными приоритетами, связывается с той операцией, которая находится слева.
- Выражение, заключенное в скобки, перед выполнением вычисляется как отдельный операнд.
- Операции с равным приоритетом производятся слева на право с возможным регулированием порядка выполнения скобками.
Порядок выполнения операций
Операция
Приоритет
@, not
Вид операции
Первый
*, /, div, mod, and
Второй
Унарная операция
+, -, or, xor
=, , , =, in
Операция типа умножения
Третий
Четвертый
Операция типа сложения
Операция отношений
C := D or B and not (K and D)
4 3 2 1
Условный оператор IF
- Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.
- Полное ветвление
IF(если) THEN(то) ELSE(иначе) ;
IF(если) THEN(то) ;
Задача
- Составить программу, которая вычисляет частное двух целых чисел. В связи с тем, что на ноль делить нельзя, организуем контроль ввода данных. Для контроля вводимых значений делителя используем оператор условного перехода If…then…else.
Program Control;
Uses CRT;
Var A, B: Integer; R: Real;
Begin
ClrScr;
Writeln(‘Введите значение делимого A’); Readln(A);
Writeln(‘Введите значение делителя B’); Readln(B);
If B=0 {контроль ввода} then Writeln(‘на ноль делить нельзя!’) {условие выполнено}
Else {условие не выполнено}
Begin {начало составного оператора}
R := A/B;
Writeln(‘частное чисел =’, R:5:2);
End; {конец составного оператора}
Readln;
End.
Вложенный условный оператор
- Вложенный условный оператор – если используется проверка нескольких условий и «условный оператор» if используется несколько раз, переход между условиями связывается оператором «иначе» else .
- Пример:
Создайте программу, определяющую, какой сейчас сезон по введённой температуре воздуха:
- от 0 до -30 0 С – зима;
- от +20 до +40 0 С – лето;
- иначе (от +1 до +19 0 С) - весна или осень
4 then Y:=sqrt(x) else y:=sqr(x); Writeln(‘Y=‘,y:6:2); Readln; End. Вычислить функцию Y:=sqrt(x) Y:=sqr(x) " width="640"
Задача на вложенный условный оператор
Program primer2;
Uses Crt;
Var x, y: Real;
Begin
Clrscr;
Writeln(‘введите х’);
Readln(x);
If x then Y:=x+3
else
If x4 then Y:=sqrt(x) else y:=sqr(x);
Writeln(‘Y=‘,y:6:2);
Readln;
End.
Вычислить функцию
Y:=sqrt(x)
Y:=sqr(x)
3) then Begin Запись сложного условия : If (A3) and (Aa:=c; k:=k+1; end; then else writeln (‘точка на отрезке (3,7)’); Begin c:=a-c; m:=m+1; end; If (ac) or (athen else Begin X:=X+1; Y:=abs(A); end; else A:=A+1; end; " width="640"
Составной условный оператор
Запись составного оператора :
Если по условию задачи необходимо использовать несколько операторов или выражений, при выполнении или невыполнении условия применяют составной оператор.
If (aand (a3) then
Begin
Запись сложного условия :
If (A3) and (A
a:=c; k:=k+1; end;
then
else
writeln (‘точка на отрезке (3,7)’);
Begin
c:=a-c; m:=m+1; end;
If (ac) or (athen
else
Begin
X:=X+1; Y:=abs(A); end;
else A:=A+1; end;
0) and (x then Begin Y:=sqr(cos(x)); Writeln(y:6:2); End; Else Begin Y:=1-sqr(sin(x)); Writeln(y:6:2); End; Readln; End. Задача: Написать программу расчета функции " width="640"
Составной условный оператор IF
Program primer1;
Uses Crt;
Var x, y: Real;
Begin
Clrscr;
Writeln(‘введите х’); Readln(x);
If (x0) and (x then
Begin
Y:=sqr(cos(x)); Writeln(y:6:2);
End;
Else
Begin
Y:=1-sqr(sin(x)); Writeln(y:6:2);
End;
Readln;
End.
Задача: Написать программу расчета функции
Оператор выбора условия CASE
- Условный оператор IF при выполнении программы позволяет выбрать одно из двух возможных действий. Если же необходимо выполнить много взаимоисключающих проверок, то удобнее воспользоваться оператором выбора нужного варианта CASE.
- Выполнение оператора варианта начинается с вычисления селектора (выражения скалярного типа). Затем для исполнения выбирается оператор, одна из меток которого совпадает с полученным значением, затем управление передается оператору, следующему за оператором варианта. Если же значение селектора не совпало ни с одной из меток, то выполняется оператор, стоящий после служебного слова Else .
Структура оператора выбора
Case of
: ;
: ;
…
: ;
Else ;
End;
Пример записи
Case S of
C1 : ;
C2 : ;
…
CN : ;
end;
Case S of
C1 : ;
C2 : ;
…
CN : ;
Else ;
end;
Типичные формы записи оператора Case
Селектор
Форма записи
Интервального типа
Целочисленного типа
Case k of
Перечисляемого пользовательского типа
Case k of
1..10 : writeln(‘число’, k:4, ‘в диапазоне 1-10’);
11..20 : writeln(‘число’, k:4, ‘в диапазоне 11-20’);
1 : Z := k+10;
Case N of
21..30 : writeln(‘число’, k:4, ‘в диапазоне 21-30’);
2 : Z := k+100;
‘ W’ : writeln(‘winter’);
else writeln(‘число’, k:4, ‘вне пределов контроля’)
3 : Z := k+1000;
‘ S’ : writeln(‘string’);
end;
end;
‘ M’ : writeln(‘summer’);
‘ A’ : writeln(‘autumn’);
End;
Задача 1: Программа, которая по введенному номеру выводит на экран его название
Program mes;
Use CRT;
Var M : byte;
Begin
ClrScr ;
Writeln (‘введите оценку-число:’);
Readln (M);
Case M of {вычисление значения селектора и выбор}
2 : writeln(‘неудовлетворительно’);
3 : writeln(‘удовлетворительно’);
4 : writeln(‘хорошо’);
Else writeln (‘отлично’);
end ;
Readln;
End.
Задача 2: Программа получения значения R, в зависимости от выбора варианта S и ввода двух любых целых чисел A и B.
Program primer;
Use CRT;
Var S : String; A, B: Integer; R: Real;
Begin
ClrScr ;
Writeln (‘введите A=’); Readln (A);
Writeln (‘введите B=’); Readln (B);
Writeln (‘введите S=’); Readln (S);
Writeln;
Case S of {вычисление значения селектора и выбор}
‘ + ’ : R:=A+B;
‘ − ’ : R:=A-B;
‘ * ’ : R:=A*B;
‘ / ’ : R:=A/B;
Else Writeln(‘неверный знак операции’);
end ;
Writeln(‘R=’, R:4:1);
Readln;
End.
Домашнее задание
Выполнить задания в рабочей тетради
Тема 4.7
Успехов в освоении данной темы!