Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для Евгений Лепёхин
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7

Программирование в Turbo Prolog'e (Списки)

17.11.2011, 16:55. Показов 3169. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Всю жизнь работал и работаю в Си, а тут вот возникла такая ситуация что пришлось начать программировать в Turbo Prolog'e . И вот столкнулся с такой проблемой как "списки"... Есть 2 задачи которые я понимаю как решить, но от не знания языка ничего не выходит.
Работу нужно сдать завтра, а у меня одна каша в голове.
Вот эти задачи:
1) Добавить подсписок в указанную позицию
2) Удвоить значения положительных элементов списка и утроить значения его отрицательных элементов.

Буду очень благодарен за полное решение двух данных задач.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2011, 16:55
Ответы с готовыми решениями:

Списки в Turbo Prologe
Дан текст, представляющий собой последовательность слов. Слова отделяются друг от друга пробелами (любым разумным количеством, но не менее...

Вычислить в Turbo Prologe
Вычислить: (a – n)*(a – 2n)* …*(a – kn), где а, n – вещественные числа, к – натуральное.

Работа со списками на Turbo Prologe
Здравствуйте, форумчане! Я получаю второе высшее образование (техническое). Задали задачу на Прологе. Просьба помочь!!!!!! Вот мое задание:...

9
 Аватар для aag
71 / 75 / 3
Регистрация: 03.11.2011
Сообщений: 136
17.11.2011, 17:22
Первая:
Prolog
1
2
3
4
5
6
7
8
9
10
11
DOMAINS
i=integer   il=i*
%
PREDICATES
ins(i,il,il,il)
%
CLAUSES
%
ins(_,A,[],A):- !.
ins(1,A,[B|C],[B|D]):- !, ins(1,A,C,D).
ins(A,[B|C],D,[B|E]):- F=A-1, ins(F,C,D,E).
Prolog
1
2
3
4
5
6
Goal: ins(3,[1,2,3,4,5],[10,11,12],Out)
Out=[1,2,10,11,12,3,4,5]
1 Solution
Goal: ins(5,[1,2,3,4,5],[10,11,12],Out)
Out=[1,2,3,4,10,11,12,5]
1 Solution
Позиция отсчитывается с 1. Если надо с 0, то заменить единички на нули во втором предложении.
1
 Аватар для Евгений Лепёхин
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7
18.11.2011, 00:13  [ТС]
aag, благодарю Вас. А можете ещё объяснить эти строки:
Prolog
1
2
3
ins(_,A,[],A):- !.
ins(1,A,[B|C],[B|D]):- !, ins(1,A,C,D).
ins(A,[B|C],D,[B|E]):- F=A-1, ins(F,C,D,E).
Я как бы вижу что там что то связано с рекурсией, и первую строчку ещё понимаю, а дальше не особо.

Добавлено через 6 часов 25 минут
Господа, а со вторым заданием как быть подскажите пожалуйста ??
0
 Аватар для aag
71 / 75 / 3
Регистрация: 03.11.2011
Сообщений: 136
18.11.2011, 12:52
Prolog
1
2
3
4
5
6
7
8
9
10
11
DOMAINS
i=integer il=i*
%
PREDICATES
p(il,il)
%
CLAUSES
%p([0|A],[0|B]):- !, p(A,B).
p([A|B],[A,A,A|C]):- A<0, !, p(B,C).
p([A|B],[A,A|C]):- !, p(B,C).
p(_,[]).
Prolog
1
2
3
Goal: p([1,-2,-3,4,5,-6],Out)
Out=[1,1,-2,-2,-2,-3,-3,-3,4,4,5,5,-6,-6,-6]
1 Solution
1
 Аватар для Евгений Лепёхин
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7
18.11.2011, 15:34  [ТС]
aag, ещё раз огромное спасибо, что в очередной раз решил задачу, но тут проблема в том что как я понял "удвоить" звучит в плане "умножить" положительные значение в списке на 2, а отрицательные на 3... Буду через часа 3, буду сдавать это всё, то если как бы предполагалось в задании как ты сделал, то это будет очень хорошо =) А вот если нет то надо будет делать так как я подумал...

Ещё раз огромнейшее спасибо !!!

p.s. Вечером отпишу по поводу задания.
0
 Аватар для aag
71 / 75 / 3
Регистрация: 03.11.2011
Сообщений: 136
18.11.2011, 15:49
Дык удваивайте-утраивайте)))

Prolog
1
2
3
p([A|B],[X|C]):- A<0, !, X=A*3, p(B,C).
p([A|B],[X|C]):- !, X=A*2, p(B,C).
p(_,[]).
1
 Аватар для Евгений Лепёхин
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7
18.11.2011, 20:20  [ТС]
aag, Ещё раз спасибо огромное! Всё сдал, всё защитил, всё правильно =) Благодарствую =)
0
 Аватар для aag
71 / 75 / 3
Регистрация: 03.11.2011
Сообщений: 136
18.11.2011, 21:46
Доктор цветы и конфеты не пьёт!
)))))
1
 Аватар для Евгений Лепёхин
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7
21.11.2011, 20:54  [ТС]
Ещё раз всем здравствуйте!

Решил не создавать отдельную тему ещё раз, а напишу сюда.
Задали ещё 2 задачи, начал решать, всё безуспешно.. Одна судя по коду и вообще алгоритму решение похожа на 2-задачу, которую решил aag, но у меня она не выдаёт запрашуемого, а выдаёт пустой список вообще. Задача такова: нужно посчитать количество элементов в списке которые больше 10.
И ещё одна задача: инвертировать список.

Тут тоже вопрос... как бы если я не ошибаюсь то есть 2 вида инвертирования: это просто поменять порядок элементов в списке на обратный или же поменять значение в этом списке на противоположное значение ( то бишь, если оно положительное - сменить на отрицательное, и на оборот). Но вот я предполагаю что второй вариант полнейший бред.. По этому остановился на первом.

Прошу помочь с решением двух данных задач. За ранее благодарю!
0
 Аватар для Евгений Лепёхин
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7
23.11.2011, 22:02  [ТС]
Вот aag в очередной раз помог и дал алгоритм решение обеих задач:
Условие с подсчётом элементов больше 10
Prolog
1
2
3
p([A|B],C,D):- A>10, !, E=C+1, p(B,E,D).
p([_|A],B,C):- !, p(A,B,C).
p(_,A,A).
Инвертирование списка

Prolog
1
2
p([A|B],C,D):- !, p(B,[A|C],D).
p(_,A,A).
При компиляции выдаёт ошибку... Если кому не трудно скомпилируйте данные алгоритмы и скиньте полностью весь код программы, ибо возможно при объявление где то напортачил...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2011, 22:02
Помогаю со студенческими работами здесь

Прошу помощи (Списки в Tutbo prologe)
Вот aag в очередной раз помог и дал алгоритм решение обеих задач: Условие с подсчётом элементов больше 10 p(,C,D):- A&gt;10, !,...

Turbo Prolog 2.0 Списки
Сформулировать список L1 из элементов: произведение всех n элементов L,произведение первых n-1 элементов L и т.д.

turbo prolog. задача на списки
Здравствуйте. Задача звучит так: Есть 2 списка L1 и L2, и какое-то число X. Необходимо после каждого элемента списка L1, равному X, вывести...

списки. Минимум, максимум, средний элемент...[Turbo Prolog]
Привет всем!Помогите пожалуйста,мыслей вообще никаких нету по этому заданию...эх Дан список, объектами которого являются числа. Между...

Списки, поэлементый ввод списка, минимум [есть решение] [Turbo Prolog]
Привет! К сожалению, никогда не сталкивался с Prolog, но случилось удивительное: на дистанционном образовании рандомно попалась лаба....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru