Исправить программу - Prolog

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

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

Напечатать элементы списка, стоящие на четных местах и найти количество элементов списка, которые кратны 5. У меня задача сделана на 2 списка,а мне нужно чтоб все в одном выводило списке и ,числа вводили с клавиатуры а не заданные были
Листинг программы
  1. domains
  2. m=integer*
  3. n=integer
  4. predicates
  5. spisok(m,n)
  6. spisok2(m)
  7. clauses
  8. spisok([],0):-!.
  9. spisok([H|T],K):-
  10. H mod 5 = 0, spisok(T,K1),K=K1+1;
  11. spisok(T,K).
  12. spisok2([X,Y|Z]):-
  13. write(Y," "),spisok2(Z);
  14. !.
  15. goal spisok([10,4,50,5,3,45,56,15,7],L),write("Kolichestvo chisel kratnyh 5 = ",L),nl,nl,spisok2([1,2,3,4,5,6,7]).

Решение задачи: «Исправить программу»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. read_list(intl)
  7. nuc(intl,intl,int,int)
  8. task
  9.  
  10. clauses
  11. read_list([H|T]) :- readint(H),!,read_list(T).
  12. read_list([]).
  13.  
  14. nuc([],[],0,_).
  15. nuc([H|T],[H|R],Q,N) :- (N mod 2)=0,(H mod 5)=0, N1=N+1, nuc(T,R,S,N1), Q=S+H.
  16. nuc([H|T],[H|R],Q,N) :- (N mod 2)=0,(H mod 5)<>0, N1=N+1, nuc(T,R,Q,N1).
  17. nuc([H|T],R,Q,N) :- (N mod 2)<>0,(H mod 5)=0, N1=N+1, nuc(T,R,S,N1), Q=S+H.
  18. nuc([H|T],R,Q,N) :- (N mod 2)<>0,(H mod 5)<>0, N1=N+1, nuc(T,R,Q,N1).
  19.  
  20. task:- write("Enter list"),nl,read_list(A),nuc(A,R,S,1),write("List of elements on even position: "),write(R),nl,
  21. write("Summa of elements of five folds="),write(S),nl.

Объяснение кода листинга программы

  1. В коде используется язык программирования Prolog.
  2. Код содержит два предиката: read_list и nuc.
  3. Предикат read_list используется для чтения списка целых чисел.
  4. Предикат nuc используется для нахождения суммы элементов списка, которые находятся на четной позиции с определенным сдвигом.
  5. В коде присутствуют четыре различных варианта вызова предиката nuc, которые обрабатывают список различной длины и четности.
  6. Для решения задачи необходимо ввести список целых чисел, после чего программа выведет список элементов на четной позиции и сумму элементов пяти последовательных сдвигов.

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


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

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

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

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

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

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