Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 09.10.2018
Сообщений: 25

Сформировать новый список, в котором будут элементы, кратные k, из входящего списка (SWI Prolog)

27.11.2020, 14:49. Показов 1853. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно решить 1 задачу на swi prolog. Нужно сформировать новый список, в котором будут элементы кратные k из входящего списка. Пример: на вход у нас идет список P[1,2,3,4,5,6], k=2, L. Ответ должен быть L[2,4,6]. Число k задаем вручную(любое число). Пытался решить таким образом, но при компиляции мне выдает false или L[].
Prolog
1
2
3
4
5
6
kratnoK([H|T], K, [H|TN]) :-
    H mod K = 0,
    !,
    kratnoK(T, K, TN).
kratnoK([_|T], K, TN) :-
    kratnoK(T, K, TN).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2020, 14:49
Ответы с готовыми решениями:

Из динамического массива A (n*m) сформировать одномерный массив В в котором будут элементы, кратные 2
из динамического массива A (n*m) сформировать одномерный массив В в котором будут элементы кратные 2

Сформировать новый массив, в котором будут располагаться сначала положительные элементы, а затем отрицательные
Сформировать новый массив, в котором будут располагаться сначало положительные элементы, а затем отрицательные элементы данного массива

Сформировать новый список, в котором элементы расположены в порядке возрастания
Дан список F=<1,8,9,0,1,3,2,4,1,12,23,1,23,2,19,1>.Сформировать новый список в котором элементы расположены в порядке...

7
694 / 7031 / 265
Регистрация: 11.08.2016
Сообщений: 3,957
27.11.2020, 17:38
Добавить
Prolog
1
kratnoK([], _, []).
0
1 / 1 / 0
Регистрация: 09.10.2018
Сообщений: 25
27.11.2020, 19:46  [ТС]
Добавил, на запрос kratnoK([1,2,3,4],2,L) выдает пустой список L[].
0
694 / 7031 / 265
Регистрация: 11.08.2016
Сообщений: 3,957
28.11.2020, 10:11
Убрать ! ?
0
1 / 1 / 0
Регистрация: 09.10.2018
Сообщений: 25
28.11.2020, 15:35  [ТС]
Убирал, изменений нету. Решил другим путем, но такое решение не очень нравиться, хочу все же понять в чем ошибка...
0
694 / 7031 / 265
Регистрация: 11.08.2016
Сообщений: 3,957
28.11.2020, 17:40
Я не очень знаком с этим диалектом, но, возможно, '=' в нём означает скорее присвоение, чем сравнение.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,723
Записей в блоге: 14
28.11.2020, 18:29
Лучший ответ Сообщение было отмечено Doc226 как решение

Решение

Prolog
1
2
3
kratnoK([],_,[]).
kratnoK([H|T], K, [H|TN]) :- Z is (H mod K), Z is 0, kratnoK(T, K, TN).
kratnoK([_|T], K, TN) :- kratnoK(T, K, TN).
https://swish.swi-prolog.org/p/osniGnTV.pl
0
1 / 1 / 0
Регистрация: 09.10.2018
Сообщений: 25
28.11.2020, 21:04  [ТС]
Большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2020, 21:04
Помогаю со студенческими работами здесь

Сформировать новый список в котором элементы расположены в порядке возростания
Дан список F=<1,8,9,0,1,3,2,4,1,12,23,1,23,2,19,1>.Сформирова ть новый список в котором элементы расположены в порядке...

Функция: на основе двух списков сформировать новый список, в котором чередуются элементы исходных
написать функцию которая на основе двух списков формирует новый список в котором чередуются элементы исходных Добавлено через 1 минуту...

Сформировать новый список, который будет содержать положительные элементы исходного списка
Задача: Сформировать список, содержащий случайные целые числа, положительные и отрицательные; Сформировать новый список, который будет...

Нечисловые элементы списка заменить на его сумму. SWI Prolog
Здравствуйте! Я впервые у Вас. Искренне надеюсь на вашу помощь. Я полный ламер. Помогите пожалуйста решить задачу на SWI Prolog. ...

Создать новый массив, элементами которого будут элементы исходного массива, кратные числу k
Дан массив, состоящий из n натуральных чисел. Создать новый массив, элементами которого будут элементы исходного массива, кратные числу k....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru