Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функции для обработки символьных переменных

QBASIC имеет значительное число функций для работы с символьными переменными.

Примечание: В данном разделе все символьные переменные будут обозначены символом С, а числовые переменные символом N.

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

Обмен данными: SWAP. Синтаксис функции SWAP C1, C2

Перевод символов таблицы ASCII в число и чисел в код ASCII: ASC, CHR$.

Синтаксис функции ASC: ASC(C).

Функция ASC выделяет из строки символов первый символ и возвращает ASCII код числа. Например, ASC(Азбука) – результат число 128 – код русской буквы А.

Синтаксис функции CHR$: CHR$(N)

Функция CHR$ возвращает символ, соответствующий коду числа в таблице ASCII. Например, CHR$(129) – результат - символ Б.

Перевод чисел из машинного представления в строку символов и из символьного представления в числовое: STR$ и VAL.

Синтаксис функции STR$: STR$(N).

Функция STR$ переводит число в строку символов.

Синтаксис функции VAL: VAL(C).

Функция VAL переводит строку символов в число.

Перевод числового аргумента любого типа в строки символов: BIN$, OST$, HEX$;

Функция BIN$(N) переводит число в двоичный код.

Функция OST$(N) переводит число в восьмеричный код.

Функция HEX$(N) переводит число в шестнадцатеричный код.

Замена числовых данных их символьными эквивалентами и преобразование символьных эквивалентов в числовые данные: MKI$, MKL$, MKS$, MKD$, CVI, CVL, CVS, CVD. При переводе чисел в символьные эквиваленты программа добавляет необходимое число байтов и заключает содержание переменной в кавычки.

Функция MKI$(N) переводит числовую переменную целого типа одинарной длины в символьный двухбайтовый эквивалент.

Функция MKL$(N) переводит числовую переменную целого типа удвоенной длины в символьный четырехбайтовый эквивалент.

Функция MKS$(N) переводит вещественную переменную одинарной точности в символьный четырехбайтовый эквивалент.

Функция MKD$(N) переводит вещественную переменную удвоенной точности в символьный двухбайтовый эквивалент.

Функции CVI(С), CVL(С), CVS(С) и CVD(С) выполняют действия, обратные действию функций MKI$, MKL$, MKS$, MKD$, то есть переводят символьные эквиваленты числовых переменных в числовые переменные соответствующего типа.

Функции для обработки строк: LEN, LEFT$, RIGHT$, MID$, LTRIM$, RTRIM$, INSTR; LCASE$, UCASE$.

Функция LEN(C) возвращает длину строки.

Функции LEFT$(C,N), RIGHT$(C,N) – выделяют из строки символов N символов слева и справа, соответственно.

Функция MID$(C,N1,N2) – выделяют из строки символов N1 символ с позиции N2. Например:

C1 = MID$("Шумит, гудит зеленый лес",8,5)

PRINT C1

RUN

гудит

Функция MID$ выделяет из строки "Шумит, гудит зеленый лес" 5 симво-лов с восьмой позиции - слово “гудит”.

Функция MID$ может использоваться и для замены части текста. Синтаксис функции при замене текста:

MID$(C, N1, N2) = C1

В данном случае в строке С заменяется N2 символов строкой С1, начиная с позиции N1. Если длина строки С1 больше N2, то лишние символы отбрасываются. Если длина строки С1 меньше N2, то недостающие символы заполняются пробелами. Длина строки С при этом не изменяется. Результат замены сохраняется в строке С. Например:

C$="Отражается месяц в пруду"

MID$(C$, 12, 5) = "башня"

PRINT C$

RUN

Отражается башня в пруду

Функция LTRIM$(C) и RTRIM$(C) отбрасывают лидирующие и хвостовые пробелы, соответственно.

Функция LCASE$(C) переводит прописные буквы в строчные.

Функция UCASE$(C) переводит строчные буквы в прописные.

Функция INSTR([I,]С1, С2) осуществляет поиск первого вхождения строки символов С2 в строку символов С1 и возвращает номер позиции, с которой строка символов С2 входит в строку символов С1. Если вхождение не найдено, то возвращается значение 0. Поиск может осуществляться с начала строки или с позиции I, если I отсутствует, то поиск начинается с первой позиции.

C$ = "Светит месяц, светит ясный"

C1$ = "месяц"

n = INSTR(1,C$, С1$)

PRINT n

RUN

Функция INSTR(I,C,C1) осуществляет поиск первого вхождения искомой строки (С2), в строку С1:

C$ = "светит месяц, светит ясный"

C1$ = "светит"

n = INSTR(C$, С1$)

PRINT n

RUN

Для поиска других вхождений необходимо организовать цикл.

Функции генерирования строк символов: SPACE$, STRING$

Функция SPACE$(n) генерирует строку из n пробелов.

Функция имеет два формата.

В первом формате: STRING$(n,C), - функция выделяет из строки С первый символ и генерирует строку содержащую n этих символов.

Во втором формате: STRING$(n,Cod), - функция генерирует строку из n символов, определяемых кодом Cod. Здесь Cod – код кодовой таблицы ASCII. Cod может принимать значения от 31 до 255.

 

<== предыдущая лекция | следующая лекция ==>
Вывод символьных переменных | Типовые процедуры обработки символьных переменных
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 441; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.