Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LISP / Отчёт

.docx
Скачиваний:
21
Добавлен:
01.02.2019
Размер:
179.16 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Бийский технологический институт (филиал)

федерального государственного бюджетного образовательного

учреждения высшего образования

«Алтайский государственный технический университет

им. И.И. Ползунова»

Технологический факультет

Кафедра М Методов и средств измерения и автоматизации и

Отчет защищен с оценкой

_________________________________

А.Н. Павлов

(подпись преподавателя) (инициалы, фамилия)

«____» ___________ 2018 г.

Отчет

по лабораторной работе № 1 .

Основы программирования на языке Common Lisp

(название лабораторной работы)

по дисциплине «Интеллектуальные системы и технологии»

(наименование дисциплины)

ЛР 09.03.02.02.000 ОТ Т

(обозначение документа)

Студент группы ИСТ-

подпись (инициалы, фамилия)

Преподаватель доц. каф. МСИА, к.т.н. А.Н. Павлов

(должность, ученое звание) подпись (инициалы, фамилия)

БИЙСК 2018

Лабораторная работа №1.1

Цель работы: изучить особенности работы в среде программирования, диалог с интерпретатором, списочную структуру языка.

Задание: написать функцию для вычисления математического выражения (рис. 1).

Рисунок 1 – Математическое выражение

Ход работы:

Была написана программа вычисляющая математическое выражение на рисунке 1 (рис. 2).

Рисунок 2 – Код разработанной программы

Результат выполнения программы (рис. 3).

Рисунок 3 – Результат выполнения программы

  1. Чтобы создать исполняемый exe-файл, в командной строке была выполнена команда sbcl для запуска интерпретатора Steel Bank Common Lisp, в котором были выполнены следующие команды:

* (load "c:/Temp/lab1.lisp")

* (sb-ext:save-lisp-and-die "c:/Temp/lab1.exe" :toplevel#'main :executable t)

Вывод: в ходе лабораторной работы были изучены особенности работы в среде программирования, диалог с интерпретатором и списочная структура языка.

Лабораторная работа № 1.2

Цель: изучение базовых функций работы со списками языка программирования Common Lisp.

Задание: получить из исходного списка требуемый символ или список, используя только функции car, cdr (в полной или сокращенной записи) и cons (рис. 4).

Рисунок 4 – Список и задания

Ход работы:

Код разработанной программы (рис. 5).

Рисунок 5 – Код разработанной программы

Результат выполнения программы (рис. 6).

Рисунок 6 – Результат выполнения программы

Вывод: в ходе лабораторной работы были изучены базовые функции работы со списками языка программирования Common Lisp.

Лабораторная работа №1.3

Цель: научиться применять и комбинировать условные и циклические предложения языка программирования Common Lisp.

Задание 1. Записать на языке Common Lisp форму для вычисления функции y(x) (рис. 7). При определении функции использовать условное предложение if. Константа a задается с помощью функции setf, либо как еще один аргумент функции y (помимо x). Значение константы a – произвольное.

Рисунок 7 – Заданная функция

Ход работы:

Код программы (рис. 8).

Рисунок 8 – Код программы

Результат выполнения программы (рис. 9).

Рисунок 9 - Результат выполнения программы

Задание 2. Записать на языке Common Lisp форму для вывода списка значений функции y(x) (рис. 10). При определении функции y(x) использовать условное предложение cond. Построение списка значений реализовать в идее отдельной функции с использованием макроса do.

Рисунок 10 – Заданная функция

Ход работы:

Программа была реализована с использованием передачи значения переменной x из функции func-2 в функцию func-2-if (рис. 11).

Рисунок 11 – Код программы

Результат выполнения программы (рис. 12).

Рисунок 12 – Результат выполнения программы

Задание 3. Записать форму для вычисления следующей задачи: Дан список ((x1 y1) (x2 y2) (x3 y3)). Каждый его подсписок является координатами очередной точки. Записать определение функции y(s) (где s – исходный список), выясняющий, какая из этих точек расположена ближе к началу координат.

Ход работы:

Задание было решено при помощи теоремы Пифагора и сравнения длин гипотенуз (рис. 13).

Рисунок 13 – Код программы

Результат выполнения программы (рис. 14).

Рисунок 14 – Результат выполнения программы

Вывод: в ходе лабораторной работы были получены навыки применения и комбинирования условных и циклических предложений языка программирования Common Lisp.

Соседние файлы в папке LISP