
- •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 Полный текст программы
-
Функция main
-
Спецификация
Функция должна сортировать списки чисел, являющиеся «уголками» верхней и нижней части матрицы, в заданном порядке:элементы нижней части матрицы должны чередоваться с элементами верхней части матрицы.
-
Структура входных данных
Структурой входных данных в данной функции являются 2 списка (списков чисел). Примеры записи на языке prolog приведены на рисунке 7.84.
[[16],[15 12],[11 8],[7 4],[3]] [[10],[12 13],[14]] |
Рисунок 7.84
-
Структура выходных данных
Структурой выходных данных в данной функции является один список списков (чисел). Примеры записи на языке LISP приведены на рисунке 7.85
[[13],[16],[12 15],[14 9],[5 10],[11 8],[4 7],[6 1],[2],[3]] |
Рисунок 7.85
-
Функциональные тесты
Функциональные тесты для функции main приведены в таблице 7.28
Таблица 7.28.
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой первый список |
main([], [1 ,2 ,3],Rez) |
[] |
Списки списков |
main ([[1],[3],[5]],[[2],[4]],Rez) |
[[1],[2],[3],[4],[5]] |
-
Словесное описание результата применения функции
Списки в двух списках поочередно соединяются, начиная с нечетных элементов.
-
Текст программы
Текст программы представлен на рисунке 7.86.
main([H|T],[E|R],[H|[E|Rez]]):-main(T,R,Rez). main([H|[]],[],[H]). main([],[],[]). |
Рисунок 7.86
7.2.4 Функция opp
7.2.4.1 Спецификация
Функция должна формировать из двух списков чисел единый список.
-
Структура входных данных
Структурой входных данных в данной функции является 2 списка. Примеры записи на языке prolog приведены на рисунке 7.87
[3, 4] [2, 1] |
Рисунок 7.87
-
Структура выходных данных
Структурой выходных данных в данной функции является список (чисел). Примеры записи на языке prolog приведены на рисунке 7.88.
[3, 4, 2 ,1] [7, 9, 6, 8, 4, 1, 5, 3, 2] |
Рисунок 7.88
-
Функциональные тесты
Функциональные тесты для функции opp приведены в таблице 7.29.
Таблица 7.29.
Проверяемая ситуация |
Вызов функции со входным значением |
Предполагаемый результат |
Пустой список |
opp([],Rez) |
[] |
Два списка
|
opp([1],[2],Rez)
|
[1, 2]
|
Один список пустой |
opp([],[1, 2, 3],Rez) |
(1 2 3) |
-
Словесное описание результата применения функции
Из двух списков в итоге формируется единый список чисел.
-
Текст программы
Текст программы представлен на рисунке 7.89.
opp([H|T], Y, [H|TZ]):-opp(T, Y, TZ). opp([],Y,Y). |
Рисунок 7.89