ТОР 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: Массивы записей.
Не нашли, что искали? Воспользуйтесь поиском:
|