Доставка цветов в Севастополе: SevCvety.ru
Главная -> Справочник по алгоритмам

0 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

мощью ряда специальных функций (см. табл. 2.10).

Массивы (одномерные и двумерные) в бейсике-80 задаются, как н в других версиях языка бейсик, именем переменной и номерами строк и столбцов в скобках: например, А2(3,4) задает переменную массива А2 с индексами 3 и 4. Задание памяти под массив обеспечивается оператором DIM. В строчных переменных массивов необходил(Ъ резервировать и число знаков в строке. Например, оператор DIMA )2((10,20,25) резервирует память под строчную переменную из массива АП.

Приоритет выполнения операций в бейсике-80.

Функция CSNG(X) вычисляет выражение X с обычной точностью (до 7 десятичных позиций).

Пример.

10 A# = l.DO/3.DO 20 PRINT CSNG(A#)/2, А#/2 RUN

.1666667 .166666666666667

Функции CVI, CVS, CVD преобразуют строки в числа: CVI - 2-символьную строку в целое число, CVS - 4-символьную строку в число с обычной точностью и CVD - 8-символьную строку в число с двойной точностью. Они используются для восстановления числовых значений из поля буфера

Операция

Пример

1. Выражение в скобках

(АЧ-В)

2. Возведение в степень

3. Отрицание (обозначается знаком -)

4. Умножение (*) и деление (/)

А*В или А/В

5. Целочисленное деление (знак \) с преобразованием

делимого, делителя и результата в целые числа

6. Модуль числа

AMOD

7. Сложение и вычитание

А + В или А -В

8. Операции отношения

А> В и др.

Самый низкий приоритет у логических операций. Они выполняются в порядке их наименования: НЕ, И, ИЛИ, исключающее ИЛИ, логическая импликация и логическая эквивалентность.

Арифметические и логические выражения в бейсике-80 строятся по правилам, типичным для других версий (они описаны выше).

Специальные функции языка бейсик-80 - такие функции, которые характерны для данной версии бейсика и имеют те или иные отличия от функций бейсика, описанных ранее.

Арифметическая функция CDBL(X) изменяет тип выражения X на представление с двойной точностью с плавающей точкой. В этом формате результат выдается с точностью до 16 десятичных цифр.

Пример.

10 А# = 1/3 20 B#=CDBL(l/3) 30 PRINT А#, ВФ 40 END

.333333 .333333333333333

Строчная функция CHRC! (Выражение) приводит выражение к целому числу в интервале от О до 255. Арифметическая функция CINT{X) округляет выражение (X) до целого значения.

Пример.

10 INPUT А, В, С 20 PRINT {CINT{A + B + C)/3) 30 END RUN ? 45, 24, 77 49

файла прямого доступа и являются обратными функциями МК1П, MKSn и МКОП

Функция INP (Выражение) вводят значение байта со входного порта, номер которого указан целочисленным выражением (от О до 255).

Функция ШРиТП (Выражение; Номер файла) читает заданное количество символов из указанного номером файла.

Пример. В программе

10 OPEN "I" Ф2, ":С1" 20 PRINT INPUTH (10,2) 30 CLOSE #2

40 END •

RUN 123456789 (BK) 123456789

строка 20 печатает первые 10 символов файла #2, а оператор CLOSE закрывает файл.

Функция INSTR ищет первое вложение второй строки ВП в первой строке АП и определяет порядковый номер второй строки. Она формирует О при трех условиях: если I больше длины АП, если ВП не может быть найдена н если АП не содержит символа. Вид записи функции:

INSTR([1,] Строчное выражение АП,. Строчное выражение ВП).

Пример.

10 АП ="RANDON NUMBER

SUBROUTINE" 20 Bn="R"

30 PRINT INSTR (АП, ВП) 40 PRINT INSTR (2, АП, ВП) 50 END RUN



функция INT(X) отыскивает наибольшее целое значение, меньшее или равное указанному выражению или числу X. Например, если B = INT(15,021). то распечатка В дает значение 15.

Строчная функция LEFTD (Строчная переменная. Выражение) находит значение строки ХП и определяет 1 левых символов.

Пример.

10 ХП ="WHITE, SMITH, JONES,

BLACK. GREEN" 20 Yn = LEFT П (ХП, 11) 30 PRINT vn

WHITE. SMITH

Строчная функция LEN(Xn) подсчитывает количество символов строки ХП, включая непечатаемые символы и пробелы.

Функция LOC в файле прямого доступа определяет текущий номер последней записанной или прочитанной записи. В последовательном файле функция LOC определяет число секторов, прочитанных или записанных со времени выполнения последнего оператора OPEN. Функция записывается в виде

LOC (Номер файла) Пример.

10 OPEN "R", #3,:Fl:RANDON 20 GET #3, 44 30 PRINT LOC(3) 40 END

Функция LOF (Номер файла) вычисляет число записей в файле прямого доступа, а в файле последовательного доступа вычисляет число секторов с данными (128 байт на сектор) в файле.

Функция M1DQ (ХП, I [, J]) проверяет строку ХП и выделяет ее правые символы, начиная с позиции, заданной значением 1. Здесь I и J -"целые числа от О до 255. Если указан аргумент J, определяется J символов, начиная с позиции I. Если I больше, чем LEN(Xn), то МЮП формирует пустую строку. Если J больше числа символов в ХП справа от 1-й позиции или J не указано, функция МЮП формирует остаток строки.

Пример.

10 ХП ="JOHN J. JONES" 20 PRINT МЮП (ХП, 10. 3) 30 END

.Функция MKin. MKSn и MKDH преобразовывают данные как числовые значения в 2-, 4- или 8-байтные строки соответственно. МК1 П используется для преобразования целого значения, MKSH - для преобразования значения с плавающей запятой с обычной точностью и МКОП - для преобразования значения с плавающей запятой с двойной точностью.

Функция ОСТ П (Выражение) определяет строку восьмеричных цифр, представляющую значение целого аргумента (выражения).

Функция РЕЕК (Выражение) читает один байт памяти в указанном месте, а функция РОКЕ (см. далее) записывает один байт в указанное место памяти. Например:

PRINT РЕЕК (0FABH) 200

где 200 - прочитанный байт из места 0FABH памяти.

Функция POS (Целое число или Выражение) указывает позицию курсора после последнего оператора PRINT. В записи POS(I) аргумент I является фиктивным,, самая левая позиция курсора соответствует 1=1.

Функция RANDOMIZE запрашивает ввод нового случайного числа, которое является начальным для функции генерации случайных чисел с равномерным распределением RDN. Если функция RANDOMIZE не используется, то одна и та же последовательность случайных чисел будет повторяться каждый раз. Функция RANDOMIZE записывается в виде

RANDOMIZE (Выражение)

причем начальное случайное число задается выражением (либо константой или переменной).

Функция RIGHTH (Строка, Целое I) определяет I правых символов строки ХП. Если 1 = 0, выдается пустая строка, а если I превышает длину строки ХП, то выдается вся строка.

Пример.

10 An="JOHN J. JONES" 20 ХП= RIGHTH (АП, 8) 30 PRINT ХП 40 RUN J. JONES

Функция SPACEH- (Целочисленное выражение) формирует в строке пустой интервал, состоящий из пробелов, число которых задается значением целочисленного выражения. Функция SPS (Целое число) совместно с оператором PRINT также формирует пустой интервал из N пробелов (N - целое число).

Функция STRINGH (Целое, Целое) определяет строку, в которой заданный символ повторяется указанное число раз. В записи STRINGD (Целое, Строчное выражение) заданное число раз повторяется первый символ строчного выражения. Функция STRH (Выражение) формирует строку десятичных знаков, которая представляет значение целочисленного выражения.

Пример.

10 FOR 1=0 ТО 9 20 АП=АП+МЮП (STRH (I), 2) 30 NEXT I 40 PRINT АП RUN

0123456789



функция USRN задает обращения к определенным пользователем подпрограммам, записанным на языке ассемблера, фортран-80 или ПЛ/М-80. Оператор DEF USRN определяет начальный адрес соответствующей подпрограммы USRN. Аргумент N может быть любым целым от О до 24; если он не указан, полагается N = 0. Символ типа обозначает тип результата. Если обозначение типа отсутствует, результат определяется как целое число в регистрах Н и L микропроцессора.

Функция VAL (Строка) определяет численное значение строки. Пример. 10 INPUT AG 20 A1=VAL (АП)*52 30 PRINT Al RUN

? 4 (т. е. АР =4) 208 (т. е. имеем 4*52)

Специальные директивы и операторы.

Под специальными директивами и операторами языка бейсик-80 подразумеваются специфические именно для него директивы и операторы. Ниже они даны в алфавитном порядке.

Директива- ATTRIB изменяет атрибуты файлов на дисках или защищает любой файл от записи, стирания или изменения имени. Защита файла выполняется директивой в виде

ATTRIB :F Номер дисковода, "Имя файла". "WI"

Запись, стирание и изменение ранее защищенного файла обеспечивается директивой

ATTRIB :F Номер дисковода, "Имя файла", "W0"

Директива AUTO обеспечивает автоматическое присвоение номера каждой строке программы. Она вводится в виде

AUTO Приращение номера [, Номер первой строки

Так, директива AUTO 50, 300 задает номера строк с приращением 50, начиная со строки 300, т. е. строки будут иметь номера 300, 350, 400, 450 и т. д. По умолчанию, т. е. при вводе только директивы AUTO, приращению и номеру первой строки присваиваются значения 10. Если задаваемый директивой AUTO номер строки имеется в программе, он отмечается знаком *.

Директива CLEAR обнуляет все поре-•менные и массивы, определения функций и закрывает файлы. Символьные переменные при этом становятся пустыми строками. Эта директива может записываться в виде

CLEAR [Выражение [Адрес]]

Численное значение выражения указывает пространство для строк в байтах. Например, директива CLEAR 2000, 0D000H резервирует (высвобождает) 2000 байт для строк и не позволяет использовать адреса памяти выше 0D000H.

Директива CLOSE [Номер] закрывает файл с заданным номером. Если аргумент (номер) не указан, директива CLOSE за-

крывает все файлы. Все файлы закрывают также директивы END, NEW, MERGE, LOAD, RUN (без F).

Директива DEF FN(X) задает функцию пользователя. Здесь FN - имя функции, X - аргумент (функция может быть с любым числом аргументов).

Директива DELETE НС, где НС - номер строки, уничтожает одну строку с заданным номером, директива DELETE -НС уничтожает строку с номером НС и все предшествующие ей строки. Директива DELETE НС1, НС2 уничтожает строки с номерами от НС1 до НС2.

Директива DIR воспроизводит имена, число блоков и длины (в байтах) файлов, сохраняемых на указанном после нее диске.

Оператор END останавливает выполнение программы и закрывает все файлы. Переменные при этом сохраняют свои значения. Оператор STOP действует как END, но файлы не закрываются и при его исполнении появляется сообщение

BREAK IN НС

(т. е. останов в строке НС). Оператор END рекомендуется ставить в конце программы, хотя это не обязательно.

Оператор ERROR "Выражение" имитирует происхождение ошибки. Если ERROR выполняется с номером, который не соответствует сообщению об ошибке, будет напечатано сообщение

UNPRINTABLE ERROR

Оператор FIELD# «Номер файла» используется для назначения памяти в одном из шести 128-байтных буферов файлов прямого доступа.

Для чтения определенной записи из дискового файла в 128-байтный буфер служит оператор

GET[#] Номер файла [, Номер записи]

Оператор условных переходов в бейсике-80 может иметь вид

IF Выражение THEN Инструкция ELSE Инструкция

Например, оператор

50 IF Х = 0 THEN А = 5 ELSE А = 20

означает, что если Х=0, то А = 5, иначе А=20.

Оператор .

KILL Строчное выражение

служит для исключения из дисковой памяти программы. Он также уничтожает заголовок программы в оглавлении.

Оператор INPUT помимо обычного применения (задания численных значений переменной или переменным списка) используется в составном операторе LINE INPUT. Последний читает целую строку данных и присваивает ее указанной строчной переменной в качестве значения. Данные могут быть прочитаны из файла на диске или введены



0 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78



0.0211
Яндекс.Метрика