Списки - Prolog (226300)
Формулировка задачи:
Прошу помощи,в дописании кода!
Задача:Написать программу, которая позволит совершить разбор предложения, заданного в виде списка, на слова и отсортировать их в алфавитном порядке.
Вот мой код:
Листинг программы
- implement main
- open core,console
- domains
- list=string*
- predicates
- bubble_sort : (List,List).
- perm: (List,List).
- sep: (string, list, list).
- add_el: (string, list, list).
- clauses
- sep("", List, List):- !.
- sep(String, List, ListOut):-fronttoken(String, Word, Rest), add_el(Word, List, Lout), sep(Rest, Lout, ListOut),!.
- add_el(W, List, [W|List]).
- add_el("", List, List)
- bubble_sort ():-
- perm ([X,Y|T],):-X>Y,!.
- perm ([X|T,[X|T1):-perm(T,T1).
- bubble (L,Li):-perm (L,Lnew),!,bubble (Lnew,Li).
- bubble (L,L).
Решение задачи: «Списки»
textual
Листинг программы
- % Black Fregat
- implement main
- open core
- clauses
- run() :-
- Предложение = console::readLine(),
- СписокСлов = string::split(Предложение, " "),
- СортированныйСписок = list::sort(СписокСлов),
- console::write(СортированныйСписок),
- _ = console::readLine().
- end implement main
- goal
- console::run(main::run).
Объяснение кода листинга программы
- Сначала программа запрашивает у пользователя ввод строки.
- Затем эта строка разделяется на отдельные слова, которые сохраняются в переменной
СписокСлов
. - Следующим шагом список слов сортируется в порядке возрастания и сохраняется в переменной
СортированныйСписок
. - Наконец, отсортированный список выводится на консоль.
- После этого программа снова запрашивает у пользователя ввод строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д