Написать программу, которая бы перебирала базу данных об именах - Prolog

Узнай цену своей работы

Формулировка задачи:

написать программу, которая бы перебирала базу данных об именах и выводила бы первые 5 у которых длина менее 3 символов. (Длина сроки визначаетьься с помощью предиката len (string))

Решение задачи: «Написать программу, которая бы перебирала базу данных об именах»

textual
Листинг программы
  1. name(alex).
  2. name(kljlk).
  3. name(jkljkew).
  4. name(hhj).
  5. name(w).
  6. name(q).
  7. name(oiio).
  8. name("ej").
  9. name(p).
  10. name(qq).
  11. name(g).
  12. name(nm).
  13.  
  14.  
  15. len([],0):-!.%вычисление длины списка (слова)
  16. len([_|T], L) :- len(T, L1), L is L1 + 1.
  17.  
  18. get3(X) :- findall(X, (name(X), atom_length(X, LX), LX < 3), X).%получение всех атомов (имен) с сдлиной менее 3
  19.  
  20. gn(0, _, []) :- !.%получение n первых элементов списка
  21. gn(N, L, L):- len(L, LL), N > LL, !.
  22. gn(N, [H|T], [HStr|NewList]):- not(atomic(H)), string_to_list(HStr, H), N1 is N - 1, gn(N1, T, NewList).
  23. gn(N, [H|T], [H|NewList]):- N1 is N - 1, gn(N1, T, NewList).
  24.  
  25.  
  26. getWordList(X) :-  get3(AllWords), gn(5, AllWords, X).%получение требуемого результата

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы