TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

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

 

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

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

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 := ' ' ; (пустая строка) 

Для данных символьного и литерного типов применимы операции сцепки (соединения, конкатенации) и сравнения (<,   >,   <=,   >=,  =,   <>).
Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с 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).
 


 Содержание:

Пример 7.1.   Определить количество слов в заданном тексте.
Пример 7.2.   Определить, является ли заданное слово "перевёртышем"...
Пример 7.3.   B заданном тексте одно заданное слово везде заменить на другое заданное слово такой же длины.
Пример 7.4.   Заданную последовательность слов переупорядочить в алфавитном порядке...
Пример 7.5.   Проверить, имеется ли в линейной записи заданной математической формулы баланс открывающих и закрывающих скобок.
Задачи для самостоятельного решения
Предыдущая глава.
Следующая глава
 

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz