
- •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 Полный текст программы
7.2.15 Функция dl
7.2.15.1 Спецификация
Функция должна удалять последний элемент списка, при чем, если у нас список списков, то она удалит последний список.
-
Структура входных данных
Структурой входных данных в данной функции является список чисел или списков чисел. Примеры записи на языке prolog приведены на рисунке 7.119.
[[3, 4],[2, 1]] [1, 2, 3, 4, 5] |
Рисунок 7.119
-
Структура выходных данных
Структурой выходных данных в данной функции является список списков чисел или просто список чисел. Примеры записи на языке prolog приведены на рисунке 7.120
[[1, 7, 9],[3, 4],[1]] [1, 2, 3,4, 5] |
Рисунок 7.120
-
Функциональные тесты
Функциональные тесты для функции dl приведены в таблице 7.40.
Таблица 7.40
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
dl([]) |
[] |
Список списков |
dl([7,1, 5],[4, 6, 2],[9, 3, 8],Rez]
|
[[7, 1, 5],[4, 6, 2]]
|
Один список |
Dl([1, 2, 3, 4],Rez) |
[1, 2, 3] |
-
Словесное описание результата применения функции
Функция должна удалять последний элемент.
-
Текст программы
Текст программы представлен на рисунке 7.121.
dl([H|T], RLST):- dl(T, RLSTT),RLST = [H|RLSTT]. dl([X],[]). |
Рисунок 7.121
7.2.16 Функция revers
7.2.16.1 Спецификация
Функция должна разворачивать все элементы списка так, чтобы первый элемент был на последнем месте, а последний на первом.
-
Структура входных данных
Структурой входных данных в данной функции является список чисел или списков чисел. Примеры записи на языке prolog приведены на рисунке 7.122.
[[3,4], [2, 1]] [1, 2, 3, 4, 5] |
Рисунок 7.22
-
Структура выходных данных
Структурой выходных данных в данной функции является список списков чисел или просто список чисел. Примеры записи на языке prolog приведены на рисунке 7.123
[[1, 7, 9],[3. 4],[1]] [1, 2, 3, 4, 5] |
Рисунок 7.123
-
Функциональные тесты
Функциональные тесты для функции revers приведены в таблице 7.41
Таблица 7.41
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
revers ([],Rez) |
[] |
Список списков |
revers ([7, 1, 5], [4, 6, 2], [9, 3, 8],Rez]
|
[[9, 3, 8],[4, 6, 2],[7 ,1 ,5]]
|
Один список |
revers([1, 2, 3, 4],Rez) |
[4, 3, 2, 1] |
-
Словесное описание результата применения функции
Функция должна выдать развернутый список.
-
Текст программы
Текст программы представлен на рисунке 7.124
revers(T,[H|Rez]):-getlast(T,H), dl(T,AR), revers(AR,Rez). revers([],[]). |
Рисунок 7.124