Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЕ в среде DELPHIЗАОЧ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.18 Mб
Скачать

Реализация разветвляющихся алгоритмов

Разветвляющимися называются алгоритмы, в которых по­следовательность выполнения некоторых операторов определяется выполнением (или невыполнением) определенных условий.

Для описания даже простых вычислительных процессов оказывается недостаточно лишь одних линейных алгоритмов. Например, алгоритм вы­числения функции, заданной формулой.

Циклические алгоритмы.

Алгоритмы, описывающие процессы, в которых одни и те же действия выполняются многократно при различных значениях переменных, называются циклическими.

уже не является линейным, т. к. в нем должна быть заложена операция выбора одной из формул в зависимости от заданного значения аргумента 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):

Решение. Смотри блок-схему алгоритма (задача 16).

В зависимости от знака R, т.е. от истинности логического выражения R<0, решение может идти по одному из двух возможных направлений (разветвляться). Если R<0 – ложь, то после оператора 3 выполняется оператор 6, к которому направлена стрелка с надписью «нет», в этом случае при решении задачи будут выполнены операторы 1, 2, 3, 6, 5, 7. Если R<0 – истина, то после оператора 3 будет выполнен оператор 4, к которому направлена стрелка с надписью «да», а затем операторы 5 и 7.