Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Prolog Задача о товаре https://www.cyberforum.ru/ prolog/ thread1174595.html
Помогите написать задачу на прологе. Вот условие: Имеется горсть из N монет различного достоинства C1,C2,....,Cn (количество и достоинство указываются как факты). Определить, можно ли на эти...
Нужен Ваш совет Prolog
Ребята,нужен совет.Есть лабораторные работы(методичка прикреплена) и я хочу послушать ваши предложение о том, на каком языке программирования их лучше и проще делать.Есть ограничения: 1.Нельзя...
Prolog Быстрая сортировка строк и чисел (пролог5.2) (добить код. см. внутри) https://www.cyberforum.ru/ prolog/ thread1174183.html
Программа сортирует по убыванию только строки(т.е.: ч, ф , ds, a, 3, 11, 1), а нужно строки и числа( ч, ф , ds, a, 11, 3, 1) predicates nondeterm fastsort(slist,slist) nondeterm...
Prolog Создание списка зарплат сотрудников Пытаюсь собрать список зарплат сотрудников, но ухожу в бесконечную рекурсию. person('иванов', 1500). person('петров', 2000). person('сидоров', 1200). person('иванов', 1200). lst():- ... https://www.cyberforum.ru/ prolog/ thread1174158.html
Prolog Задача о 3 ферзях и 2 ладьях: найти такие позиции, чтобы все поля оказались под боем
нужно решить задачу по расстановке на шахматную доску 3 ферзя и 2 ладьи.найти такие позиции,чтобы все поля оказались под боем. есть решённая задача о 8 ферзях,но пролог я изучаю не так давно,и...
Prolog Запросы в прологе на выборку https://www.cyberforum.ru/ prolog/ thread1173959.html
Здравствуйте! Помогите составить такой запрос: Есть база данных с правителями: yearsofrule(michail_federovich, 1613, 1645). yearsofrule(aleksey, 1645, 1676). yearsofrule(fedor, 1676, 1682)....
Prolog Чтение символов из файла https://www.cyberforum.ru/ prolog/ thread1172813.html
Всем привет. Может кто может подсказать как изменить программу, чтобы символы вводились не с клавиатуры, а брались из заранее созданного файла? domains list=char* predicates nondeterm...
Prolog - Предикат, заменяющий два подряд идущих одинаковых элемента одним Prolog
Ребята нужна помощь, работаю в Visual Prolog v.5.2. Видел ранее созданные темы, код запустить не могу
Prolog Нахождение цифрового корня Помогите плиз написать решение нахождения этого цифрового корня, а то я новичок в прологе и с синтаксисом не очень дружу, а тут нужно уже парсить цифры... Рассмотрим произвольное натуральное число и... https://www.cyberforum.ru/ prolog/ thread1172486.html Prolog Работа с БД Доброго всем времени суток! Мне нужна помощь в сортировке БД, а именно у меня даны фамилии студентов, предмет и оценка за экзамен по этому предмету. Нужно вывести всех студентов сдавших сессию с... https://www.cyberforum.ru/ prolog/ thread1171990.html
Prolog Не считается итоговый результат, выводит X = 0+1+1, а не 2
только начинаю осваивать пролог. использую swi prolog. описал clauses length1(,0) :- !. length1(,X) :- length1(T,X1), X = X1 + 1. запрашиваю результат ?- length1(,X). X = 0+1+1.
Prolog Построить массив, где элементы с нечетными порядковыми номерами образуются как разница https://www.cyberforum.ru/ prolog/ thread1171597.html
Построить массив С (N) (N-заданное), где элементы с нечетными порядковыми номерами образуются как разница А (N)-В (N), а элементы с четными порядковыми номерами образуются как А (N) + В (N), где А...
Модератор
Эксперт функциональных языков программированияЭксперт Python
33869 / 18898 / 3979
Регистрация: 12.02.2012
Сообщений: 31,679
Записей в блоге: 13
20.05.2014, 18:13 0

Описать рекурсивную функцию для заполнения одномерного массива - Prolog - Ответ 6200964

20.05.2014, 18:13. Показов 684. Ответов 1
Метки (Все метки)

Ответ

Не претендую на красоту, но в TP работает:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
domains
int=integer
intl=int*
 
predicates
arr(int,int,intl)
uarr(int,int,intl)
member(int,intl)
setof(intl,intl)
take(intl,int,intl)
 
clauses
 
%% Взять N элементов с начала списка
 
take(_,0,[]) :- !.
take([H|T],N,[H|Q]) :- N1=N-1, take(T,N1,Q). 
 
%% входит ли число в список
 
member(X,[X|_]) :- !.
member(X,[_|T]) :- member(X,T).
 
%% Удалить повторения (построить множество) из списка
 
setof([],[]) :- !.
setof([H|T],Q) :- member(H,T),setof(T,Q).
setof([H|T],[H|Q]) :- not(member(H,T)), setof(T,Q).
 
%% Заполнить список длины N случайными числами из диапазона
%% [1,M] (с возможными повторениями)
 
arr(M,1,[X]) :- random(Y), X=M*Y, !.
arr(M,N,[X|T]) :- N1=N-1, arr(M,N1,T), random(Y), X=M*Y.
 
%% Решение задачи
 
uarr(M,N,[]) :- N>M, fail.
uarr(M,N,X)  :- N2=N*2, arr(M,N2,Z), setof(Z,Q), take(Q,N,X).


Вернуться к обсуждению:
Описать рекурсивную функцию для заполнения одномерного массива Prolog
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2014, 18:13
Готовые ответы и решения:

Реализовать функцию заполнения заданного одномерного массива случайными числами
Подскажите, пожалуйста! Мне надо написати функцию, которая: - заполняет одномерный массив...

Описать функцию max (X) для определения максимального элемента вектора X, введя вспомогательную рекурсивную функцию
Всем доброго времени суток. Помогите пожалуйста разобраться в условиях задачи, а то что-то у...

Написать рекурсивную функцию поиска минимального элемента одномерного вещественного массива
Написать рекурсивную функцию поиска минимального элемента одномерного вещественного массива. ...

Описать рекурсивную функцию поиска индекса минимального элемента массива.
Описать рекурсивную функцию поиска индекса минимального элемента массива. program tyu; var...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2014, 18:13
Помогаю со студенческими работами здесь

Описать рекурсивную функцию для вычисления
Описать рекурсивную функцию для вычисления

Описать рекурсивную функцию для вычисления
Ребят помогите написать вот такую программку через рекурсию. Описать рекурсивную функцию для...

Напишите программу, которая определяет минимальное значение элементов одномерного массива, используя рекурсивную функцию
Напишите программу, которая определяет минимальное значение элементов одномерного массива,...

Описать логическую (возможно рекурсивную) функцию, проверяющую является ли симметричной часть массива
Описать логическую (возможно рекурсивную) функцию, проверяющую является ли симметричной часть...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru