
- •3 Лабораторная работа №2 (программирование разветвлённых алгоритмов) 12
- •4 Лабораторная работа №3 (программирование простых циклических алгоритмов) 16
- •7 Решение индивидуального задания 28
- •Постановка задачи
- •Лабораторная работа №1 (программирование линейных алгоритмов)
- •Реализация на языке lisp
- •Реализация на языке Prolog
- •Лабораторная работа №2 (программирование разветвлённых алгоритмов)
- •Реализация на языке lisp
- •Реализация на языке Prolog
- •Лабораторная работа №3 (программирование простых циклических алгоритмов)
- •Реализация на языке lisp
- •Реализация на языке Prolog
- •Лабораторная работа №4 (программирование с использованием одномерных массивов)
- •Реализация на языке lisp
- •Реализация на языке Prolog
- •Лабораторная работа №5 (программирование с использованием многомерных массивов)
- •Реализация на языке lisp
- •Реализация на языке Prolog
- •Решение индивидуального задания
- •Реализация на языке lisp
- •Функция podspvsp
- •Функция evropa
- •Функция opa
- •7.1.5 Функция v1spisok
- •7.1.6 Функция get1
- •7.1.7 Функция get22
- •7.1.8 Функция getpolug
- •7.1.9 Функция 1polniz
- •7.1.10 Функция 2polniz
- •7.1.11 Функция 2polverh
- •7.1.12 Функция 1polverh
- •7.1.13 Функция getdiag
- •7.1.14 Функция getdown
- •7.1.15 Функция getup
- •Функция 1hlpod
- •Функция 2hlpod
- •7.1.18 Функция revpod
- •7.1.19 Функция deletefirst
- •7.1.20 Функция get1half
- •7.1.21 Функция get2half
- •7.1.22 Функция neto
- •7.1.23 Функция dl
- •7.1.24 Функция revers
- •7.1.25 Функция gl
- •7.1.26 Полный текст программы
- •Реализация на языке Prolog
- •Функция ygolki
- •Функция app
- •Функция main
- •7.2.4 Функция opp
- •7.2.5 Функция verhyg
- •7.2.6 Функция nizyg
- •7.2.7 Функция diag
- •Функция fpolpodsp
- •Функция npolpodsp
- •7.2.10 Функция reveverspodsp
- •7.2.11 Функция delall
- •7.2.12 Функция fpol
- •7.2.13 Функция npoll
- •7.2.14 Функция npol
- •7.2.15 Функция dl
- •7.2.16 Функция revers
- •7.2.17 Функция getlalst
- •7.2.18 Полный текст программы
-
Функция evropa
-
Спецификация
Функция должна сортировать списки чисел, являющиеся «уголками» верхней и нижней части матрицы, в заданном порядке: элементы нижней части матрицы должны чередоваться с элементами верхней части матрицы.
-
Структура входных данных
Структурой входных данных в данной функции являются 2 списка (списков чисел). Примеры записи на языке LISP приведены на рисунке 7.8
((16) (15 12) (11 8) (7 4) (3)) ((10)(12 13)(14)) |
Рисунок 7.8
-
Структура выходных данных
Структурой выходных данных в данной функции является один список списков (чисел). Примеры записи на языке LISP приведены на рисунке 7.9
((13) (16) (12 15) (14 9) (5 10) (11 8) (4 7) (6 1) (2) (3)) |
Рисунок 7.9
-
Функциональные тесты
Функциональные тесты для функции evropa приведены в таблице 7.10
Таблица 7.3
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой первый список |
(evropa ‘() ‘(1 2 3)) |
() |
Списки списков |
(evropa ‘(((1) (3) (5))’( (2) (4))) |
((1) (2) (3) (4)(5)) |
-
Словесное описание результата применения функции
Списки в двух списках поочередно соединяются, начиная с нечетных элементов.
-
Текст программы
Текст программы представлен на рисунке 7.11
(defun evropa(lst1 lst2) (cond ((null lst2)lst1) (t(cons(car lst1)(cons(car lst2)(evropa(cdr lst1)(cdr lst2))))))) |
Рисунок 7.11
-
Функция opa
-
Спецификация
-
Функция должна сортировать списки чисел, являющиеся «уголками» верхней и нижней части матрицы, в заданном порядке: элементы нижней части матрицы должны чередоваться с элементами верхней части матрицы.
-
Структура входных данных
Структурой входных данных в данной функции являются 1 список (списков чисел). Примеры записи на языке LISP приведены на рисунке 7.13
((16) (15 12) (11 8) (7 4) (3)) |
Рисунок 7.13
-
Структура выходных данных
Структурой выходных данных в данной функции является один список списков (чисел). Примеры записи на языке LISP приведены на рисунке 7.14
((13) (16) (12 15) (14 9) (5 10) (11 8) (4 7) (6 1) (2) (3)) |
Рисунок 7.14
-
Функциональные тесты
Функциональные тесты для функции opa приведены в таблице 7.4
Таблица 7.4
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой первый список |
(opa ‘() ‘(1 2 3)) |
(1 2 3) |
Списки списков |
opa ‘((1) (3) (5) (2) (4)) |
((1) (2) (3) (4)(5)) |
-
Словесное описание результата применения функции
Списки в двух списках поочередно соединяются, начиная с нечетных элементов.
-
Текст программы
Текст программы представлен на рисунке 7.15
(defun opa(lst) (evropa (get1half lst) (get2half lst))) |
Рисунок 7.15