Смекни!
smekni.com

Общие сведения о языке программирования Qbasic (стр. 2 из 5)

Ветвление - это такая форма организации действий, при которой выполнение или иного действия зависит от выполнения или невыполнение некоторого условия.

Условие - это логическое выражение, содержащее знаки сравнения и логические операции.(см. табл.)

знаки сравнения логические операции
= равно = AND логическое "и" (пересечение)
< меньше < OR логическое "или" (объединение)
> больше > NOT "не" (отрицание)
<=меньше или равно <=
>=больше или равно >=
<> не равно <>

Таблица действия логических функций (таблица истинности), где a и b -логические выражения.

A B NOT a NOT b a AND b a OR b
TRUE TRUE FALSE FALSE TRUE TRUE
TRUE FALSE FALSE TRUE FALSE TRUE
FALSE TRUE TRUE FALSE FALSE TRUE
FALSE FALSE TRUE TRUE FALSE FALSE

Пример записи логического выражения: a + b > c AND d <> 8 .

Логическая операция NOT (отрицание) выполняется над простым логическим выражением: NOT ( a> b )

Логическое выражение принимает одно из двух значений: TRUE (истина) и FALSE (ложь). Эти выражения применяются в операторах ветвления и цикла.

Существующий приоритет выполнения операций поддерживается и здесь:

сначала выполняются операции в скобках, затем логическое умножение, логическое сложение

Примеры записей логических выражений:

математическая запись запись на языке Бейсик
( X>0 ) и (Y<0 ) ( X>0 ) AND (Y<0 )
-2<= X <=2 (X>=-2 ) AND (Y<= 2 )
X<0 и X>10 ( X<0 ) OR (X>10 )

Принят следующий приоритет логических и арифметических операций:

-операции в скобках;

-операция NOT ;

-операции AND, /, * ;

-операции OR, +, - ;

-операции отношения.

Упражнения

1. Вычислить значение логического выражения

а) Х2 2<=12 при Х=0 и У=-1 б) NOT ((X*Y) OR (Y >X) при X=4, Y=1

2. Написать логические выражения, которые имеют значение истинна лишь при выполнении указанных условий:

а) X>0 и Y>0 Y не является MAX (X, Y, Z)

б) неверно, что X>0 X, Y, Z равны между собой

в) 2< X < 20 точка с координатами X, Y принадлежит 1-

ой четверти

Операторы перехода разделяются на две группы:

операторы безусловного перехода и операторы условного перехода.

Оператор безусловного перехода.

Он служит для перехода из одной строки программы к другой, помеченной номером или меткой.

Общий вид оператора: GOTO N

где N - номер строки или метки оператора, на который происходит переход в программе.

Примеры:

1. X=3 2. GOTO W

GOTO 7 . . .

Y=2*X W PRINT "решение получено"

7 Z=5*X

Операторы условного перехода

Существуют две формы ветвления: полная и неполная.

неполная форма ветвления

Соответственно существуют и два вида операторов: полной и неполной альтернативы.

I. Полная альтернатива (предусмотрены команды в ветви "ДА" и в ветви "НЕТ").

1) Линейная форма записи (оператор записывается в одной строке)

Условие выполняется "ДА"


IF условие THEN блок операторов 1 ELSE блок операторов 2


Условие не выполняется "НЕТ"

Работа оператора: в зависимости от того выполняется или не выполняется условие (условие - логическое выражение, которое может содержать знаки сравнения и логические операции). Если условие истинно, то выполняется блок операторов 1, если условие ложно, то выполняется блок операторов 2.

ПРИМЕР:IF A=1 THEN PRINT "ДА" ELSE PRINT "НЕТ"

PRINT "КОНЕЦ"

Здесь операторы работают следующим образом:

-если условие А=1 "ИСТИННО", то выполняются операторы PRINT "ДА" и PRINT "КОНЕЦ";

-если условие А=1 "ЛОЖНО", то выполняются операторы PRINT"НЕТ" и PRINT "КОНЕЦ".

2) Блочная форма записи:

IF условие THEN ПРИМЕР:

блок операторов CLS: INPUT a

ветви "ДА" IF a=1 THEN

ELSE PRINT "работает ветвь ДА "

блок операторов PRINT a

ветви "НЕТ" ELSE

END IF PRINT "работает ветвь НЕТ"

PRINT a

END IF

II. Условный оператор неполной альтернативы:

IF условие THEN блок операторов

Примеры решения задач.

