Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
См. преамбулу "Алгоритмы символьной обработки"
Итак, формальная обработка текстов связана с взглядом на последовательности f как текст в некотором алфавите tChar, f Î tWord=NàtChar или слова - подпоследовательности (интервалы) текста. Примеры - операции вставки, исключения и замены слов, обычные при редактировании текстов.
В реальности, мы в этом пункте нигде далее не используем даже какие-либо специфические особенности типа tChar как множества символов. На деле, здесь tChar - произвольный тип.
type
tChar=?;
tPosition=?;
tWord=?;
![]() |
Вставка(var ОсновнойТекст:tWord;ВставляемоеСлово: tWord; Позиция:tPosition);
Варианты - слово вставляется после, начиная с и до заданной позиции.
procedure Исключение
![]() |
![]() |
Все остальные операции формальной обработки текстов можно свести к операциям вставки и исключения. Так, например, операцию замены можно свести к исключению из текста одного слова и вставки другого, операцию порождения текста можно трактовать как вставку в пустой текст, а операцию уничтожения текста - как исключение (удаление) содержимого текста "из себя".
Другое дело - нужно ли это делать при заданной реализации текста. См. далее - при реализации текста списком мы в действительности выражаем вставку через порождение, удаление и копирование символов текста.
В свою очередь, операции вставки и исключения слов сводятся к кратной вставке и исключения символов.
Вставка и замена при представлении слов (псевдодинамическими) массивами.
type
tIndex=1..nMax; {максимальная длина текста+1}
tPosition=tIndex;
tWord=record Content: array[tPosition] of tChar; {содержимое слова/текста}
Len: tPosition {фактическая длина текста}
end;
procedure Insert {ВставкаПосле}
(var T {ОсновнойТекст}:tWord; W {ВставляемоеСлово}: tWord; P {Позиция}: tPosition);
var
i, {текущая позиция в W}
k: tPosition; {=p+i, текущая позиция в T }
begin
i:=1;k:=p+1;
while (i<=W.Len) and (k<=nMax) do
begin {вставка i-го символа W}
{сдвиг текста вправо на 1, начиная с позиции k}
for j:= T.Len+1 downto k do T.Content[j+1]:= T.Content[j];
T.Content[k]:=V.Content[i];
inc(i);inc(k)
end; end;
procedure Exclude {Исключение}
(var T {ОсновнойТекст}:tWord; var V { Новое}: tWord; Start, Finish {НачалоИсключения,КонецИсключения}: tPosition);
begin
var
k: tPosition; {текущая позиция в T, k Î [Start,Finish] }
begin
V.Len:=0;k:=Start;
while k<=Finish do
begin {исключение i-го символа W}
inc(V.Len); V.Content[V.Len]:=T.Content[k];
{ удаление T.Content[k] - сдвиг текста влево на 1, начиная с позиции k+1}
for j:= k to T.Len do T.Content[j]:= T.Content[j+1];
inc(k)
end; end;
|
|
|
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!