Strawberry Prolog Нахождение элемента списка, следующего за данным

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

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

Strawberry Prolog

1. Нахождение элемента списка, следующего за данным. 2. Проверка списка на геометрическую прогрессию. Помогите решить, пожалуйста! Не дружу с этим ЯП.

Решение задачи: «Strawberry Prolog Нахождение элемента списка, следующего за данным»

textual
Листинг программы
find_next(X, [X,Y|_], Y) :- !.
find_next(X, [_|T], Y) :-
    find_next(X, T, Y).
 
geom_seq([X,Y,Z|T]) :-
    !,
    (Y * Y) =:= (X * Z),
    geom_seq([Y,Z|T]).
geom_seq(_).
 
test :-
    %Test = [1,2,3,4,5,6,7,8,9,0],
    Test = [1,2,4,8,16],
 
    find_next(8, Test, X3),
    write(X3), nl,
 
    geom_seq(Test),
    write('Yes'), nl;
    write('No'), nl.
 
?-test.

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

  1. Находим следующий элемент списка, используя findnext/3. Входные параметры: X (текущий элемент), [X,Y|] (список, состоящий из текущего элемента и следующего элемента, который мы и ищем) и Y (следующий элемент). Выходной параметр: Y.
  2. Находим следующий элемент списка, используя findnext/3. Входные параметры: X (текущий элемент), [|T] (список, состоящий из всех элементов, кроме первого) и Y (следующий элемент). Выходной параметр: Y.
  3. Решаем геометрическую прогрессию, используя geom_seq/2. Входные параметры: [X,Y,Z|T] (список, состоящий из текущего элемента, следующего элемента и следующего после него элемента) и Y (текущий элемент). Выходной параметр: Y.
  4. Решаем геометрическую прогрессию, используя geomseq/2. Входные параметры: (любой список) и Y (текущий элемент). Выходной параметр: Y.
  5. Создаем список Test, состоящий из чисел от 1 до 9 и затем от 16 до 0 с шагом -2.
  6. Находим следующий элемент списка, используя find_next/3. Входные параметры: 8 (текущий элемент), Test (список, состоящий из текущего элемента и следующего элемента) и X3 (следующий элемент). Выводим X3.
  7. Решаем геометрическую прогрессию, используя geom_seq/2. Выводим 'Yes'.
  8. Решаем геометрическую прогрессию, используя geom_seq/2. Выводим 'No'.

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы