
- •Литература:
- •1. Введение
- •2. Введение
- •Структура процедура
- •Имена в Delphi
- •Организация данных в программе на Delphi
- •Типы, определяемые пользователем или пользовательские типы.
- •К простым типам относятся: - порядковые типы -вещественные типы.
- •Логический тип – Boolean, ByteBool, Bool, WordBool, LongBool.
- •Существуют логические выражения
- •Реализация линейных алгоритмов
- •Реализация разветвляющихся алгоритмов
- •Команды ветвления
- •Программа:
- •Оператор 1 – любой оператор Турбо Паскаля, включая составной оператор.
Реализация разветвляющихся алгоритмов
Разветвляющимися называются алгоритмы, в которых последовательность выполнения некоторых операторов определяется выполнением (или невыполнением) определенных условий.
Для описания даже простых вычислительных процессов оказывается недостаточно лишь одних линейных алгоритмов. Например, алгоритм вычисления функции, заданной формулой.
Циклические алгоритмы.
Алгоритмы, описывающие процессы, в которых одни и те же действия выполняются многократно при различных значениях переменных, называются циклическими.
уже не является линейным, т. к. в нем должна быть заложена операция выбора одной из формул в зависимости от заданного значения аргумента X. Такого рода алгоритмы называются разветвляющимися, или ветвящимися.
Для реализации разветвлений в Delphi используются условные операторы и оператор выбора. Кроме них может оказаться необходимым оператор перехода.
Команды ветвления
Условный оператор
Одна из форм условного оператора имеет вид:
IF <условие> THEN <оператор1> ELSE <оператор 2>
Здесь IF (ecлu), THEN (то, тогда), ELSE (иначе) —ключевые слова языка; <условие> — логическое выражение; <оператор1 и оператор2> — один исполняемый оператор.
Смысл условного оператора: если условие при текущих значениях входящих в него переменных истинно, то выполняется <оператор1> (<оператор2> не выполняется), если же условие ложно, то выполняется <оператор2> (<оператор1> не выполняется). После выполнения <оператора1> или <оператора2> управление передается очередной строке программы, если в <операторах1 и 2> не предусмотрено программное изменение последовательности выполнения строк.
Примеры записи условного оператора:
для нахождения большего из двух значений:
IF A > В THEN X:=A ELSE Х:=В;
- для нахождения большего из двух значений с фиксацией его имени:
IF A > В THEN
BEGIN
X:=A;
F:=’A’
END
ELSE
BEGIN
X:=B;
F:=’B’
END;
Здесь F переменная символьного типа.
В конструкции условного оператора ветвь «иначе» не обязательна, она может отсутствовать. В этом случае имеет место сокращенная форма условного оператора:
IF <условие> THEN <оператор>;
Смысл оператора: если <условие> истинно, то выполняется указанный оператор. Если условие ложно, то оператор не выполняется, управление просто переходит к очередной строке программы.
Очевидно, что один условный оператор в полной форме можно заменить двумя в сокращенной форме; например для нахождения большего из двух значений с фиксацией его имени
IF A > В THEN
BEGIN
X:=A;
F:=’A’
END;
IF A <= В THEN
BEGIN
X:=B;
F:=’B’
END;
В условном операторе после ключевых слов THEN и ELSE можно использовать другой условный оператор. Получающиеся конструкции называются вложенными условными операторами.
Примеры вложенных условных операторов:
IF Х > 0 THEN
IF Х <= 1 THEN Y:=1 +X
ELSE Y:=X*X;
Здесь возможна неоднозначность исполнения программы с ветвью, следующей за ELSE. Чтобы ее исключить принимается, что ELSE «закрывает» последний «незакрытый» THEN.
№ п/п |
Название команды |
Представление |
||||
Графическое |
Delphi |
|
||||
Серии S1,…,SN состоят из одной команды |
Серии S1,…,SN содержат более одной команды |
|||||
Команды ветвления |
||||||
1 |
Команда ветвления в полной форме |
|
If P then S1 else S2; |
If P then begin S1 end else begin S2 end; |
|
|
2 |
Команда ветвления в сокращенной (неполной) форме |
|
If P then S1; |
If P then begin S1 end; |
|
Примеры
Задача 1. Большее из двух чисел. Составьте блок-схему алгоритма нахождения большего из двух чисел a и b; переменой x присвойте значение max(a,b). Б
|
Решение. Смотри блок-схему алгоритма (задача 16). В зависимости от знака R, т.е. от истинности логического выражения R<0, решение может идти по одному из двух возможных направлений (разветвляться). Если R<0 – ложь, то после оператора 3 выполняется оператор 6, к которому направлена стрелка с надписью «нет», в этом случае при решении задачи будут выполнены операторы 1, 2, 3, 6, 5, 7. Если R<0 – истина, то после оператора 3 будет выполнен оператор 4, к которому направлена стрелка с надписью «да», а затем операторы 5 и 7. |