Иллюстрированный самоучитель по Basic, вводный курс

Символы и строки. Функции ASC и CHR$.

Когда мы говорили о дружественном интерфейсе, то упоминали о так называемых строковых переменных, имена которых отличаются от обычных добавлением знака $. В таких переменных могут содержаться как отдельные символы, так и их последовательности длиной до 255 символов. К ним в Бейсике применимы специальные операции, о которых мы здесь и расскажем.

Для начала надо немного отвлечься, чтобы сообщить о том, что каждый символ, представленный на клавиатуре для компьютера переводится в числовой код. Эти коды объединены в стандартную международную таблицу кодов ASCII (см. Приложение). Коды с 0 по 32 не имеют изображения на экране и служат для функций управления (пробел, клавиши управления курсором и т. д.). Далее следуют знаки препинания, цифры, строчные и прописные буквы латинского алфавита и другие символы, которые вы можете найти на клавиатуре. Всего их 128. А еще 128 кодов (от 129 до 255) служат для расширения возможностей клавиатуры, например для генерации национальных символов – в нашем случае для кириллицы. Учить их наизусть ни в коем случае не надо – они есть в таблице. Но если ее не окажется под рукой, то вы должны определить код любого символа, используя специальные функции asc и chr$.


Функция asc определит нам код ASCII для первого символа этой строковой переменной и имеет следующую форму записи:

ASC(строковая_переменная)

Например:

N=ASC("F")
? " Код заглавной буквы F – "; N

В результате получим:

Код заглавной буквы F – 70

Еще пример.

Х$="YAHOO"
N=ASC(X$)
?N

В результате получим код первого символа, входящего в слово "YAHOO", т. е. "Y", который равен 89.

Замечание
Следует помнить, что коды заглавных и строчных букв – разные
.

Кроме того, если мы напрямую указываем в функции asc символ или текст, то он берется в кавычки (первый пример), а если это строковая переменная, то без кавычек (второй пример).

Функция chr$ определит нам символ, код которого указан в скобках. Форма записи функции:

CHR$(код)

Например:

CLS
1: INPUT "Введите любой код от 33 до 128"; N
IF N < 33 OR N >=128 THEN? "Обратите внимание на числовые границы для кода": GOTO 1
? "Символ с кодом "; N; " – это"; CHR$(N)

Обратите внимание на оформление программы. Сначала выполняется очистка экрана. Затем – запрос кода. Если он введен не в требуемых пределах, то программа возвращает человека к запросу – простейший, но очень полезный способ помочь пользователю.

221. Опробуйте представленную выше программу и узнайте, что за символы скрываются под кодами 33, 66, 99, 100, 128.

222. Примените функции asc и chr$ к примеру простейшей шифровки информации, когда символы вводятся побуквенно, а программа определяет их код, добавляет к ним 1 и выводит на экран вместо введенного символа символ с новым получившимся кодом. Слово для тестовой проверки такой программы – "CAT", после его побуквенного введения должно получиться "DBU".

223. Напишите программу-дешифратор для предыдущего задания. Тестовая проверка: из слова "DBU" должно получиться слово "CAT".

Эти программы грамотно работают для первых стандартизированных 128 кодов. Чтобы правильно работать, например, с русским текстом, надо знать коды строчных и прописных букв кириллицы, которые скрываются в интервале от 129 до 255. Поэтому еще одно задание.

224. Напишите программу, выводящую на экран символы, скрывающиеся за кодами 129-255. Распечатайте или выпишите коды строчных и прописных букв кириллицы.

Но, всякий раз вводить текст побуквенно – большая морока. Нельзя ли как-нибудь в Бейсике обрабатывать слова и строки? Конечно, можно. Для этого существуют специальные функции.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.