0 / 0 / 0
Регистрация: 01.05.2009
Сообщений: 14
|
|
1 | |
Задачи о шахматных конях, удалении элементов из списка20.11.2011, 14:04. Показов 1241. Ответов 1
Метки нет (Все метки)
Здравствуйте.
Помогите пожалуйста, кто может. Абсолютно не разбираюсь в прологе, а к 3й паре по прологу уже назадавали задач. Буду конечно сама пытаться их решить, но пока ориентируюсь только в задачах о предках. Требуется использовать swiProlog 1. Предположим, что клетки шахматной доски представлены парами их координат в форме X/Y, где X и Y находятся в пределах 1-8. (например, координаты угловых клеток есть 1/1, 1/8, 8/1, 8/8). Определите предикат дваПрыжкаКоня(+A,?B), который определяет, на какое поле B шахматный конь может скакнуть за два хода с поля A. 2. Запрограммируйте предикат p(+A,?B), распознающий, можно ли получить список элементов A из списка элементов B посредством вычеркивания некоторых элементов. Алгоритм: Если A - пустой список, то ответом будет "да". В противном случае нужно посмотреть, не пуст ли список B. Если это так, то ответом будет "нет". Иначе нужно сравнить первый элемент списка A с первым элементом списка B. Если они совпадают, то надо снова применить тот же алгоритм к остатку списка A и остатку списка B. В противном случае нужно снова применить тот же алгоритм к исходному списку A и остатку списка B. 3. Напишите предикат p( +L, +N, ?R), который удаляет N элементов с конца списка L. 4. Построить программу "сжать", назначение которой - преобразование английских слов в их "звуковой" код. Этот процесс предусматривает "сжатие" примерно одинаково звучащих слов в одинаковый их код - своего рода, аббревиатуру этих слов. Слова "сжимаются" в соответствии со следующими правилами: • первая буква слова сохраняется; • все последующие за ней гласные, а также буквы "h", "w" и "y" удаляются; • сдвоенные буквы заменяются одиночными; • закодированное слово состоит не более чем из четырех букв, остальные буквы удаляются. Примеры: сжать(barrington, brng) и сжать(llewellyn, ln) - выполнено. Указание. Воспользуйтесь предикатом name/2. Заранее благодарна.
0
|
20.11.2011, 14:04 | |
Ответы с готовыми решениями:
1
Найти ошибку в удалении элементов из односвязного списка Исключение при удалении из списка Ошибка при удалении значения списка Ошибка при удалении из односвязного списка |
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
|
|
20.11.2011, 16:45 | 2 |
Сначала надо правила форума читать: одна тема - одна задача. Так что создавайте новые темы, а эту через какое-то время удалю. Но, прежде, чем создавать, попробуйте все-таки самостоятельно сделать. Потому что человеку, который выкладывает так много задач не особо хочется помогать. Вторую задачу Вам прям сказано как решать. Третья очень простая. Воспользуйтесь поиском, есть предикат, удаляющий последний элемент списка, да может и вообще этот предикат полностью есть.
0
|
20.11.2011, 16:45 | |
20.11.2011, 16:45 | |
Помогаю со студенческими работами здесь
2
Ошибка при удалении єлемента из однонаправленного списка При удалении элемента из списка вылетает программа При удалении элемента из списка происходит непонятная ошибка Help исправить добавление и удалении из списка по позиции (emplace/erase), спасибо Как при удалении элемента из списка, полностью его удалить При удалении первого элемента из динамического списка присваивается плохой указатель Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |