|
1 лаб. работа по функциональному программированию. Отчет сдан Итоговая оценка Подпись преподавателя Тема работы Примитивные функции и особые операторы Коммон Лисп
Отчет по лабораторной работе №1 по курсу «Функциональное программирование» Студент группы 8О-307Б Драчев Матвей Павлович, № по списку 5.
Контакты: matvey_00@mail.ru Работа выполнена: Преподаватель: Иванов Дмитрий Анатольевич, доц. каф. 806 Отчет сдан: Итоговая оценка: Подпись преподавателя:
1. Тема работы Примитивные функции и особые операторы Коммон Лисп.
2. Цель работы Научиться вводить S-выражения в Лисп-систему, определять переменные и функции, работать с условными операторами, работать с числами, использую схему линейной и древовидной рекурсии.
3. Задание (вариант № 1.21(сложность 2)) Запрограммируйте на языке Коммон Лисп функцию-предикат с тремя параметрами - действительными положительными числами a, b, c.
Функция должна возвращать T (истину), если существует тупоугольный треугольник с длинами сторон a, b и c.
Примеры (obtuse-angled 7.0 3.3 4.2) => T
(obtuse-angled 5.0 3.3 4.2) => NIL
4. Оборудование студента Ноутбук Asus FX 505 DT, процессор AMD Ryzen 5 3550H 2.10 GHz, память 16ГБ, 64-разрядная система.
ОС Ubuntu, программное обеспечение Lisp SBCL.
6. Идея, метод, алгоритм Функция с условиями проверки, сначала на то, можно ли построить треугольник, а затем является ли он тупоугольным. Также была написана дополнительная функция возведения числа в квадрат.
7. Сценарий выполнения работы 8. Распечатка программы и её результаты Программа
(defun power (arg) ( * arg arg) ) (defun obtuse-angled (a b c) (if (or (>= a (+ b c)) (>= b (+ a c)) (>= c (+ a b))) nil (if (not (and (> (+ (power a) (power b)) (power c)) (> (+ (power a) (power c)) (power b)) (> (+ (power c) (power b)) (power a)))) T)))
Результаты
* (obtuse-angled 7.0 3.3 4.2) T * (obtuse-angled 5.0 3.3 4.2) NIL * (obtuse-angled 9 5 6) T * (obtuse-angled 1 1 1) NIL * (obtuse-angled 1 1 100) NIL
9. Дневник отладки №
| Дата, время
| Событие
| Действие по исправлению
| Примечание
| 1
|
|
|
|
| 10. Замечания автора по существу работы Мне досталось не самое сложное задание, однако в качестве ознакомления с языком вызвало некие затруднения, которые были решены в процессе выполнения.
11. Выводы В данной лабораторной работе я познакомился с языком Коммон Лисп и написал на нем программу с использованием собственной функции, которая проверяет является ли треугольник тупоугольным. Программа работает правильно и прошла все тесты. |
|
|