Цель: изучить на основе готовой программы операторы разветвляющейся структуры языка QBasic и научиться составлять простейшие программы с использованием операторов условного и безусловного перехода.
Теоретические сведения к лабораторной работе
1. Определение разветвляющейся программы
Разветвляющейся называется программа, которая является записью разветвляющегося алгоритма, то есть выбирается один из нескольких возможных вариантов вычислительного процесса.
В разветвляющихся программах часто требуется обеспечить иной порядок выполнения операторов в отличие от линейных программ. Для этой цели служат операторы передачи управления.
Рассмотрим 2 из них.
2. Виды операторов передачи управления
1. Оператор безусловного перехода– служит для перехода из одной строки программы к другой.
Общий вид оператора:
GOTO n
Где GOTO – имя оператора («перейти к…»)
n – метка
В качестве метки используются натуральные числа с двоеточием после них. Метка указывается только в начале строки. Если в строке программы несколько операторов, то нельзя ставить метку перед вторым.
Например: программа, рисующая на экране 3 символа звездочки по диагонали.
CLS
1: PRINT “*”
PRINT “ *”
PRINT “ *”
GOTO 1
Ctrl+Break – прерывание выполнения программы
2. Оператор условного перехода– обеспечивает в программе проверку условий и организацию ветвления.
При рассмотрении условного оператора потребуются понятия «отношение» и «логическое выражение».
Условные выражения – символьная запись, составленная из переменных, чисел, функций, строк символов.
Примеры:
1) a>f;
2) x<=a^2-5*a;
3) «информатика»<> «математика».
Знаками отношения в условных выражениях служат: =, >, <, < >, >=, <=.
Логические выражения – условные выражения, которые соединяются между собой знаками логических операций: AND(«и», конъюнкция) OR(«или», дизъюнкция) NOT(отрицание).
Примеры:
1) x>-4 OR x<7;
2) x<=a^2-5*a AND y>=4;
Общий вид оператора:
Полная форма записи
IF <условие> THEN P1 ELSE P2
Сокращенная форма записи
IF <условие> THEN P1
Где IF – имя оператора («если…»)
THEN– имя оператора («то…»)
ELSE– имя оператора («иначе…»)
<условие> – логическое выражение
P1, P2– группа операторов
Например:
1. IF x<y THEN a=x ELSE a=y
2. IF (2<=x) AND (x<=10) THEN y=SIN(x)
3. Тестирование готовой программы
Задача №1:
составить программу для вычисления значения функции .
Для того чтобы
вычислить значение функции, сначала необходимо проверить условие . Согласно определению условного
выражения данное условие является простым.
Для составления программы будем использовать полную форму записи оператора условного перехода (IF <условие> THEN P1 ELSE P2).
После оператора IF записывают проверяемое условие (для данной задачи–это условие x-4<>0), после оператора THEN записывают выполнения действий, удовлетворяющие проверяемому условию (для данной задачи–это y=1/(x-4)– оператор присваивания). А после оператора ELSE запишем вывод сообщения о неопределенности функции.
Программа будет выглядеть следующим образом:
CLS |
Очистка экрана от предыдущих значений |
REM Вычисление значения функции |
Название программы |
INPUT «Введем произвольное значение x»; x |
Осуществляется ввод исходных данных: значение переменной x |
IF x-4<>0 THEN y=1/(x-4): GOTO 1 ELSE GOTO 2 |
Смотрите примечание 1 |
1 PRINT «Значение функции =»; y: GOTO 3 |
Осуществляется вывод искомых данных: значение функции y и переход к завершению программы |
2 PRINT «Функция y не определена»: GOTO 3 |
Осуществляется вывод сообщения и переход к завершению программы |
3 END |
Завершение программы |
Примечание 1: После оператора IF указано проверяемое условие, после оператора THEN– вычисление функции по указанной формуле и переход (с помощью оператора безусловного перехода GOTO) к строке вывода искомого значения функции y. А после оператора ELSE указан переход к строке вывода сообщения «Функция y не определена». Обратите внимание: в начале каждой строки вывода стоят соответствующие метки.
Примечание 2: после запуска программы на исполнение нажатием клавиши F5 на экране появится подсказка оператора ввода «Введем произвольное значение x» и знак ?, после которого необходимо ввести произвольное значение переменной x. Затем нажатием клавиши Enter получаем искомый результат–значение функции y.
Задача №2:
составить программу для вычисления значения функции по одной из формул
Программа:
CLS
REM Значение функции
INPUT «Введите a, b, x»; a, b, x
IF x<10 THEN y=x+a: goto 1 ELSE y=SIN(x)-b: goto 1
1 PRINT “y=”; y
END
Содержание работы:
Вариант №__
Задание №1. Протестировать программу для задачи №1 и записать свои данные в таблицу:
Значения переменной x |
Значения функции y |
|
|
|
|
|
|
Задание №2. Составить программу, которая в зависимости от введённого числа либо вычисляет функцию, либо выдаёт сообщение, что функция не определена.
Условие задачи:________________________________________________
_______________________________________________________________
Программа:
|
|
|
|
Записать свои данные в таблицу:
Значения исходных данных |
Значения функции y |
|
|
|
|
|
|
Задание №3. Протестировать программу для задачи №2 и записать свои данные в таблицу:
Значения переменной x |
Значения функции y |
|
|
|
|
|
|
Задание №4. Составить программу для решения задачи.
Условие задачи:________________________________________________
_______________________________________________________________
Программа:
|
|
|
|
|
|
|
Записать свои данные в таблицу:
Значения исходных данных |
Значения функции y |
|
|
|
|
|
|
Задание №5. Ответить на вопросы:
1. Какая программа называется разветвляющейся? |
|
2. Укажите общий вид оператора условного перехода в Qbasic? |
|
3. Укажите общий вид оператора безусловного перехода в Qbasic? |
|
4. Что указывается после оператора IF? |
|
5. Какое выражение называется условным? |
|
6. Какие данные являются исходными для задачи? |
|
Задание №6. Сделать вывод о проделанной лабораторной работе:
|
|
|
|
|
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.