Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник (бейсик).doc
Скачиваний:
8
Добавлен:
03.11.2018
Размер:
347.65 Кб
Скачать

Логическое и (and) .

AND (И) коньюктивно объединяет логические условия: Условие_1 AND Условие_2 [AND Условие_3] … Результат такого объединения лишь тогда истинен, когда истинно каждое отдельное условие. Таблицу истинности данной операции смотри в главе Условия

Пример :

DIM zahl1%, zahl2%

CLS

DO

INPUT "Введите число 1> 0", zahl1%

INPUT "Введите число 2 < 0 ", zahl2%

LOOP UNTIL zahll %>0 AND zahl2% < 0

PRINT "Спасибо за корректный ввод"

'Конец программы

Только тогда, когда zahl1% > 0 и zahl2%< 0, значение всего логического выражения станет истинно, а значит, выполнение цикла закончится.

Логическое или (or) .

OR (ИЛИ) дизъюнктивно объединяет логические условия: Условие_1 OR Условие_2 [OR Условие_3...] Результат такого объединения только тогда ложен, когда ложны все составляющие: Таблицу истинности данной операции смотри в главе Условия

Пример:

DIM zahl1%, zahl2%

CLS

DO

PRINT "Число 1 или число 2 должно быть больше нуля"

Input "Введите число 1", zahl1%

Input "Введите число 2", zahl2%

LOOP UNTIL zahl1% >0 OR zahl2% >0

PRINT "Спасибо за корректный ввод"

'Конец программы

В этом примере выход из LOOP-цикла не произойдет только в том случае, если значение каждого из вводимых чисел будет меньше или равно нулю.

Логическое отрицание (not).

NOT инвертирует (меняет на противоположное) значение логического выражения, т.е. то, что было "ложь", становится "истиной" и наоборот: Таблицу истинности данной операции смотри в главе Условия

Пример:

DIM zahl%

CLS

Input "Введите число " zahl%

IF NOTzahl% > 0 THEN

PRINT "Число не больше нуля"

ELSE

PRINT "Число больше нуля"

END IF

'Конец программы

Обработка строк

В этой главе рассмотрим функции, которые осуществляют обработку строк. В QBASIC функция состоит из имени и аргументов, которые заключаются в круглые скобки и располагаются всегда за именем функции. Значения функций обработки строк могут быть или типа STRING, или принадлежать к группе арифметических типов данных. Функции, наряду с переменными и константами, применяют в качестве составляющих оператора или используют при составлении выражений или логических условий. Естественно, зна- чение функции должно быть совместимо с остальными составляющими оператора, например, в арифметическое выражение нельзя встраивать функцию, значение которой является строковым выражением.

Определение длины строки.

Функция LEN выдает длину строки, т.е. количество символов в строковом выражении.

Пример:

DIM a$, 1аеngе%

PRINT LEN("Сегодня понедельник")

INPUT "Ввести текст ";а$

1aenge% = LEN(a$)

PRINT a$; "Длина ";1аеnge," символов "

Получение символов кода ascii.

Функция CHR$ преобразует ASCII-код в соответствующий символ (ASCII=American Standard Code for Information Interchange — Американский стандартный код для обмена информацией). Аргумент функции — число типа INTEGER в диапазоне от 0 до 255.

Соответствие кодов ASCII определенным символам дано в ASCII-таб-лице, размещенной в справочнике (Help) OBASIC и приведенной ниже. Также можно воспользоваться следующей программой:

'ASCII-символьное предложение

DIM ascll%

DO

Input "Ввести ascii-значение ", ascii%

LOOP UNTIL ascii% > 0 AND ascii% <= 256

PRINT "Код ASCII "; ascll%;" соответствует символу ";CHR$(ascii%)

Получение ASCII-кода символа.

Функция ASC — обратная по отношению к функции CHR$. Аргумент функции ASC — символ, а значение функции — соответствующий этому символу ASCII-код.

Пример:

PRINT ASC ("А")

Выделение левых крайних символов строки.

Функция LEFT$ выделяет крайние слева символы строки. Вызов функции: LEFT$ (Строка, Число) Строка - Строка, из которой выделяются символы. Число - Величина типа INTEGER, которая задает количество выделяемых символов.

Пример:

PRINT LEFT$ ("Хелло, QBASIC", 5)

Выделение правых крайних символов строки.

Функция RIGHT$ выделяет крайние справа символы строки. Вызов функции: RIGHT$ (Строка, Число) . Строка- Строка, из которой выделяются символы. Число- Значение типа INTEGER, в котором указывается количество выделяемых справа символов.

