- •Глава I. Основные сведения.
- •Глава II .Решение задач.
- •Глава III . Дополнительные сведения о tb.
- •Предисловие
- •Глава I. Основные сведения
- •1. Введение
- •Понятие об алгоритмах.
- •Понятие о программировании.
- •Этапы решения задач с помощью компьютера.
- •2. Основы языка turbo basic
- •2.1 Алфавит языка.
- •2.2 Типы данных.
- •2.3 Выражения в Бейсике. Стандартные функции.
- •2.4 Среда программирования TurboBasic
- •2.5 Работа в непосредственном режиме
- •2.6 Структура программ. Оператор присваивания.
- •2.7 Операторы ввода/вывода.
- •2.8 Работа с блоком данных
- •Организация графического экрана. Операторы графики.
- •2.10 Функции обработки символьных (литерных) величин.
- •3.Управляющие конструкции.
- •3.1 Операторы цикла.
- •3.2 Условный оператор.
- •3.3 Подпрограммы.
- •3.4 Функции пользователя.
- •Глава II. Решение задач.
- •4. Работа с функциями.
- •4.2 Функции обработки числовых данных.
- •4.3 Генерация случайных чисел.
- •5. Массивы
- •5.1 Понятие массива.
- •5.2 Задачи на обработку одномерных массивов.
- •5.3 Сортировка массивов
- •5.4 Двумерные массивы
- •6. Практика программирования.
- •Задачи обработки целых чисел.
- •6.2 Построение графика функции.
- •Простейший графический редактор.
- •Моделирование хода часов.
- •Программирование справочных систем.
- •1 Закон ньютона
- •2 Закон ньютона
- •3 Закон ньютона
- •Программирование игр.
- •Глава 3. Дополнительные сведения о тв.
- •Звук и музыка.
- •Графический оператор draw.
- •9. Операторы get и put
- •10. Файлы. Работа с файлами.
- •10.1 Файлы последовательного доступа
- •10.2. Файлы прямого доступа
- •Сообщения об ошибках
- •Список команд, операторов, функций.
- •Ascii – коды
- •Список рекомендуемой литературы
3.4 Функции пользователя.
Помимо стандартных функций (см. п. 2.3.) в программе можно определить и далее использовать другие (нестандартные) функции – функции пользователя. Язык Бейсик позволяет вам создавать собственные функции. Функция может быть определена одной строкой (оператор-функция) или несколькими строками (подпрограмма-функция).
DEF FN имя [(список параметров)] = выражение
это определение оператора-функции.
Здесь список параметров может включать не более 16 параметров.
DEF FN имя [(список параметров)]
описание переменных
операторы
[EXIT DEF]
....
[FN имя = выражение]
END DEF
(это определение подпрограммы-функции).
Обращение к функции записывается там, где нужно получить ее значение. При этом параметры заменяются их фактическими значениями. Например,
DEF FNF (x,y) = x * x + y * y
a = 3 : b = 4
P = FNF (a,b) или
P = FNF (3,4)
Функция возвращает одно значение, тип которого определяется именем функции. Определение функции может располагаться в любом месте
программы (обычно в начале или в конце). Например:
F = FNa (1.5)
PRINT F
DEF FNa (x)
FNa = x*x
END DEF
END или
F = FNa (1.5) PRINT F
END
DEF FNa (x) FNa = x*x
END DEF
В результате будет напечатано 2.25.
Список параметров оператора-функции может включать только имена переменных.
Задачи для самостоятельной работы.
Глава II. Решение задач.
4. Работа с функциями.
4.1 Функция INKEY$.
Для ввода чисел и символьных данных мы пользуемся оператором INPUT, который навязывает строгие правила: ввод каждого символа отображается на экране, вводимые данные разделяются запятой завершив ввод надо нажать {Enter}. Однако с помощью клавиатуры мы можем посылать сигналы всевозможных служебных клавиш, используя их в текстовых и графических редакторах, играх и т.п. При программировании на Бейсике достаточно простых вычислительных или развлекательных задач возникает потребность в средствах контроля над клавиатурой – как по своему интерпретировать любой сигнал, поступающий от любой клавиши? Универсальным средством для этого является функция INKEY$.
Сигнал, посылаемый в компьютер при нажатии любой клавиши , перехватывается системными программами – MS-DOS и драйверами клавиатуры. Они представляют сигнал в виде целого числа и помещают его в память – в буфер клавиатуры и «забывают» о нем. Любая работающая программа может извлекать символ из буфера. Функция INKEY$ считывает символ из буфера клавиатуры и возвращает его. При этом возможны 2 ситуации:
буфер пуст (клавиши не нажимались) – функция возвращает пустую строку («»);
нажата клавиша – функция возвращает строку, содержащую символ, считанный с клавиатуры (то есть не ждет ввода в отличии от INPUT ).
Функция INKEY$ не приостанавливает выполнение программы и вы сами управляете процессом извлечения сигналов клавиатуры. Простейшее применение этой функции – приостановить программу до нажатия любой или заранее определенной клавиши. Например:
?”Нажмите любую клавишу”
1 IF INKEY$=”” THEN 1
или
? “Нажмите клавишу M”
1IF INKEY$<>”M” THEN 1
Эту часть удобно оформить как подпрограмму
Функции преобразования символьных величин
Часто совместно с INKEY$ используют функции ASC и CHR$.
Каждому символу соответствует 8-битовое обозначение. Так можно обозначить 256 символов, то есть каждому символу можно дать десятичный код от 0 до 255. Была составлена ASCII-таблица (American Standard Coding for Information Interchange – Американский Стандартный Код для Обмена Информацией). Первая половина этой таблицы от 0 до 127 стандартизирована, а вторая уникальна для каждой страны. (см. Приложение 3).
Функция ASC выдает десятичный код первого символа в символьном выражении.
ASC(символьное выражение)
Например: ?ASC(«Q») ?ASC(«A»)
На экран выводится: 81 65
Функция CHR$ выдает символ, соответствующий заданному коду.
CHR$(целое число)
Например: ? СHR$(65) ? CHR$(81)
На экран выводится: А Q
Пример: управляемый рисунок.
По нажатию клавиш на клавиатуре окружность перемещается в заданном направлении. Выберем следующие клавиши:
R
D
F
C
CLS:SCREEN 9
X=300:Y=200:K=0
CIRCLE(X,Y),2,2
1 A$=INKEY$
IF A$=”” THEN 1
CIRCLE(X,Y),2,16
IF A$=”R” THEN Y=Y-1
IF A$=”C” THEN Y=Y+1
IF A$=”D” THEN X=X-1
IF A$=”F” THEN X=X+1
К=К+1
IF K<100 THEN 1
END
