- •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
