Студопедия
rus | ua | other

Home Random lecture






Работа с функциями.


Date: 2015-10-07; view: 380.


Глава II. Решение задач.

Функции пользователя.

Помимо стандартных функций (см. п. 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.

Список параметров оператора-функции может включать только имена переменных.

 

Задачи для самостоятельной работы.

 

4.1 Функция INKEY$.

Для ввода чисел и символьных данных мы пользуемся оператором INPUT, который навязывает строгие правила: ввод каждого символа отображается на экране, вводимые данные разделяются запятой завершив ввод надо нажать {Enter}. Однако с помощью клавиатуры мы можем посылать сигналы всевозможных служебных клавиш, используя их в текстовых и графических редакторах, играх и т.п. При программировании на Бейсике достаточно простых вычислительных или развлекательных задач возникает потребность в средствах контроля над клавиатурой – как по своему интерпретировать любой сигнал, поступающий от любой клавиши? Универсальным средством для этого является функция INKEY$.

Сигнал, посылаемый в компьютер при нажатии любой клавиши , перехватывается системными программами – MS-DOS и драйверами клавиатуры. Они представляют сигнал в виде целого числа и помещают его в память – в буфер клавиатуры и «забывают» о нем. Любая работающая программа может извлекать символ из буфера. Функция INKEY$ считывает символ из буфера клавиатуры и возвращает его. При этом возможны 2 ситуации:

1) буфер пуст (клавиши не нажимались) – функция возвращает пустую строку («»);

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

 


<== previous lecture | next lecture ==>
Подпрограммы. | Генерация случайных чисел.
lektsiopedia.org - 2013 год. | Page generation: 0.283 s.