Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Операторы и функции обработки символьной информации
Типовые действия при работе с текстами: - выделить i-символ из текста; - найти позицию (позиции), в которой располагается заданный символ или цепочка заданных символов; -списать текст, удалив из него один символ или цепочку символов; -раздвинуть текст, вставив заданную последовательность символов между i-м и (i+1)-м символами исходного текста; -разделить текст на строки, если в качестве ограничителя строки в тексте используется какой-либо специальный символ; -разделить текст на строки, используя какое-либо специальное условие (например, ограничение на длину строки); -сравнить символы или цепочки символов; -выделить слово из текста; -определить, является ли буква гласной или согласной; -выделить из текста число и преобразовать его в числовую форму; -преобразовать число в символьную форму; -сформировать новый текст из частей исходного текста, удовлетворяющих заданному условию. Как и при обработке числовой информации, при работе с символами используются постоянные и переменные величины. Задать конкретную символьную величину можно в виде строки из символов, взятой в кавычки: “А”, “Алфавит”, “11АВ”, “АВС123ОРБД”. Символьная константа (строка, взятая в кавычки) может содержать не более 255 символов. Она может быть и пустой: А$=““. Символьные константы можно перечислять наряду с числовыми в операторе DATA, например, DATA 5, -1233, год, месяц. Имена символьных переменных образуются из символов путем присоединения в конце суффикса $. Символьная переменная может быть как простой переменной, так и переменной с индексом: А$, B$(5). Задание значений символьных переменных осуществляется при помощи операторов ввода INPUT или READ, DATA. В операторе DATA строка символов не заключается в кавычки. При использовании оператора INPUT значение символьной переменной при вводе должно заключаться в кавычки, если среди составляющих ее символов есть запятая. Код ASCII В компьютере каждый символ имеет числовой код, который преобразуется в последовательность единиц и нулей. Все символы содержатся в файлах в виде ASCII кодов (American Standard Code for Information Interchange – Американский Стандартный Код для Информационного Обмена). Этот код применяют во всем мире, что дает возможность международного обмена информацией. Первые 128 символов кода ASCII являются общим стандартом. Расширенный код включает в себя еще 128 символов, которые в разных версиях кода могут быть преобразованы в различные алфавиты, псевдографику и т.д. Например, буквы латинского алфавита имеют коды 65…122, русского – 128…175, причем: - коды прописных букв меньше, чем строчных; - буквы расположены в алфавитном порядке, поэтому их коды возрастают в том же порядке. Пример. “mister”> ”missis”, т.к. код буквы “t”=116, а “s”=115. Преобразования кода ASCII символьных переменных Для выполнения преобразований предусмотрены две функции: ASC (текст или имя переменной) - возвращает код ASCII для первого символа текстового значения; CHR$ (код) - возвращает символ, соответствующий коду ASCII. Примеры. PRINT ASC(“X”) Результат: 67 PRINT ASC(“K”) Результат: 75 PRINT CHR$(81) Результат: Q В среде QBASIC для обработки символьных данных используются встроенные функции. Рассмотрим их работу. Функция LEN Функция LEN определяет длину символьного выражения (включая пробелы). Общий вид функции: LEN (текст) где текст -текстовое выражение или имя переменной. Пример. Определение длины текстового значения. CLS 'Работа функции LEN TP$=” Изучаем QBASIC ” CRS$= ” На третьем курсе ” PRINT ”Длина ”; TP$; LEN (TP$) PRINT ”Курс № ”; CRS$; LEN (CRS$) END Результат: Длина Изучаем QBASIC 14 Курс № На третьем курсе 16 Выделение части текста Функция: LEFT$ Функция: LEFT$(символьное выражение, n) выделяет заданное количество (0 < n < 32767) левых символов из строки, заданной символьным выражением. Функция: RIGHT$ Функция: RIGHT$( символьное выражение, n) выделяет заданное количество правых символов из строки, заданной символьным выражением. Функция: MID$ Функция: MID$(строковая переменная, начало [, длина]) выделяет (или заменяет при использовании слева от знака присваивания) подстроку заданной длины (1 < длина < 32767) из строки, заданной символьным выражением, начиная с заданной позиции начало. Если длина подстроки не задана или больше длины остатка строки, то в подстроку включаются все символы, начиная с заданной позиции до конца символьной строки. Если длина подстроки равна нулю или начальная позиция больше длины строки, то результатом будет пустая подстрока. Пример. Применение функций LEFT$, RIGHT$, MID$ CLS EXAMPLE$ = “ХОЧУ ЗНАТЬ QBASIC ОЧЕНЬ ХОРОШО” PRINT LEFT$ (EXAMPLE$, 10) PRINT RIGHT$ (EXAMPLE$, 12) PRINT MID$ (EXAMPLE$, 12, 6) Результат: ХОЧУ ЗНАТЬ ОЧЕНЬ ХОРОШО QBASIC Использование функции MID$ для замены в данной строке одной подстроки на другую равной длины. Пример 1. A$ = “ЭЛЕКТРОСТАНЦИЯ” MID$(A$, 7, 8)= “ИфикациЯ” print A$: END Результат: ЭЛЕКТРИФИКАЦИЯ Пример 2. CLS TXT$ = “Москва, Россия “ Print TXT$ MID$ ( TXT$, 7, 9) =”штат Аляска “ Print TXT$ END Результат: Москва, Россия Москва, штат Аляска Функция SPACE$ Функция SPACE$ (n) формирует строку пробелов заданной длины (о< n< 32767) Пример. CLS FOR I = 1 TO 4 Y$ = SPACE$ (I): Print Y$; I NEXT I END Результат:
Функция поиска подстроки в строке Функция INSTR возвращает позицию первого вхождения одной строки внутри другой. Общий вид функции: INSTR ([начало, ]строковое выражение1, строковое выражение2 ) где: начало — задает позицию в строке, с которой начинается поиск. Если этот параметр не задан, то поиск начинается с первой позиции строковое выражение1; начало должно быть в интервале от 1 до 32767; строковое выражение1 — строка, в которой выполняется поиск; строковое выражение2 — строка, которая ищется. Функция INSTR возвращает 0, если: - строковое выражение2 не найдено; - если значение параметра начало больше длины текста; - длина строкового выражения 1 нулевая. Пример. Использование функции INSTR CLS EXAMPLE$ = “КАТЯ, ЖЕНЯ, АНЯ, МАША - МОИ ДРУЗЬЯ” PRINT “ИМЯ ЖЕНЯ НАЧИНАЕТСЯ С ПОЗИЦИИ”; INSTR (EXAMPLE$, “ЖЕНЯ”) END Результат: ИМЯ ЖЕНЯ НАЧИНАЕТСЯ С ПОЗИЦИИ 7 Функции различных вариантов написания текста Функция LCASE$ преобразует все буквы строки в строчные, а функция UCASE$ преобразует все буквы в прописные. Общий вид функций: LCASE$ (текст); UCASE$ (текст), где: текст - текстовое выражение (переменная), предназначенное для изменения регистра. Эти функции работают только с буквами латинского алфавита. Пример 1. CLS READ WORDS PRINT LCASE$ ( WORDS ); DATA “THIS IS THE STRING IN LOWER CASE “. END Результат: this is the string in lower case Пример 2. Определить пол человека, если дано полное английское написание фамилии. CLS DO INPUT “Введите имя: “, NM$ LOOP UNTIL LEN (NM$) > = 3 NM$ = UCASE$ (NM$) ‘Ищем MS, MRS, или MR для установки SEX$ IF INSTR (NM$, “MS“ ) > 0 OR INSTR (NM$, ”MRS“ )> 0 THEN SEX$ =”W”: PRINT “Леди“ ELSE IF INSTR (NM$, ”MR“) > 0 THEN SEX$ =”M“: PRINT “Джентльмен “ Результат: Введите имя: MRS TEYLOR Леди Функции преобразования типа данных Функция STR$ (числовое выражение) преобразует значение заданного числового выражения в символьную строку. Функция VAL (строковое выражение) переводит строковое представление числа в число. Пример. X$=“126”: S=1 P=S+VAL(X$) Результат: P = 127 Сравнение текстовых переменных Сравнивать можно не только числовые, но и текстовые выражения. Текстовые значения считаются равными, если они состоят из одной и той же последовательности символов. Пример. “Улица Мира”=“Улица Мира” или “Дом 1”< > “Дом 2” Когда QBASIC сравнивает два текста, он сравнивает ASCII коды каждого символа. Пример. “w”< “z” “Yes”> “No” Коды ASCII букв “w” - 119, “z” – 122, “Y” – 89, “N” - 78 Нет необходимости запоминать коды всех символов. Достаточно знать два правила: - коды прописных букв меньше, чем у строчных; - поскольку буквы расположены в алфавитном порядке, то и коды возрастают в том же порядке. Пример. “missis”< “mister” Операция конкатенации Операция конкатенации, обозначаемая знаком “+”, составляет из нескольких цепочек литер одну. Пример. a$=“редактор”: b$=“текстовый” c$=“графический” b$=b$+” “+a$ c$=c$+” “+a$ CLS LOCATE 10, 10 70 PRINT a$+”ы: ” + b$+”, ”+c$ END Оператор LOCATE устанавливает курсор на 10 строку в 10 столбец экрана. Строка 70 выводит на экран фразу: “редакторы: текстовый редактор, графический редактор” с позиции курсора. Популярное:
|
Последнее изменение этой страницы: 2016-04-09; Просмотров: 1124; Нарушение авторского права страницы