Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatics.doc
Скачиваний:
6
Добавлен:
21.08.2019
Размер:
1.33 Mб
Скачать

1.4. Строки

Идентификатор символьной переменной (или функции) должен иметь "суффикс" $, либо предопределен оператором DIM, либо опера-тором DEFSTR. Например, строка DEFSTR U-V определяет все иден-тификаторы, начинающиеся на буквы u, v как имена объектов строко-вого типа (длина такой строки, в общем, произвольна, но часто огра-ничивается 128 символами). Оператор DIM text AS string*12, напри-мер, определяет идентификатор text как имя строковой переменной, содержащей не более 12 символов. Строковая константа содержит произвольный текст, заключенный в кавычки. Ввод с клавиатуры и вывод на экран строк осуществляется операторами INPUT и PRINT без особенностей. Приведем неполный список функций, обрабатыва-

ющих строки.

+ - сложение (конкатенация) строк,

ASC : символ → код,

CHR$ : код → символ,

HEX$(x) возвращает строку 16-чного представления числа х,

INSTR([i], x$, y$) возвращает номер позиции, где впервые сим-

вол из y$ совпадает с символом из x$, начиная с позиции i.

LEFT$(x$, i) возвращает i левых символов из x$.

RIGHT$(x$, i) возвращает i правых символов из x$.

LEN возвращает количество символов строки.

MID$(x$, i, j) выделяет подстроку в x$ длиной в j символов, на-

чиная с i-й позиции (если аргумент j отсутствует, функция

возвращает все символы строки, начиная с i – го).

STRING$(i, j) возвращает строку из i (одинаковых) символов

с кодом j (можно вместо кода указывать сам символ).

STR$ : преобразует число в строку.

VAL : преобразует строковое выражение в число.

UCASE$, LCASE$ преобразуют элементы строки к верхнему и

нижнему регистру.

Полезны также два оператора LSET x$ = y$ и RSET x$ = y$, передающие y$ в x$ с выравниванием фиксированной длины соотве-тственно по левому и правому краю. Эти два оператора необходимы также для заполнения поля буфера при работе с файлами произвольно-го доступа (см. п.11).

Функция MID$ единственная, которой разрешено находиться слева от оператора присваивания (с целью замены части строки). Нап-ример, если x$ = "крот", то операция MID$(x$, 2, 3) = "лоп" заменяет в x$ последние 3 буквы, так что теперь x$ = "клоп".

Функция INKEY$ возвращает символ нажатой в данный момент клавиши клавиатуры - это бывает полезно для вмешательства в прог-

рамму в процессе ее работы.

1.5. Операторы def, dim, пользовательский тип

Уже отмечено ранее, что стандартные типы данных могут быть предопределены с помощью оператора DEF. Для определения отдель-ной переменной (или константы) полезно использовать оператор DIM [AS] (см. п. 4 - предопределение строк). Для определения сложного (пользовательского) типа следует использовать оператор TYPE. Опре-делим, например, переменную типа PERSON, содержащую имя, воз-

раст, адрес и телефон:

TYPE PERSON

NAM AS STRING * 10

AGE AS INTESER

ADRESS AS STRING * 20

TELEPHONE AS LONG

END TYPE

Теперь можно определить целый пакет (массив) из 11 переменных ти-

па PERSON (индексация начинается с нуля, см. п. 9):

DIM KNOWN(10) AS PERSON

Каждая позиция (поле) типа отделяется от имени переменной сложно-го типа точкой. Например, изменить телефон переменной KNOWN c

индексом 7 можно операцией KNOWN(7).TELEPHONE = 2317580.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]