Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Пример программы на обработку строк




 

Program LexSortStr;

{Лексикографическая сортировка строки}

 

Procedure LexSort(Var st:String);

{Процедура сортировки слов по алфавиту.

Входное данное: st - строка текста из слов.

Выходное данное: st - упорядоченная строка из слов.}

 

Function Slovo(pn:Byte; st:String):String;

{Функция определения очередного слова строки.

Входные данные: pn - начальная позиция слова в строке,

st - строка из слов.

Выходное данное: Slovo - очередное слово строки.}

Var L,p:Byte;

Begin L:=Length(st); p:=pn;

{Цикл поиска очередного пробела}

While (p<=L)And(st[p]<>' ') {Пока не конец слова}

Do p:=p+1; {изменение позиции в строке}

Slovo:=Copy(st,pn,p-pn) {Выделение слова}

End;{Slovo}

 

Var L,p1,p2:Byte;

{L - длина строки,

p1,p2 - начальные позиции соседних слов в строке}

sl1,sl2:String;{Соседние слова в строке}

fp:Boolean; {Флаг перестановки слов}

Begin

L:=Length(st); {Определение длины строки}

Repeat

fp:=FALSE; {Нет перестановки}

p1:=1; sl1:=Slovo(p1,st); {Первое слово}

While p1+Length(sl1)<L {Пока sl1 не последнее

слово строки}

Do Begin

p2:=p1+Length(sl1)+1;{Позиция 2-го слова}

sl2:=Slovo(p2,st); {Второе слово}

If sl2<sl1

Then Begin {Обмен соседних слов}

Delete(st,p1,p2+Length(sl2)-p1);

Insert(sl2+' '+sl1,st,p1);

p1:=p1+Length(sl2)+1;

fp:=TRUE {Есть перестановка}

End

Else Begin {Переход к очередной паре слов}

sl1:=sl2; {Новое первое слово}

p1:=p2; {Новая позиция слова}

End;

End;

Until Not fp {До отсутствия перестановок соседних слов}

End; {LexSort}

 

Var st:String;

Begin

Write('Введите строку из слов: ');

ReadLn(st);

LexSort(st);

WriteLn('Упорядоченная строка: ',st);

WriteLn; ReadLn;

End.

 

 

Тема контрольной работы №2: Массивы записей.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных