
- •Общая характеристика языка
- •Элементы языка qbasic
- •Ключевые слова
- •Синтаксические соглашения
- •Комментарии
- •Арифметические выражения.
- •Строковые выражения
- •Типы данных
- •Стандартные типы данных.
- •Константы и переменные. Константы.
- •Переменные.
- •Присвоение значений переменным.
- •Ввод/вывод.
- •Вывод на экран.
- •Очистка экрана.
- •Ввод с клавиатуры.
- •Input "Введите, пожалуйста, высоту :"; height!
- •Input "Введите, пожалуйста, ширину :"; breadth!
- •Input "Введите, пожалуйста, длину :"; length!
- •Форматированный вывод на экран.
- •Позиционирование курсора.
- •Вывод пробелов.
- •Функция табуляции.
- •Остановка программы.
- •Управляющие операторы.
- •Оператор безусловного перехода.
- •Условия .
- •Оператор условного перехода в программе.
- •Цикл while.
- •Цикл do.
- •Оператор выбора select case.
- •Input "Задать число "; zahl%
- •Input "Ввести число "; zahl%
- •Логические операции.
- •Input "Ввести число 1, zahl1%
- •Input "Ввести число 2", zahl2%
- •Логическое и (and) .
- •Логическое или (or) .
- •Input "Введите число 1", zahl1%
- •Input "Введите число 2", zahl2%
- •Логическое отрицание (not).
- •Input "Введите число " zahl%
- •Обработка строк
- •Определение длины строки.
- •Получение символов кода ascii.
- •Input "Ввести ascii-значение ", ascii%
- •Функция вычисления экспоненты.
- •Input "Задать аргумент функции ",х!
- •Вычисление натурального логарифма.
- •Input "Задать аргумент функции ",х!
- •Преобразование к типу integer.
- •Input "Задать число ";х!
- •Выделение целой части числа.
- •Извлечение квадратного корня.
- •Определение знака числа (функция сигнатуры).
- •Преобразование числа в строку.
- •Массивы в qbasic.
- •Функции и процедуры, определенные пользователем. Собственные функции.
- •Input "Ввести аргумент: ", argument!
- •Input "Ввести степень корня: ", wurz%
- •Собственные процедуры.
- •Установка цветов экрана.
- •Работа с файлами. Введение и основные функции.
- •Input "Фамилия : ", nachnameS
- •Input "Заглавие : ", stichwortS
- •Работа с адресами в справочнике.
- •Обработка ошибок.
- •Input "Введите, пожалуйста, число ",а!
- •Input "Введите, пожалуйста, число ",а1
- •Графические возможности Basica
- •Переход в графический режим экрана
Логическое и (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 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
'Конец программы