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