Добрые люди, 5 задач по Visual Prolog

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

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

Помогите пожалуйста добрые люди!!! на прологе прогу не могу написать ,ничего не понимаю, буду очень благодарен 1. Определить рекурсивный предикат проверяющий, является ли натуральное число совершенным (число равно сумме своих делителей, например 6=3+2+1). #== 2. Решить следующие задачи: а) удалить из списка все элементы, равные заданному числу. б) написать предикат, который является истинным, если список упорядочен по возрастанию. в) написать предикат, создающий список, элементами которого являются суммы соответствующих элементов заданных двух списков. #== 3. Может быть, вы и не поверите, но в одном городке жили два чудака — Чук и Гек. Чук совершенно не мог говорить правду по понедельникам, вторникам и средам, хотя в остальные дни он неизменно был правдив. А Гек врал по вторникам, четвергам и субботам, но в другие дни он говорил только правду. Как-то я повстречал эту неразлучную пару и спросил одного из них: − Скажи пожалуйста, как тебя зовут? Тот без малейшего колебания ответил: − Чук. А скажи-ка мне, какой сегодня день недели? –Вчера было воскресенье, сказал мой собеседник. − А завтра будет пятница, − добавил его приятель. − Подожди, как же так? − изумился я, обращаясь к приятелю моего собеседника. – Ты уверен, что говоришь правду? − Я всегда говорю правду по средам, − услышал я в ответ. Решив, что больше со мной говорить не о чем, приятели пошли дальше, оставив меня в полном недоумении. Но. подумав, я все-таки сообразил, кто из двух друзей был Чук, а кто − Гек. Между прочим, по разговору можно установить и день недели, в который я встретился с ними. Попробуйте сообразить и вы. #== 4. В заданной строке замените "а" на букву "е", если "а" стоит на четной позиции в слове, и заменить букву "b" на сочетание "ак", если буква "b" стоит на нечет-ной позиции в слове. #== 5. Разделение текстового файла на два примерно одинаковой длины по границе строки.

Решение задачи: «Добрые люди, 5 задач по Visual Prolog»

textual
Листинг программы
?- findall( N, ( between(1, 1000, N), findall( X, (between(1, N, X), X \= N, N mod X =:= 0), Xs ), atomic_list_concat(Xs, '+', A), term_to_atom(T, A), catch(N =:= T, _, fail) ), Ns ).
Ns = [6, 28, 496].

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


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

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

13   голосов , оценка 4.231 из 5