
- •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 Полный текст программы
-
Реализация на языке Prolog
-
Функция ygolki
7.2.1.1 Спецификация
Функция должна находить верхние и нижние «уголки», соединять их соответственно рисунку и формировать конечный последовательный список чисел.
7.2.1.2 Структура входных данных
Структурой входных данных в данной функции является список (списков чисел). Примеры записи на языке prolog приведены на рисунке 7.78
[[1]] [[1, 2],[3, 4]] [[1, 2, 3],[4, 5, 6],[7, 8, 9]] |
Рисунок 7.78
7.2.1.3 Структура выходных данных
Структурой выходных данных в данной функции является список (чисел). Примеры записи на языке prolog приведены на рисунке 7.79.
[1] [1, 2, 3, 4] |
Рисунок 7.79
7.2.1.4 Функциональные тесты
Функциональные тесты для функции ygolki приведены в таблице 7.26.
Таблица 7.26
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
Ygolki([],Rez) |
[] |
Список списков чисел |
ygolki ([1],Rez) ygolki ([[2, 1],[4, 3]],Rez) ygolki ([[7, 1, 3],[4, 6, 2],[9, 3, 8 8]],Rez) |
[1] [1, 2, 3 4] [1, 2, 3, 4, 5, 6, 7, 8, 9] |
7.2.1.5 Словесное описание результата применения функции
Возвращается список чисел, расположенных в заданном порядке в матрице.
-
Текст программы
Текст программы представлен на рисунке 7.80.
ygolki(T,Rez):-nizyg(T,D), verhyg(T,U), opp(U,D,UD), fpol(UD,POl1), npoll(UD,POL2), main(Pol1,Pol2,PodREZ), app(PodREZ,Rez). |
Рисунок 7.80
-
Функция app
7.2.2.1 Спецификация
Функция должна формировать из списка списков чисел единый список.
-
Структура входных данных
Структурой входных данных в данной функции является список. Примеры записи на языке prolog приведены на рисунке 7.81.
[[3],[4],[2],[1]] [[7],[9],[6],[8 4],[1 5],[3], [],[ 2]] |
Рисунок 7.81
-
Структура выходных данных
Структурой выходных данных в данной функции является список (чисел). Примеры записи на языке prolog приведены на рисунке 7.82.
[3, 4, 2, 1] [7, 9, 6, 8, 4, 1, 5, 3, 2] |
Рисунок 7.82
-
Функциональные тесты
Функциональные тесты для функции app приведены в таблице 7.27.
Таблица 7.27
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
app([],Rez) |
[] |
Список списков чисел |
app ([1],Rez) app ([[3], [4],[2],[1]]) app ([[7], [9], [6], [8 4], [1 5], [3], []. 2]]) |
[1] [3, 4, 2, 1] [7, 9, 6, 8, 4, 1, 5, 3, 2] |
-
Словесное описание результата применения функции
Из списка списков убираются все скобки и лишний элемент [], оставшийся после удаления скобок от последнего списка, и в итоге формируется единый список чисел.
-
Текст программы
Текст программы представлен на рисунке 7.83.
app([H|T],Rez):-app(T,RezT), opp(H,RezT,Rez). app([],[]). |
Рисунок 7.83