Символы упорядочены по своим кодам так, что 'a' < 'z', 'A' < 'Z', ‘А’ < ‘Я’, ‘а’<’я’. Операции сравнения символов =,<>,<,>,<=,>= - действуют в соответствии со значениями кодов.
Сравнение строк – «лексикографическое», строки сортируются по алфавиту также как фамилии в вашем школьном журнале.
Пример. В исходном файле список учеников. Упорядочить список и записать в другой файл в виде пронумерованного списка. Не используем стандартные файлы ввода и вывода, поэтому в программе появилось описание текстовых файлов.
Const n=100; { максимальное число строк в списке}
Var a: array [1..n] of string[20];
Fi, Fo: text;
i, k , j: integer;
R: string[20];
Begin
{файл Sp.txt должен быть заранее создан}
Assign (Fi, 'Sp.txt'); Reset (Fi);
Assign (Fo, 'NewSp.txt'); Rewrite (Fo);
i:=0; {число строк}
While not Eof(Fi) do Begin {читаем до конца файла}
Inc (i);
Readln(Fi,a[i]);
End;
{получили массив из i строк}
{сортируем массив}
For k := 1 to (i-1) do
For j := 1 to (i-k) do
If a[j]>a[j+1] then Begin
R:=a[j];
a[j] := a[j+1];
a[j+1] := R;
end;
{пишем строки в файл, пронумеровывая}
For k:=1 to i do Writeln(Fo, k, '. ', a[k]);
Close(Fo); {обязательно закрываем файл}
End.
| Исходный файл sp.txt
| Файл результатов Newsp.txt
|
| Яковлев В.В
Абрамов П.П.
Петров Н.Н.
Сидоров С.С.
Михалов М.М.
| 1. Абрамов П.П.
2. Михалов М.М.
3. Петров Н.Н.
4. Сидоров С.С.
5. Яковлев В.В
|
Несколько полезных приемов обработки строк