[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Алгоритмы обработки символьной информации



  Символьная информация - это информация, отображаемая  
с помощью символов (букв, цифр, знаков операций и др.).
IBM-совместимые компьютеры обрабатывают 256 различных символов, каждый из которых кодируется одним байтом.

Соответствие символов и байтов задается таблицей кодировки, в которой для каждого символа указывается соответствующий байт.

Символы с кодами от 0 до 127 построены по стандарту ASCII (American Standard Code for Information Interchange - Американский стандартный код обмена информацией,  читается  "аски"). Вторая половина таблицы (коды 128 ... 255) в нашей стране содержит русские буквы (кириллицу) и символы псевдографики.
 
Коды 0...127 
(кодировка ASCII) 
Коды 128...255 
(модифицированный 
альтернативный вариант) 
Для того, чтобы определить по этим таблицам код того или иного символа, нужно сложить номер строки с номером столбца, в которых он расположен. Так, код цифры 5 равен 05+048 = 053.

Символьная информация в алгоритмах и программах описывается данными двух типов: символьным и литерным. Они отличаются друг от друга тем, что значением символьной переменной является один символ, а литерной - строка символов.

Типы данных, используемые для обработки
символьной информации
Язык
Тип, ключевое слово
Примеры использования
Школьный 
АЯ
Символьный 
сим
  a:=" f " ; b:="+" ; c:="5" 
  If  a="  " then k:=k+1 
Литерный 
лит
 t:="Литерная величина" 
 s:=" " (пустая строка) 
Turbo Pascal
Символьный 
Char
 a:=' f ' ; b:='+' ; c:='5' ; 
 If a='  ' then k:=k+1 
Литерный 
String
 t:='Литерная величина' ; 
 f:=' ' ; (пустая строка) 
QBasic
Литерный
 t$:="Литерная величина" 
 f$:=" " (пустая строка)
Для данных символьного и литерного типов применимы операции сцепки (соединения, конкатенации) и сравнения (<, >, <=, >=, =, <>).
Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов.
Так, строка "стол" меньше строки "стул", строка "teacher" больше строки "pupil", а строка "А" меньше строки "АВ".
 


Функции и команды обработки строк

Школьный АЯ

Функция длин(S) Возвращает количество символов в строке S.

Операция вырезка позволяет "вырезать" из строки группу соседних символов. Вырезка из строки S подстроки, начинающейся с i-ой и кончающейся j-ой позицией, обозначается S [ i : j]. Вырезка из строки S одного i-го символа обозначается S[i].

Команда присваивания вырезке S[N : M] := SubS. Часть строки S, начиная с позиции N и кончая позицией M, заменяется на подстроку SubS такой же длины.
 
 
Turbo Pascal

Процедуры

Delete(Var S:String; N,M:Integer) Удаляет M символов из строки S, начиная с позиции N.

Insert(SubS: String; Var S:String; N:Integer) Вставляет подстроку SubS в строку S, начиная с позиции N.

Str(X:Integer; Var S:String) Возвращает представление числа X в его символьной форме S.

Val(S:String; Var X, Code: Integer) Возвращает представление символов строки S в ее числовой форме X. Параметр Code содержит признак ошибки преобразования (если Code = 0, ошибки нет).

Функции

Chr(X:Byte): Char Возвращает символ с заданным порядковым номером X.

Сoncat(S1[, S2, ..., SN]): String Выполняет сцепку (конкатенацию) последовательности строк.

Copy(S: String; N,M: Integer): String Возвращает подстроку из строки S, начиная с позиции N и длиной M символов.

Length(S: String): Byte Возвращает количество символов в строке S.

Ord(X: Char): LongInt Возвращает порядковый номер символа X в таблице кодов символов.

Pos(SubS, S: String): Byte Возвращает номер позиции, начиная с которой в строке S располагается подстрока SubS (если значение функции равно нулю, то S не содержит SubS).
 

QBasic

Функции

ASC(X$) Возвращает порядковый номер символа X$ в таблице кодов символов.

CHR$(N) Возвращает символ с заданным порядковым номером N.

INSTR([N,] X$,Y$) Возвращает номер позиции строки X$, начиная с которой в ней размещается подстрока Y$. Если подстрока не найдена, то значение функции равно нулю. Поиск подстроки ведется с позиции N, а если N не задано, то с начала строки.

LEFT$(X$,N) Возвращает подстроку, составленную из первых N символов строки X$.

LEN(X$) Возвращает количество символов в строке X$.

MID$(X$,N [,M]) Возвращает подстроку, составленную из M символов строки X$, начиная с позиции N (если параметр М опущен, то возвращаются  все символы, начиная с позиции N).

RIGHT$(X$,N) Возвращает подстроку, составленную из последних N символов строки X$.

STR$(N) Возвращает представление числа N в символьной форме.

VAL(X$) Возвращает представление символов строки X$ в числовой форме.

Операторы

MID$(X$,N,M) = Y$ Часть строки X$, начиная с позиции N, длиной M позиций заменяется на строку Y$. Длина X$ не изменяется.

SWAP X$,Y$ Строки X$ и Y$ обмениваются своими значениями.
 

Содержание:

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]