Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Операторы и функции обработки символьной информации



Типовые действия при работе с текстами:

- выделить 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; Просмотров: 1081; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.033 с.)
Главная | Случайная страница | Обратная связь