Сортировка массива строк по алфавиту в Pascal
Отсортировать массив строк по алфавиту. Учитывать только первый символ каждой строки.
Решение данной задачи мало чем отличается от сортировки чисел, так как буквы алфавита в таблице кодов символов следуют друг за другом. Это значит, например, что буква '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