Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Qbasic.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
886.78 Кб
Скачать

Лабораторная работа №3. Разветвляющиеся алгоритмы

Цель работы: Научиться использовать условный оператор для программирования разветвляющихся алгоритмов.

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

Блок-схемы базовых структур разветвляющихся алгоритмов имеют вид:

1. Неполная развилка

2. Полная развилка

3. Вложенная развилка

В QBasic для организации ветвления используется условный оператор. Условный оператор имеет несколько форматов записи, соответствующих приведенным блок-схемам.

1) Для неполной развилки условный оператор имеет укороченную структуру:

IF <условие> THEN <оператор>

Если <условие> справедливо (принимает значение TRUE), то программа выполняет тот оператор, который стоит после ключевого слова THEN, и дальше руководствуется обычным порядком действий. Если <уcловие>принимает значение FALSE, то оператор, стоящий после THEN не выполняется, и программа сразу переходит к оператору, следующему за условным оператором IF.

В случае, когда при выполнении условия требуется выполнить группу операторов используется структура:

IF <условие> THEN

<оператор 1>

< оператор 2>

<оператор N>

END IF

Важно!

Конструкция IF...THEN позволяет в зависимости от справедливости условия либо выполнить оператор, либо пропустить этот оператор.

Конструкция IF...THEN...END IF позволяет в зависимости от справедливости условия либо выполнить группу операторов, либо пропустить эту группу операторов.

Рассмотрим применение укороченного условного оператора при решении практических задач.

Пример 1. Проверить, равно ли введенное с клавиатуры число некоторому значению, и в случае равенства выдать на экран сообщение о равенстве значений.

Текст программы имеет вид:

REM Сравнение числа с каким-либо значением

INPUT "Введите а"; а

IF a = 7 THEN PRINT "Числа равны"

END

После запуска программы проверяется, равно ли введенное с клавиатуры число 7 или нет. В случае равенства на экран выводится сообщение “Числа равны”.

2) Для полной развилки (т.е. организации вычислений по двум направлениям) используется условный оператор IF...THEN...ELSE...END IF, который имеет структуру:

IF <условие> THEN

<группа операторов 1>

ELSE

<группа операторов 2>

END IF

Если <условие> принимает значение TRUE, то выполняется <группа операторов 1>, а <группа операторов 2> будет пропущена. Если <условие> принимает значение FALSE, то выполняется <группа операторов 2>, а <группа операторов 1> будет пропущена.

Важно!

Группа операторов может состоять только из ОДНОГО оператора.

П ример 2. Составить программу для нахождения значения функции у = |х – 1| при произвольном значении х. Как известно значение функции у зависит от знака величины, записанной под знаком модуля, и вычисляется по формуле:

Текст программы имеет вид:

REM Нахождение модуля выражения

CLS

INPUT “Введите значение переменной х”; x

IF x - 1< 0 THEN

y = - x + 1

ELSE

y = x – 1

END IF

PRINT “y=”; y

3) Для вложенной развилки, когда требуется организовать вычисления по трем и более ветвям используется составной условный оператор, имеющий структуру:

IF <условие 1> THEN

<группа операторов 1>

ELSEIF <условие 2> THEN

<группа операторов 2>

ELSE

<группа операторов 3>

END IF

Если <условие 1> принимает значение TRUE, то выполняется <группа операторов 1>, а <группа операторов 2> и <группа операторов 3> будет пропущена. Если <условие 1> принимает значение FALSE, то <группа операторов 1> будет пропущена и программа перейдет к проверке <условия 2>. При этом если <условие 2> принимает значение TRUE, то выполняется <группа операторов 2>, а в противном случае <группа операторов 3>.

Пример 3. Составить программу для вычисления значения составной функции при произвольном значении х:

При решении таких задач нужно учесть, что условия на значения х делят числовую ось на три интервала (в нашем случае точки деления х = 0 и х = 1), поэтому при реализации алгоритма используется вложенный условный оператор, блок-схема которого приведена на рисунке:

R EM Cоставная функция

CLS

INPUT “Введите значение х”; x

IF x < 0 THEN

y = EXP(– x + 1)

ELSEIF x > 1 THEN

y = 1 / x + SIN(x)

ELSE

y = TAN(x)

END IF

PRINT “y=”; y