ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 41

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ФГБОУ ВО НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»«Инженерно-экономический институт»Кафедра «Безопасности и информационных технологий»Интеллектуальные информационные системыЛабораторная работа №2 на тему:«Λ-выражение на языке ЛИСП»Руководительдоц. Карпович Е.Е.Выполнилстудент группы ИЭоз-60-19Бурдонос Т.Д.Москва2023г

  1. Задание
Написать Λ-выражение на языке ЛИСП по индивидуальному заданию. Продемонстрировать Λ-преобразование для данного Λ-выражения в среде интерпретатора LispWorks.Написать пользовательскую функцию DEFUN на языке ЛИСП для выражения. Интерпретировать написанную функцию в среде интерпретатора LispWorks. Продемонстрировать вызовы пользовательской функции в среде интерпретатора LispWorks.

  1. Исходные данные
Имеется исходная формула:Рисунок 1. Исходная формула.

  1. Опишем Λ-выражение.
Код,позволяющий вносить в программу исходные данные:(lambda (b x)(cond ((< x 0) (- b (* x x)))((= x 0) b)((> x 0) (+ b (* x x)))))

  1. Продемонстрируем Λ-преобразование для данного Λ-выражения в среде интерпретатора LispWorks.
Проверим, первое условие x<0. Для этого передадим значение xкоторое меньше, чем 0, например -3. В таком случае 2 – (-3* -3) = 1 – 9 = -7. Значение верно.Проверим второе условие x=0, для этого передадим числаx = 0, b = 2 чтобы соблюсти условие. В таком случае результат должен быть равен 2.Проверим условие x> 0, для этого передадим числаx = 4, b = 2 чтобы соблюсти условие.В таком случае 2+4* 4 = 2 + 16 = 18. Значение верно.

  1. Напишем пользовательскую функцию DEFUN на языке ЛИСП для выражения.

Код, позволяющий вносить в программу исходные данные:(defun f (b x)(if (< x 0)(- b (* x x))(if (= x 0)b(+ b (* x x)))))

  1. Продемонстрируем вызовы пользовательской функции в среде интерпретатора LispWorks.
Продемонстрируем вызов функции на двух примерах. Вариант (f 0 -5) вернет значение 25. Этот вызов проверяет, что функция правильно обрабатывает случай, когда b = 0 и x < 0.(f -3 4) вернет значение 13. Этот вызов проверяет, что функция правильно обрабатывает отрицательные значения b и положительные значения x.

  1. Вывод.
Мы описали заданную формулу и писали ее в виде функции prolog, провели тестирование и убедились в работоспособности программы.