- •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 Полный текст программы
-
Функция 1hlpod
-
Спецификация
-
Функция должна извлекать левую часть матрицы чисел
7.1.16.2 Структура входных данных
Структурой входных данных в данной функции является список (списков чисел). Примеры записи на языке LISP приведены на рисунке 7.46
((1 2 3 4)(5 6 7 8)(9 10 11 12)(13 14 15 16)) ((1 2 3)(4 5 6)(7 8 9)) |
Рисунок 7.46
7.1.16.3 Структура выходных данных
Структурой выходных данных в данной функции является список (списков чисел). Примеры записи на языке LISP приведены на рисунке 7.47.
((1 2)(5 6)(9 10)(13 14)) ((1 2)(4 5)(7 8)) |
Рисунок 7.47
-
Функциональные тесты
Функциональные тесты для функции 1hlpod приведены в таблице 7.16.
Таблица 7.16
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
(1hlpod ‘()) |
nil |
Списки списков с чётным количеством элементов |
(1hlpod '((1 2 3 4)(5 6 7 8)(9 10 11 12)(13 14 15 16)))
|
((1 2)(5 6)(9 10)(13 14))) |
Списки списков с нечётным количеством элементов |
(lhlpod '((1 2 3)(4 5 6)(7 8 9))) |
((1 2)(4 5)(7 8)) |
-
Словесное описание результата применения функции
Из матрицы чисел формируется новая матрица из тех чисел, которые расположены слева от горизонтальной середины матрицы.
-
Текст программы
Текст программы представлен на рисунке 7.48.
(defun 1hlpod(lst) (cond ((null lst)nil) (t (cons (get1half(car lst)) (1hlpod (cdr lst)))))) |
Рисунок 7.48
-
Функция 2hlpod
7.1.17.1 Спецификация
Функция должна извлекать правую часть матрицы чисел
7.1.17.2 Структура входных данных
Структурой входных данных в данной функции является список (списков чисел). Примеры записи на языке LISP приведены на рисунке 7.49
((1 2 3 4)(5 6 7 8)(9 10 11 12)(13 14 15 16)) ((1 2 3)(4 5 6)(7 8 9)) |
Рисунок 7.49
7.1.17.3 Структура выходных данных
Структурой выходных данных в данной функции является список (списков чисел). Примеры записи на языке LISP приведены на рисунке 7.50.
((3 4)(7 8)(11 12)(15 16)) ((3)(6)(9)) |
Рисунок 7.50
7.1.17.4 Функциональные тесты
Функциональные тесты для функции 2hlpod приведены в таблице 7.17.
Таблица 7.17
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
(2hlpod ‘()) |
nil |
Списки списков c чётным количеством чисел |
(2hlpod '((1 2 3 4)(5 6 7 8)(9 10 11 12)(13 14 15 16))) |
((3 4)(7 8)(11 12)(15 16)) |
Списки списков c нечётным количеством чисел |
(2hlpod '((1 2 3)(4 5 6)(7 8 9))) |
((3)(6)(9)) |
-
Словесное описание результата применения функции
Из матрицы чисел формируется новая матрица из тех чисел, которые расположены слева от горизонтальной середины матрицы.
7.1.17.6 Текст программы
Текст программы представлен на рисунке 7.50.
(defun 2hlpod(lst) (cond ((null lst)nil) (t(cons (get2half(car lst))(2hlpod (cdr lst)))))) |
Рисунок 7.50