Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
15.02.2016
Размер:
4.77 Mб
Скачать

К лабораторной работе № 2

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

Структура создаваемой программы: ввод исходных данных, осуществление заданного ветвления и вычисление значений y при x из заданного диапазона, вывод результата на экран с помощью оператора PRINT.

Ввод исходных данных в данной работе осуществляется посредством оператора INPUT, обеспечивающего ввод данных с клавиатуры во время выполнения программы и размещение их в списке переменных. Оператор INPUT останавливает программу и ждет ввода данных. Переменные могут быть числовыми, символьными или элементами массивов. Типы данных в списке и вводимых с клавиатуры должны совпадать.

INPUT "Введите значение x, y ", x, y$

В приведенном примере символьная строка, заключенная в кавычки, называется подсказкой или приглашением к вводу и выводится один к одному на экран. Если после приглашения поставить точку с запятой, а не запятую, как в примере, то Бейсик будет выводить знак вопроса. В данном примере оператор требует ввести численное значение x, завершив его ввод запятой, а затем ввести символьное значение для символьной переменной y$, завершив ввод значений обеих переменных нажатием клавиши Enter.

Предпочтительнее для каждой переменной использовать свой оператор

INPUT: 10 PRINT "Введите значения x, y"

10 INPUT "Введите x = ", x 20 INPUT "x = ", x

20 INPUT "Введите y = ", y$ 30 INPUT "y = ", y$

Если введены значения не тех типов или их количество не совпадает с числом переменных в списке при INPUT, то появится сообщение об ошибке "Ввод с начала".

Ветвление осуществляется с помощью условного оператора

IF…THEN…ELSE (ЕСЛИ…ТОГДА…ИНАЧЕ)

Предпочтительнее в данном случае неполная линейная форма

IF 0 < x THEN y = a * x + b

Если выполняется условие 0 < x, то выполняется стоящее после THEN, в противном случае выполняется следующая строка программы. Можно использовать и блочную форму.

Сложные условия реализуются с помощью операций отношения из таблицы 0.1.2 и логических операторов из таблицы 0.2.2.

Например:

Условие: 0  x  5 можно записать следующим образом: 0 =< x AND x =< 5 или x < 0 EQV 5 < x .

В таблице 0.2.3 приведены значения контрольных примеров для всех вариантов таблицы 2.1.

Таблица 0.2.1.

Оператор и его описание

IF 0 < x THEN y = a * x + b ELSE y = c * x ^ 2

Линейная форма условного оператора. Удобна, если требуется реализовать два альтернативных условия. Если справедливо условие 0 < x, то y определяется по формуле, стоящей после THEN, в противном случае – по формуле после ELSE.

IF 0 < x THEN y = a * x + b ELSE 50

Линейная форма условного оператора. Если справедливо условие 0 < x, то вычисляется y после THEN, в противном случае – переход на строку 50. После THEN или ELSE может стоять и многоо-ператорная строка, например, a = 2: b = 3: y = a * x + b: PRINT y

IF 0 < x THEN y = a * x + b

Неполная форма условного оператора. Если справедливо условие 0 < x , то определяется y по формуле после THEN. В противном случае выполняется следующий оператор программы.

IF 0 < x AND x < 5 THEN y = a * x + b

Неполная форма условного оператора. Пример реализации сложного условия 0 < x < 5 с помощью логического оператора AND

IF 0 < x THEN IF x < 5 THEN y = a * x + b

Неполная форма условного оператора. Пример реализации сложного условия 0 < x < 5

IF x =< 0 THEN

y = a * x + b

ELSEIF 5 =< x THEN y = a * x

ELSEIF 0 < x AND x < 5 THEN y = c ^ x

ELSE PRINT "Такого варианта нет"

END IF

Блочная форма условного оператора. Блоки ELSE и ELSEIF могут быть опущены. ELSEIF может быть любое количество. Каждый из блоков может также содержать вложенные блочные структуры IF

SELECT CASE n

CASE -1: PRINT "n может быть и отрицательным"

CASE 0: PRINT "n может быть числовым или строковым"

CASE 1, 2, 3: PRINT "Несколько одинаковых вариантов"

CASE 4 TO 8: PRINT "Использование ключевого слова TO"

CASE IS > 8: PRINT "Использование операций отношения"

CASE ELSE: PRINT " CASE ELSE может быть опущено"

END SELECT

Управляющий оператор, выполняющий один или несколько блоков оператора в зависимости от значения n (числового или строкового).

Таблица 0.2.2.

Логические операторы QBasic

Оператор

Название

Объяснение

NOT

Отрицание

NOT A истинно тогда и только тогда, когда A ложно

AND

Логическое умножение

A AND B истинно тогда и только тогда, когда истинно А и истинно В

OR

Логическое сложение

A OR B истинно тогда и только тогда, когда хотя бы одно из A и B истинно

XOR

Исключающее ИЛИ

A XOR B истинно тогда и только тогда, когда значения А и В не совпадают

EQV

Эквивалентность

A EQV B истинно тогда и только тогда, когда A и B одновременно истинны или ложны

IMP

Импликация

A IMP B ложно, если A истинно, а B ложно, в других случаях A IMP B истинно

Таблица 0.2.3.

Значения y

Вариант

x1 = -5

x2 = 1

x3 = 9

0

a = 2

-5

a = 5,2

2

198,925

1

35,09

0,816

2178,9

2

4,85

6,02

85,6

3

-121,47

4,39

7,63 * 1012

4

53,2

0,62

a = 324

3,4

5

-3,72 * 10-3

a= 0

4,60

7,70

6

-210,79

9,24

290,84

7

47,75

-1,45

320,31

8

200

0,94

269,02

9

-0,30

8,2

a = 1

50,11