Сортировка массива строк по алфавиту | Язык Паскаль

Сортировка массива строк по алфавиту

Отсортировать массив строк по алфавиту. Учитывать только первый символ каждой строки.

Решение данной задачи мало чем отличается от сортировки чисел, так как буквы алфавита в таблице кодов символов следуют друг за другом. Это значит, например, что буква 'a' имеет код на единицу меньше, чем 'b'. При этом в Паскале не обязательно получать коды букв, можно непосредственно сравнивать сами буквы.

Для того чтобы получить первую букву строки, являющейся элементом массива, надо учесть, что строка сама по себе является своеобразным массивом. Другими словами, мы имеем дело с двумерным массивом. Чтобы извлечь первый элемент вложенных массивов, надо указать второй индекс равный 1. Например, str[i][1], где i - это текущий элемент массива строк, а 1 - первый символ.

В задаче ниже выбрана сортировка пузырьком. Строки, начинающиеся с букв, которые стоят позже по алфавиту, постепенно переставляются в конец массива.

Программа на языке Паскаль: 

const 
    N = 5;

var 
    str: array[1..N] of string[20];
    s: string[20];
    i, j: byte;

begin
    for i:=1 to N do 
        readln(str[i]); 

    for i:=1 to N-1 do
        for j:=1 to N-i do
            if str[j][1] > str[j+1][1] then begin
                s := str[j];
                str[j] := str[j+1];
                str[j+1] := s;
            end;
 
    writeln;
    for i:=1 to N do 
        write(str[i], ' ');
    writeln;
end.

Пример выполнения программы:

one
two
three
four
five

four five one two three