Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Какой браузер Вы предпочитаете?

Internet Explorer
Mozilla Firefox
Opera
Netscape
Chrome
Другой


Результаты
Другие опросы

Всего голосов: 1673
Комментарии: 10


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 7. Алгоритмы обработки символьной информации
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

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

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

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$ обмениваются своими значениями.
 Содержание:

  • Пример 7.1.   Определить количество слов в заданном тексте.
  • Пример 7.2.   Определить, является ли заданное слово "перевёртышем"...
  • Пример 7.3.   B заданном тексте одно заданное слово везде заменить на другое заданное слово такой же длины.
  • Пример 7.4.   Заданную последовательность слов переупорядочить в алфавитном порядке...
  • Пример 7.5.   Проверить, имеется ли в линейной записи заданной математической формулы баланс открывающих и закрывающих скобок.
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]
u="http://www.kbsu.ru/~book/practice/2_7/u598.55.spylog.com";d=document;nv=navigator;na=nv.appName;p=1; bv=Math.round(parseFloat(nv.appVersion)*100); n=(na.substring(0,2)=="Mi")?0:1;rn=Math.random(); z="p="+p+"&rn="+rn;y=""; y+=""; y+="SpyLOG"; y+=""; d.write(y); if(!n) { d.write("


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать