Функциональное и логическое программирование. вариант 5. лабораторная работа №2 СИБГУТИ ДО
Состав работы
|
|
|
|
|
|
|
|
|
|
Необходимые программы
Работа представляет собой 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
Обработка списков в языках 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
Рецензия:Уважаемая
замечаний нет.
Галкина Марина Юрьевна
Оценена Ваша работа по предмету: Функциональное и логическое программирование
Вид работы: Лабораторная работа 2
Оценка:Зачет
Дата оценки: 31.12.2018
Рецензия:Уважаемая
замечаний нет.
Галкина Марина Юрьевна
Похожие материалы
Функциональное и логическое программирование
Михаил18
: 26 сентября 2019
Билет №4
1. На языке Clisp определите функцию, которая меняет местами второй и третий элементы произвольного списка (в теле функции разрешается использовать только следующие встроенные функции: CAR,CDR,CONS,APPEND,LIST,LAST,BUTLASTс одним аргументом,REVERSE).
2. Какое значение получит Xв результате операции сопоставления (унификации) списков [a,b,c,d] и [_,_,_|X] в языке SWI-Prolog?
200 руб.
Функциональное и логическое программирование
Михаил18
: 26 сентября 2019
Напишите на языке SWI-PROLOG программу для работы с базой данных по заданию. Начальная база данных должна храниться в файле. В программе должно присутствовать меню из 5 пунктов, реализующих следующие возможности:
1. просмотр содержимого динамической базы данных (при запуске программы динамическая база данных должна заполняться из файла базы данных только один раз и только в этом пункте);
2. добавления записи в динамическую базу данных (за один вход в этот пункт должна быть возможность добавлени
200 руб.
Функциональное и логическое программирование
Mikola456
: 27 мая 2016
Контрольная работа
Во вложении Word+prolog
Создание базу данных с расписанием движения поездов: номер поезда, пункт назначения, время отправления, время прибытия. Найти номер и время отправления ближайшего по-езда до Москвы. Текущее время вводится с клавиатуры.
700 руб.
Функциональное и логическое программирование
Mikola456
: 27 мая 2016
ЛАБОРАТОРНАЯ РАБОТА №1
Вариант задачи выбирается по последней цифре зачетной книжки. Текст функции сохраняйте в файле. Функция может вызывать вспомогательные функции. В теле функций использование операторов set и setq не допускается!
Опpеделите на языке ЛИСП и проверьте работу функции, осуществляющей циклический сдвиг в списке на n элементов вправо.
Например, для списка (a s d f g) , n = 3 функция должна вернуть (d f g a s) .
ЛАБОРАТОРНАЯ РАБОТА №1
Программы должны быть написаны на языке дв
500 руб.
Функциональное и логическое программирование
alfFRED
: 25 июня 2013
Введение.
Постановка задачи.
Математические и алгоритмические основы решения задачи.
Функциональные модели и блок-схемы решения задачи.
Программная реализация решения задачи.
Пример выполнения программы.
Заключение.
Список использованных источников и литературы.
10 руб.
Функциональное и логическое программирование
piligrim-24
: 17 января 2012
Зачетное задание по дисциплине «Функциональное и логическое программирование»
Билет №11
1. На языке Лисп составьте композицию из функций CAR и CDR, для которой результатом применения этой композиции к списку ((1 (2 (3))) 4 (5)) будет 3.
2. Какое значение получит X в результате операции сопоставления (унификации) списков [a,b,c,d,e] и [_|X] в Прологе?
50 руб.
Функциональное и логическое программирование. Контрольная работа. Вариант №5.
sibguter
: 20 января 2019
Напишите на языке SWI-PROLOG программу для работы с базой данных по заданию. Начальная база данных должна храниться в файле. В программе должно присутствовать меню из 5 пунктов, реализующих следующие возможности:
1. просмотр содержимого динамической базы данных (при запуске программы динамическая база данных должна заполняться из файла базы данных только один раз и только в этом пункте);
2. добавления записи в динамическую базу данных (за один вход в этот пункт должна быть возможность добавления
150 руб.
Функциональное и логическое программирование. Контрольная работа. Вариант № 5
gnv1979
: 30 ноября 2017
Вариант 5.
Сформируйте новый список из общих элементов двух списков (пересечение множеств).
Например: На Лиспе для списков (1 2 3 5) и (6 4 1 8 3) результатом будет список (1 3).
35 руб.
Другие работы
Контрольная работа. Звуковое вещание (ДВ 1.2). Вариант 03. 3 курс 6 семестр. 1. Изобразите типовые структуры ТФП, ТПРП и ТВРП. 2. Каковы трудности передачи стереофонических сигналов по аналоговым междугородным каналам 3В? Как эти трудности преодолевают? 3
virtualman
: 2 января 2020
1. Изобразите типовые структуры ТФП, ТПРП и ТВРП.
2. Каковы трудности передачи стереофонических сигналов по аналоговым междугородным каналам 3В? Как эти трудности преодолевают?
3. Нарисуйте структурную схему радиоканала системы стереофонического радиовещания. Каково назначение цепи предыскажений? Почему поднесущая частота в спектре КСС подавляется частично или полностью?
177 руб.
Работоспособность и ее динамика
VikkiROY
: 13 мая 2011
СОДЕРЖАНИЕ
Введение 3
1 Внутренние факторы, влияющие на работоспособность человека 4
1.1 Циклические колебания в системах организма 4
1.2 Профессиональные навыки 9
1.3 Мотивы деятельности и работоспособность 10
2 Внешние факторы, влияющие на работоспособность 13
2.1 Температурный режим 13
2.2 Световой режим 14
2.3 Влияние шума на работоспособность 16
2.4 Организация рабочего места 17
3 Динамика работоспособности 21
Заключение 31
Список использованных источников информации 33
В данной
45 руб.
Корпус. Вариант 7
lepris
: 2 сентября 2022
Корпус. Вариант 7
Резьбовые соединения
Наименование деталей:
1 – Плита нижняя
2 – Плита верхняя
Для соединения деталей применить Болт М16.
1.Выполнить расчет элементов болтового соединения.
2.Начертить чертеж заданной конструкции в двух видах (главный вид и вид сверху).
3.Выполнить местный разрез для упрощенного изображения болтового соединения.
4.Нанести выносные и размерные линии.
5.Выполнить обводку изображений.
6.Проставить размерные числа.
7.Заполнить перечень элементов спецификации.
8.
200 руб.
Экзаменационная работа по дисциплине: Теория вероятности. Билет № 17
Игуана
: 10 декабря 2012
1. Непрерывная двумерная случайная величина и её распределение.
2. Случайная точка (X,Y) имеет равномерное распределение в области {0<x<2, 1<y<1}. Найти коэффициент корреляции .
3. Из колоды в 36 карт извлекают четыре карты. Какова вероятность, что все они одной масти?
4. Случайная величина Х распределена по нормальному закону с mx=40 и Dx=200. Найти вероятность попадания случайной величины в интервал (30;80).
5. В каждой из двух урн содержится 8 черных и 2 белых шара. Из второй урны наудач
120 руб.