Пример 1.Определить наибольшее из двух чисел Х и У, введенных клавиатуры.

CLS: INPUT " ";X, Y

IF X > Y THEN

PRINT "НАИБОЛЬШЕЕ ЧИСЛО X="; X

ELSE

PRINT "НАИБОЛЬШЕЕ ЧИСЛОY=";Y

END IF

END

Пример 2. Вычислите Функцию для любого значения Х.

X2 +4X-7 , X<=-2 CLS: INPUT "введите X";X

Y=< IF X<=-2 THEN

X2-3X+12 , X>2 Y=X^2+4*X-7

ELSE

Y=X^2-3*X+12

END IF

PRINT "ФУНКЦИЯ =";У;" при Х=";Х

END

Пример 3. Вычислите функцию У=3Х2 -5Х+12 на отрезке (-3,3) с шагом 1.

CLS: PRINT "Y", "X"

X=-3

4 Y=3*X^2-5*X+12

PRINT Y,X

X=X+1

IF X<3 THEN GOTO 4

END

Пример 4. Вычислите сумму целых чисел от 10 до 20

S =10+11+12+...+20

CLS: S=0: X=10

5 S=S+X

X=X+1

IF X<=20 THEN GOTO 5

PRINT "сумма = ";S

END

Пример 5. Вычислите произведение нечетных чисел от 15 до 30

Р= 15*17*19*...*29

CLS:P=1:X=15

7 P=P*X

X=X+2

IF X<30 THEN GOTO 7

PRINT "произведение = ";P

END

Циклы.

В языке QBASIC предусмотрено два основных способа организации циклов:

-повторение блока команд заданное количество (число) раз (цикл со счетчиком);

-циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие.

Цикл со счетчиком (FOR... NEXT) ДЛЯ... СЛЕДУЮЩИЙ

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

Общий вид оператора цикла со счетчиком:

FOR K=K1 TO K2 STEP K3 - заголовок цикла

- тело цикла -

NEXT K - конец цикла

Здесь FOR - имя оператора (переводится "для"); К - переменная (обычно целого типа), называемая переменная управления циклом ; К1, К2, К3 - начальное, конечное значения и шаг изменения величины К соответственно, могут быть представлены любыми арифметическими выражениями; ТО, SТЕР - переводится - "до", "шаг"; тело цикла - любые операторы языка Бейсик; NEXT - оператор (переводится "следующий").

Совместная работа операторов и определяется схемой:


где

K < K2, если K3 > 0

< условие > = <

K > K2 ,если K3 < 0

Иначе говоря, операторы FOR и NEXT обеспечивают изменение значения К от К1 до К2 с шагом К3 и выполнение оператора (операторов), заключенных между FOR и NEXT, при каждом значении К.

Ограничения:

1. Изменять значение величин К1, К2, К3 в процессе выполнения операторов FOR и NEXT не рекомендуется.

2. Вход в цикл, минуя оператор FOR, в Бейсике запрещен.

Примеры решения задач

Пример 1. Выведите на экран в столбик целые числа от 1 до 10.

CLS

FOR J=1 TO 10 STEP 1

PRINT J

NEXT J

END

Пример 2. Вычислите сумму целых чисел от 1 до 10

CLS: S=0

FOR I=1 TO 10 STEP 1

S=S+I

NEXT I

PRINT " "; S

END

Пример 3. Вычислите значение функции y=2X2-3X+5 на отрезке (-3, 3) с шагом 1,5

CLS : PRINT "Y"; "X"

FOR X=-3 TO 3 STEP 1.5

Y=2*X^2-3*X+5

PRINT Y,X

NEXT X

END

Пример 4. Вычислите сумму S= 2+4+ ...+2 N , если Nвводится с клавиатуры CLS : S=0

INPUT «введите « N»; N

FOR I = 1 TO N

S=S + 2 *N

NEXT I

PRINT «сумма = «; S

END

Пример 5 Выведите слово«IBM» 10 раз, чтобы получилась диагональ

CLS

FOR K =5 TO 15

LOCATE K, K

PRINT « IBM»

NEXT K

END

Цикл WHILE... WEND (ПОКА... КОНЕЦ)

Конструкция WHILE... WEND (ПОКА... КОНЕЦ) позволяет выполнять блок команд до тех пор, пока значение выражения, заданного в WHILE - "Истина".

Общий вид оператора

WHILE логическое выражение

-- блок команд –

WEND

Работа операторов может определяться следующей схемой:


НЕТ


ДА