Сортировка слов по алфавиту - Pascal ABC
Формулировка задачи:
задано слово. за основу алфавита взять буквы из этого слова. пользователь вводит слова и надо их отсортировать по заданному новому алфавиту.
например задано слово "солнце" алфавит состоит из букв:
1. С
2. О
3. Л
4. Н
5. Ц
6. Е
пользователь вводит слова сон, лес, слон, нос
программа должна выдать сон, слон, лес, нос
Решение задачи: «Сортировка слов по алфавиту»
textual
Листинг программы
var abc: String; function IsLess(const a, b: String): Boolean; var i, j: Integer; begin i:=1; j:=Length(a); if j>Length(b) then j:=Length(b); while (i<=j) and (a[i]=b[i]) do Inc(i); if i<=j then IsLess:=Pos(a[i],abc)<Pos(b[i],abc) else IsLess:=j>Length(a); end; const mn=10; var a: array [1..mn] of String; t: String; i, j, n: Integer; begin Write('Алфавит: '); ReadLn(abc); repeat Write('Строк [2..',mn,']: '); ReadLn(n); until n in [2..mn]; WriteLn('Строки:'); for i:=1 to n do begin Write(i:2,'> '); ReadLn(a[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if IsLess(a[j],a[i]) then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end; WriteLn('Сортировка:'); for i:=1 to n do WriteLn(i:2,'> ',a[i]); end.
Объяснение кода листинга программы
- Переменная abc инициализируется значением, которое пользователь вводит в процессе выполнения программы.
- Функция IsLess принимает два аргумента типа String и возвращает значение типа Boolean. Она сравнивает первые символы двух строк и возвращает true, если первая строка идет перед второй, и false в противном случае.
- Константа mn и переменная t инициализируются значениями 10 и пустой строкой соответственно.
- Переменная a инициализируется массивом из mn строк.
- Пользователю предлагается ввести строки для сортировки, начиная со второй строки и до конца массива. Строки вводятся с помощью функции ReadLn.
- В цикле for перебираются строки массива a. Для каждой строки выводится ее номер с помощью функции WriteLn.
- Во внутреннем цикле for проверяется, что текущая строка меньше предыдущей. Если это так, то происходит обмен строками с помощью функции IsLess.
- После завершения внутреннего цикла for выводится отсортированный массив строк с помощью функции WriteLn.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д