Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_LISP_Prolog.docx
Скачиваний:
13
Добавлен:
12.04.2015
Размер:
4.54 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Юго-Западный государственный университет»

Кафедра программного обеспечения вычислительной техники

ОТЧЕТ ПО ЛАБОРАТОРНЫМ РАБОТАМ

по дисциплине «Функциональное и логическое программирование»

Курск 2012

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Юго-Западный государственный университет»

Кафедра программного обеспечения вычислительной техники

ОТЧЕТ ПО ЛАБОРАТОРНЫМ РАБОТАМ

Студент Сабельникова Е.В. шифр 01058 группа ПО-01

Тема: Выполнение лабораторных работ по дисциплине «Функциональное и логическое программирование»

Срок предоставления отчета « » ________2012 г.

Содержание отчета:

Реферат

Содержание

Введение

Постановка задачи

Программная реализация

Заключение

Руководитель _________________________ доц. В.Г. Белов

Задание принял к исполнению ______________ Е.В. Сабельникова

Реферат

Объем данного отчёта равен 99 страницам. В отчете содержатся 151 рисунок, 52 таблицы. Полный текст работы представлен на CD диске в файле Otchet_LISP_Prolog.docx. CD прилагается к данному описанию.

Ключевые слова

Функция, рекурсия, спецификации, входные данные, выходные данные, тестовые примеры.

Цель работы

Выполнить лабораторные работы, приобрести навыки использования приемов программирования на языках LISP и Prolog .

Содержани

1Постановка задачи 8

2Лабораторная работа №1 (программирование линейных алгоритмов) 10

2.1Реализация на языке LISP 10

2.2Реализация на языке Prolog 12

3Лабораторная работа №2 (программирование разветвлённых алгоритмов) 14

3.1Реализация на языке LISP 14

3.2Реализация на языке Prolog 16

4Лабораторная работа №3 (программирование простых циклических алгоритмов) 18

4.1Реализация на языке LISP 18

4.2Реализация на языке Prolog 20

5Лабораторная работа №4 (программирование с использованием одномерных массивов) 23

5.1Реализация на языке LISP 23

5.2Реализация на языке Prolog 25

6Лабораторная работа №5 (программирование с использованием многомерных массивов) 29

6.1Реализация на языке LISP 29

6.2Реализация на языке Prolog 32

7Решение индивидуального задания 35

.1Реализация на языке LISP 35

.1.2 Функция podspvsp 37

7.1.3Функция evropa 38

7.1.4Функция opa 40

7.1.5 Функция v1spisok 41

7.1.6 Функция get1 42

7.1.7 Функция get22 43

7.1.8 Функция getpolug 44

7.1.9 Функция 1polniz 46

7.1.10 Функция 2polniz 47

7.1.11 Функция 2polverh 48

7.1.12 Функция 1polverh 49

7.1.13 Функция getdiag 51

7.1.14 Функция getdown 52

7.1.15 Функция getup 53

7.1.16 Функция 1hlpod 54

7.1.17 Функция 2hlpod 56

7.1.18 Функция revpod 57

7.1.19 Функция deletefirst 58

7.1.20 Функция get1half 60

7.1.21 Функция get2half 61

7.1.22 Функция neto 62

7.1.23 Функция dl 64

7.1.24 Функция revers 65

7.1.25 Функция gl 66

7.1.26 Полный текст программы 68

7.2 Реализация на языке Prolog 71

.2.1Функция ygolki 71

7.1.2Функция app 72

7.2.3Функция main 74

7.2.4 Функция opp 75

7.2.5 Функция verhyg 76

7.2.6 Функция nizyg 78

7.2.7 Функция diag 79

7.1.16.2.8 функция fpolpodsp 81

7.1.1.2.9Функция npolpodsp 82

7.2.10 Функция reveverspodsp 84

7.2.11 Функция delall 85

7.2.12 Функция fpol 86

7.2.13 Функция npoll 88

7.2.14 Функция npol 89

7.2.15 Функция dl 91

7.2.16 Функция revers 92

7.2.17 Функция getlalst 94

