- •Общая характеристика языка
- •Элементы языка 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
- •Переход в графический режим экрана
Функции и процедуры, определенные пользователем. Собственные функции.
В предшествующих главах Вы познакомились с некоторыми встроенными функциями QBASIC (например, MID$ или SQR). Теперь рассмотрим составление собственных функций.
Вернемся к математической функции INT. INT — имя функции. Этим именем определяются некоторые программные действия, невидимые программисту, и которые инициализируются автоматически с появлением в программе имени функции. Иначе говоря, функцию можно понимать как группу операторов в программе, объединенных под именем функции. С помощью заключенного в круглые скобки аргумента (сравни INT (3.34)) в подпрограмму, инициируемую именем функции, передаются конкретные данные. Над этими данными производятся некоторые преобразования, и результат, как правило, возвращается в основную программу.
Чтобы вызвать из программы собственную функцию, нужно указать ее имя. Последний символ имени функции определяет тип возвращаемого значения.
Пример: STRICH$()-Возвращаемое значение - строка RUNDEN%()-Возвращаемое значение - число типa INTEGER WURZEL! ()-Возвращаемое значение — число типа SINGLE В QBASIC пользовательские функции объявляются при вводе ключевого слова FUNCTION и следующего за ним имени функции. В этом случае редактор автоматически генерирует новое программное окно, в котором нет ничего, кроме операторов, ограничивающих тело функции: FUNCTION Имя_функции END FUNCTION В пространство между ограничивающими ключевыми словами вносят операции QBASIC, обеспечивающие выполнение необходимых действий. Чтобы вернуться в главную программу, надо нажать клавишу . На экране появляется поле списков со всеми BIBL.BAS и сохраните его под новым именем ("Save as..."). Если Вы будете составлять свою программу в этом файле, из нее можно вызывать все процедуры и функции файла BIBL.BAS.
Покажем создание функции извлечения корня, упомянутой в главе "Математические вычисления", функция должна извлекать из числа корень любой степени. Начнем с главной программы:
'Главная программа для функции извлечения корня
DIM argument!, wurz%
CLS
DO
Input "Ввести аргумент: ", argument!
Input "Ввести степень корня: ", wurz%
LOOP WHILE argument! < 0
PRINT wurzel!(argument!, wurz%)
'Конец главной программы
Составим шаблон функции: FUNCTION wurzel! (argument!, wurz%) END FUNCTION Извлечение корня из аргумента можно представить функцией возведения аргумента в степень, обратную степени корня. Функция извлечения корня любой степени имеет следующий вид:
FUNCTION wurzel! (argument!, wurz%)
wurzell = argument! ^ (1 / wurz%)
END FUNCTION
Рассмотрим синтаксис определения функции в программе более детально: FUNCTION Имя_функции (Параметр_1 [, Параметр_2]...) [STATIC] [Оператор]... Имя_функции = Выражение END FUNCTION Имя_функции - Имя функции; последний символ обязательно определяет тип возвращаемого значения (%,&,!, #или $). Параметр - Параметр, который передается функции при вызове. STATIC - Если в теле функции объявляются локальные переменные, то они сохраняют свои значения в промежутке между вызовами функции. Выражение- Возвращаемое значение Смысл опции STATIC разъясним на небольшом примере. Составим главную программу для вызова функции zlen:
'Главная программа
PRINT "Длина 'test' "; zlen%("test")
PRINT "Длина 'test' "; zlen%("test")
Функцию zlen объявим следующим образом:
FUNCTION zlen%(text$)
DIMi%
i%-i%+LEN(text$)
zlen%-i% END FUNCTION
После запуска программы дважды получим на экране сообщение "Длина 'тест' 4". Изменим заголовок функции: FUNCTION zlen% (text$) STATIC После первого запуска программы получаем сначала значение длины 4, затем 8. Так как при объявлении функции используется ключевое слово STATIC, то значение локальной переменной i% сохраняется после окончания выполнения функции. Поэтому при последующих вызовах к значению переменной i% добавляется число 4, и при втором обращении к функции возвращаемое значение уже не 4, а 8.