Пример:

PRINT RIGHTS ("Хелло, OBASIC, 5)

Выбор подстроки.

Функция MID$ копирует из строки любой ее фрагмент. MID$ (Строка, Начало, Длина) Строка - Строка, из которой должны выделятся символы. Начало - Позиция, с которой начинается выбор фрагмента. Длина - Длина подстроки.

Пример:

' MID$ - функция

DIM A$, i%, j%

А$=" Доброе утро"

1%=3

J%=5

PRINT MID$ ("Хелло, QBASIC",4,4)

PRINT MID$(aS,i%,j%)

Получение строчных символов.

Функция LCASE$ возвращает заданную строку в виде строчных букв. Пользуясь этой функцией, следует принять во внимание, что аргументы для LCASE$ расположены в подмножестве символов, коды которых лежат в диапазоне от 32 до 127. Следующие 128 символов (от 128 до 256) предназначены для кодирования символов национальных алфавитов, псевдографики, математических и др.

Пример:

LCASE$

PRINT LCASE$ ("HUT OF BROWN NOW SIT DOWN")

Получение заглавных символов.

Функция UCASE$ противоположна функции LCASE$ и возвращает заданную строку в виде заглавных букв. Следует принимать во внимание тот факт, что аргументом для UCASE$ могут быть лишь символы, коды которых расположены в диапазоне от 32 до 127.

Пример:

UCASE$

PRINT UCASE$ ("hut of brown now sit down")

Устранение ведущих пробелов.

Функция LTRIM$ устраняет в строке ведущие пробелы. Возвращенное значение сдвинуто влево.

Пример:

'LTRIM$

DIM wort$, lwort$

wort$ = " Сдвиг влево"

Iwort$= LTRIM$(wort$)

PRINT wort$

PRINT LEN(wort$)

PRINT

PRINT Iwort$

PRINT LEN(lwort$)

Устранение последних пробелов .

Функция RTRIM$ убирает в строке последние пробелы.

Пример :

RTRIM$

DIM wort1$, wort2$

wort1$= "левый

wort2$=" и правый"

PRINT wort1$+wort2$

PRINT PTRIM$(wort1$)+wort2$

Создание строки из пробелов.

Функция SPACE$ создает строку из пробелов. Аргумент функции — длина этой строки.

Пример:

DIM leer$

leer$-SPACES$(45) PRINT LEN(leer$)

Преобразование строки в число.

Функция VAL преобразует число из строкового представления в числовое. Предполагается, что преобразуемая строка содержит допустимые для представления чисел символы. Если нецифровой знак встречается первым в строке, то преобразование невозможно и значение функции равно нулю.

Пример:

PRINT VAL("234.23) PRINT VAL("Hallo") PRINT VAL("43D12)

Математические вычисления.

С простыми математическими вычислениями Вы уже познакомились в главе "Элементы языка QBASIC". В этой главе рассмотрим функции, которые позволяют проводить сложные математические расчеты. Без этих функций такие расчеты либо не возможны, либо требуют для реализации значительных затрат.

Абсолютное значение числа.

Функция ABS возвращает абсолютное значение заданного арифметического выражения.

Пример:

'Функция ABS

DIM wert%

wert% = 45 PRINT

ABS(wert%)

PRINT ABS(-1 * wert%)

Тригонометрические функции.

В QBASIC определены следующие тригонометрические функции:

SIN (угол)

Функция синус угла

COS(угол)

Функция косинус угла

TAN (угол)

Функция тангенс угла

ATN (арифм.выраж.)

Функция арктангенс угла

Угол следует задавать в радианах. Функция, обратная тангенсу — ATN, возвращает значение угла, выраженное в радианах. Для преобразования значения угла из градусной меры в радианную, и наоборот, можно воспользоваться формулами: D град = рад* (180 /pi) D рад =град* (pi/ 180) где pi =3,14159

Пример:

'Примеры тригонометрических функций

CONST pi!- 3.14159

CONST bogum! - 180 / pi!

CONST gradum!-pi!/ 180

'Вычисление синуса, косинуса и тангенса угла 17 градусов

PRINT SIN(17*gradum)

PRINT COS(17 * gradum)

PRINT TAN(17*gradum)

'Функция, обратная тангенсу — ATN

'Требуется опять получить 17 градусов

PRINT ATN(TAN(197 * gradum)) * bogum

'Конец программы