7.2.18 Полный текст программы 95

1 Постановка задачи 7

2 Лабораторная работа №1 (программирование линейных алгоритмов) 8

2.1 Реализация на языке LISP 8

2.2 Реализация на языке Prolog 10

3 Лабораторная работа №2 (программирование разветвлённых алгоритмов) 12

3.1 Реализация на языке LISP 12

3.2 Реализация на языке Prolog 14

4 Лабораторная работа №3 (программирование простых циклических алгоритмов) 16

4.1 Реализация на языке LISP 16

4.2 Реализация на языке Prolog 18

5 Лабораторная работа №4 (программирование с использованием одномерных массивов) 20

5.1 Реализация на языке LISP 20

5.2 Реализация на языке Prolog 22

6 Лабораторная работа №5 (программирование с использованием многомерных массивов) 24

6.1 Реализация на языке LISP 24

6.2 Реализация на языке Prolog 26

7 Решение индивидуального задания 28

7.1 Реализация на языке LISP 28

7.1.2 Функция podspvsp 30

7.1.3 Функция evropa 31

7.1.4 Функция opa 33

7.1.5 Функция v1spisok 34

7.1.6 Функция get11 35

7.1.7 Функция get22 36

7.1.8 Функция getpolug 37

7.1.9 Функция 1polniz 38

7.1.10 Функция 2polniz 39

7.1.11 Функция 2polverh 41

7.1.12 Функция 1polverh 43

7.1.13 Функция getdiag 45

7.1.14 Функция getdown 46

7.1.15 Функция getup 47

7.1.16 Функция 1hlpod 48

7.1.17 Функция 2hlpod 50

7.1.18 Функция revpod 52

7.1.19 Функция deletefirst 53

7.1.20 Функция get1half 54

7.1.21 Функция get2half 56

7.1.22 Функция neto 58

7.1.23 Функция dl 59

7.1.24 Функция revers 60

7.1.25 Функция gl 61

7.1.26 Полный текст программы 62

7.2 Реализация на языке Prolog 66

7.2.1 Функция ygolki 67

7.2.2 Функция app 69

7.2.3 Функция main 72

7.2.4 Функция opp 74

7.2.5 Функция verhyg 76

7.2.6 Функция nizyg 79

7.2.7 Функция diag 81

7.2.8 Функция fpolpodsp 82

7.2.9 Функция npolpodsp 85

7.2.10 Функция reveverspodsp 86

7.2.11 Функция delall 87

7.2.12 Функция fpol 88

7.2.13 Функция npoll 89

7.2.14 Функция npol 90

7.2.15 Функция dl 91

7.2.16 Функция revers 92

7.2.17 Функция getlalst 94

7.2.18 Полный текст программы 95

Введение

Необходимо выполнить шесть лабораторных работ на языках LISP и Prolog. Данная задача будет решаться с помощью пакета AutoCAD 2008, в состав которого входит язык AutoLISP, а также среды разработки Visual Prolog 5.2.

  1. Постановка задачи

    1. Задание к лабораторной работе №1 (программирование линейных алгоритмов)

Даны x, y, z. Вычислить a, b, если:

+

    1. Задание к лабораторной работе №2 (программирование разветвлённых алгоритмов)

Написать программу, которая по номеру (от 1 до 7) выводит название дня недели.

    1. Задание к лабораторной работе №3 (программирование простых циклических алгоритмов)

Вычислить:

    1. Задание к лабораторной работе №4 (программирование с использованием одномерных массивов)

Дан массив из 10 вещественных чисел. Максимальный элемент массива увеличить в 2 раза, а минимальный элемент уменьшить в 2 раза. Вывести преобразованный массив.

    1. Задание к лабораторной работе №5 (программирование с использованием многомерных массивов)

Дана вещественная матрица размером NxM. Определить числа , равные произведению минимального и максимального элементов строк матрицы.

    1. Индивидуальное задание (вариант 95)

Дана квадратная матрица целых чисел. Вывести её элементы по порядку, установленному «уголками» на рисунке 1.1.

Рисунок 1.1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]