Отсортировать массив строк по алфавиту. Учитывать только первый символ каждой строки.
Решение данной задачи мало чем отличается от сортировки чисел, т.к. буквы алфавита в таблице кодов символов следуют друг за другом. Это значит, например, что буква 'a' имеет код на единицу меньше, чем 'b'. При этом в Паскале не обязательно даже получать коды букв, можно непосредственно сравнивать сами буквы.
Для того чтобы получить первую букву строки, являющейся элементом массива, надо учесть, что строка сама по себе является своеобразным массивом. Другими словами, мы имеем дело с двумерным массивом. Чтобы извлечь первый элемент вложенных массивов, надо указать второй индекс равный 1. Например, str[i][1], где i - это текущий элемент массива строк, а 1 - первый символ.
В задаче ниже выбрана сортировка пузырьком. Строки, начинающиеся с букв, которые стоят позже по алфавиту, постепенно переставляются в конец массива.
const N = 10; 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 do write(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 six seven eight nine ten one two three four five six seven eight nine ten eight four five nine one six seven two three ten
Комментарии
https://pas1.ru/programming#co
https://pas1.ru/programming#comment-9198 - здесь сортировка слов по произвольному алфавиту.