Функциональное и логическое программирование. вариант 5. лабораторная работа №2 СИБГУТИ ДО

Цена:
450 руб.

Состав работы

material.view.file_icon
material.view.file_icon
material.view.file_icon Lab_2.doc
material.view.file_icon Lab_2.lsp
material.view.file_icon Lab_2.pl

Необходимые программы

Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Лабораторная работа No2
Обработка списков в языках CLISP и SWI-PROLOG
Номер задачи выбирается по последней цифре пароля.
Присылаемый на проверку архив должен содержать 3 файла:
файл отчета, содержащий титульный лист, условие задачи, исходные
тексты программ и результаты работы программ (можно в виде
скриншотов);
файл с исходным текстом программы на языке CLISP;
файл с исходным текстом программы на языке SWI-PROLOG.
Задание на лабораторную работу
Напишите на двух языках CLISP и SWI-PROLOG программы для работы со
списками по заданию. Обязательно использование рекурсии. Ввод всех входных
данных должен запрашиваться с клавиатуры в процессе работы программы
(функции или предиката). В программе на языке CLISP не допускается
использование: функционалов, а в теле рекурсивной функции - операторов SET
и SETQ. В программе на SWI-PROLOG предикат после вывода результатов
работы должен успешно завершиться (на экране появится true. и приглашение
следующего ввода цели ?-).
Номер варианта выбирается по последней цифре пароля.
0. Осуществите в списке L циклический сдвиг на N элементов влево.
Например, для языка CLISP при L = (a s d f g), N = 3 функция должна вернуть
(f g a s d).
1. Удалите из списка L все вхождения элемента X.
Например, для языка CLISP при L=(1 2 1 3 1 1 2 5 6), X=1 функция должна
вернуть (2 3 2 5 6).
2. Сформируйте список без повторений из тех элементов исходного списка L,
которые встречаются больше одного раза.
Например, для языка CLISP при L=(5 1 2 1 3 5 5 7) функция должна вернуть
(5 1).
3. Из каждой группы подряд идущих элементов списка L оставьте только один.
Например, для языка CLISP при L=(1 1 a a 3 3 3 + + + +) функция должна
вернуть (1 a 3 +).
4. Удалите из списка L за каждым вхождением X один элемент, если такой
имеется и отличен от X.
Например, для языка CLISP при L=(a 8 2 a a 5 a) X=a функция должна вернуть
(a 2 a a a).
5. Вставьте в список L1 элементы другого списка L2 после каждого вхождения
X в L1.
Например, для языка CLISP при L1=(1 2 1 5 3), X=1, L2=(+ * z) функция
должна вернуть (1 + * z 2 1 + * z 5 3).
2
6. Осуществите в списке L циклический сдвиг на N элементов вправо.
Например, для языка CLISP при L = (a s d f g), N = 3 функция должна вернуть
(d f g a s).
7. Удалите из списка L все повторные вхождения элементов.
Например, для языка CLISP при L=(1 2 1 4 1 2 3) функция должна вернуть
(1 2 4 3).
8. Удалите из списка L перед каждым вхождением X один элемент, если такой
имеется и отличен от X.
Например, для языка CLISP при L=(1 2 1 1 3), X=1 функция должна вернуть
(1 1 1 3).
9. Сформируйте новый список, каждый элемент которого - это список из двух
элементов: самого элемента и числа его вхождений в исходный список L.
Например, для языка CLISP при L=(2 4 2 3 2 3) функция должна вернуть
((2 3) (4 1) (3 2)).
Методические указания к выполнению лабораторной работы No1
Пример. Скопируйте N раз каждый элемент списка L.
Программа на языке CLISP
(defun f()
(princ "Vvedite spisok ")
(terpri)
(setq L (read))
(princ "Vvedite N ")
(terpri)
(setq N (read))
(princ "Rezult= ")
(copy L N)
)
(defun copy(L N &optional (K 0))
(cond
((null L) L)
((= N 0) (copy (cdr L) K 0))
(t (cons (car L)(copy L (- N 1) (+ K 1))))
)
)
3
Скриншот работы программы:
Программа на языке SWI-PROLOG
goal:-writeln('Введите список'),read(L),writeln('Введите N'),
read(N),copy(L,N,L1),write('Результат:'),write(L1).
copy(L,N,L1):-copy(L,N,N,L1).
copy([],_,_,[]):-!.
copy([_|Tail],0,N,L1):-!,copy(Tail,N,N,L1).
copy([Head|Tail],N,K,[Head|L1]):-!,N1 is N-1,
copy([Head|Tail],N1,K,L1).
Скриншот работы программы:
4

Дополнительная информация

Уважаемый студент, дистанционного обучения,
Оценена Ваша работа по предмету: Функциональное и логическое программирование
Вид работы: Лабораторная работа 2
Оценка:Зачет
Дата оценки: 31.12.2018
Рецензия:Уважаемая
замечаний нет.
Галкина Марина Юрьевна
Функциональное и логическое программирование
Билет №4 1. На языке Clisp определите функцию, которая меняет местами второй и третий элементы произвольного списка (в теле функции разрешается использовать только следующие встроенные функции: CAR,CDR,CONS,APPEND,LIST,LAST,BUTLASTс одним аргументом,REVERSE). 2. Какое значение получит Xв результате операции сопоставления (унификации) списков [a,b,c,d] и [_,_,_|X] в языке SWI-Prolog?
User Михаил18 : 26 сентября 2019
200 руб.
Функциональное и логическое программирование
Напишите на языке SWI-PROLOG программу для работы с базой данных по заданию. Начальная база данных должна храниться в файле. В программе должно присутствовать меню из 5 пунктов, реализующих следующие возможности: 1. просмотр содержимого динамической базы данных (при запуске программы динамическая база данных должна заполняться из файла базы данных только один раз и только в этом пункте); 2. добавления записи в динамическую базу данных (за один вход в этот пункт должна быть возможность добавлени
User Михаил18 : 26 сентября 2019
200 руб.
Функциональное и логическое программирование
Контрольная работа Во вложении Word+prolog Создание базу данных с расписанием движения поездов: номер поезда, пункт назначения, время отправления, время прибытия. Найти номер и время отправления ближайшего по-езда до Москвы. Текущее время вводится с клавиатуры.
User Mikola456 : 27 мая 2016
700 руб.
Функциональное и логическое программирование
ЛАБОРАТОРНАЯ РАБОТА №1 Вариант задачи выбирается по последней цифре зачетной книжки. Текст функции сохраняйте в файле. Функция может вызывать вспомогательные функции. В теле функций использование операторов set и setq не допускается! Опpеделите на языке ЛИСП и проверьте работу функции, осуществляющей циклический сдвиг в списке на n элементов вправо. Например, для списка (a s d f g) , n = 3 функция должна вернуть (d f g a s) . ЛАБОРАТОРНАЯ РАБОТА №1 Программы должны быть написаны на языке дв
User Mikola456 : 27 мая 2016
500 руб.
Функциональное и логическое программирование
Введение. Постановка задачи. Математические и алгоритмические основы решения задачи. Функциональные модели и блок-схемы решения задачи. Программная реализация решения задачи. Пример выполнения программы. Заключение. Список использованных источников и литературы.
User alfFRED : 25 июня 2013
10 руб.
Функциональное и логическое программирование
Зачетное задание по дисциплине «Функциональное и логическое программирование» Билет №11 1. На языке Лисп составьте композицию из функций CAR и CDR, для которой результатом применения этой композиции к списку ((1 (2 (3))) 4 (5)) будет 3. 2. Какое значение получит X в результате операции сопоставления (унификации) списков [a,b,c,d,e] и [_|X] в Прологе?
User piligrim-24 : 17 января 2012
50 руб.
Функциональное и логическое программирование. Контрольная работа. Вариант №5.
Напишите на языке SWI-PROLOG программу для работы с базой данных по заданию. Начальная база данных должна храниться в файле. В программе должно присутствовать меню из 5 пунктов, реализующих следующие возможности: 1. просмотр содержимого динамической базы данных (при запуске программы динамическая база данных должна заполняться из файла базы данных только один раз и только в этом пункте); 2. добавления записи в динамическую базу данных (за один вход в этот пункт должна быть возможность добавления
User sibguter : 20 января 2019
150 руб.
Функциональное и логическое программирование. Контрольная работа. Вариант № 5
Вариант 5. Сформируйте новый список из общих элементов двух списков (пересечение множеств). Например: На Лиспе для списков (1 2 3 5) и (6 4 1 8 3) результатом будет список (1 3).
User gnv1979 : 30 ноября 2017
35 руб.
Контрольная работа №2 «Техническая графика». Упражнение 46. Вал. Вариант №6
Контрольная работа №2, Упражнение 46. Вариант - 6. Вал сечение. Задание 5. 1.Выполнить трёхмерную деталь Вала по размерам варианта. 2.Выполнить ассоциативный чертеж: главный вид вала взять по направлению взгляда по стрелке А. 3.Выполнить три сечения: - сечение плоскостью А расположить на продолжении следа секущей плоскости; - сечение плоскостью Б – на свободном месте чертежа; - сечение плоскостью В – в проекционной связи. 4.Вставить в чертеж трехмерный вид Вала командами: Вставка/Объект/Выбрать
User Agentikus007 : 24 марта 2021
320 руб.
Контрольная работа №2 «Техническая графика». Упражнение 46. Вал. Вариант №6
Физико-химические методы исследования бетонных образцов
Оглавление Введение 1. Что такое бетон 2. Причины коррозии бетона 3. Основные процессы коррозии бетона 4. Объемная защита. Модификация добавками 5. Характер действия добавок, их виды и возможность комплексной модификации 5.1 Пластифицирующие добавки 5.2 Гидрофобизирующие добавки 5.3 Добавки, регулирующие структуру и сроки схватывания-твердения 6. Поверхностная защита бетона 6.1 Очистка и защита замасленных поверхностей 6.2 Защита очистных соо
User Elfa254 : 28 сентября 2013
Экзамен Дисциплина: «Сети связи и системы коммутаций». Билет №5.
Экзаменационный билет № 5 1. Структурная схема АТСК 100/2000. 2. Осуществить временную коммутацию между входящей 16 ЦЛ 10 кан. и исходящей 8 ЦЛ 12 кан. при передаче кодовой комбинации «100», представить пространственный эквивалент временного коммутатора. Задача 5 В концентраторе АТС МТ 20/25 осуществить по 4 каналу ПШ передачу кодовой комбинации 210 от 60 АК в 30 канал 4-го исходящего ИКМ тракта. Представить пространственный эквивалент ЦКП.
User ДО Сибгути : 3 декабря 2017
200 руб.
promo
Форма и структура государства
План. 1 Понятие формы государства и ее структура. 2.Форма правления,ее виды и их различия. а)Монархия. б)Республика. 3.Формы государственного устройства а)Унитарное. б)Федеративное. в) Конфедеративное. г)Империя. 4. Формы государственного режима. а)Авторитарный. б)Демократический. 5.Причины и особенности изменения форм государственного и политического режима. В теории государства и права, равно как и в некоторых иных
User Aronitue9 : 18 ноября 2012
5 руб.
up Наверх