Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_LISP_Prolog.docx
Скачиваний:
14
Добавлен:
12.04.2015
Размер:
4.54 Mб
Скачать

7.2.5 Функция verhyg

7.2.5.1 Спецификация

Функция должна получать верхние уголки матрицы.

        1. Структура входных данных

Структурой входных данных в данной функции является список. списков с равным количеством элементов в подсписках(квадратная матрица). Примеры записи на языке prolog приведены на рисунке 7.90.

[[3, 4],[2, 1]]

Рисунок 7.90

        1. Структура выходных данных

Структурой выходных данных в данной функции является список списков(чисел). Примеры записи на языке prolog приведены на рисунке 7.91.

[[1],[7, 9]]

Рисунок 7.91

        1. Функциональные тесты

Функциональные тесты для функции verhyg приведены в таблице 7.30.

Таблица 7.30

Проверяемая ситуация

Вызов функции со входным значением

Предполагаемый результат

Пустой список

verhyg([],Rez)

[]

матрица

Verhyg([[7, 1, 5],[4, 6, 2],[9, 3, 8]],Rez

[[1 ]]

        1. Словесное описание результата применения функции

Функция должна получать верхнюю часть уголков матрицы до главной диагонали.

        1. Текст программы

Текст программы представлен на рисунке 7.92.

verhyg([H|T],[RA|Rez]):-delallfirst([H|T],Pac),

dlall(Pac,Mac),

Mac=[_|_],

fpolpodsp(Mac,AA),

npolpodsp(Mac,RR),

diag(AA,Ag),

revers(Ag,A),

reverspodsp(RR,Rg),

diag(Rg,R),

opp(R,A,RA),

verhyg(Mac,Rez).

verhyg([H|T],[]):-delallfirst([H|T],Pac),

dlall(Pac,Mac),

Mac=[].

verhyg([],[]).

Рисунок 7.92.

7.2.6 Функция nizyg

7.2.6.1 Спецификация

Функция должна получать нижние уголки матрицы.

        1. Структура входных данных

Структурой входных данных в данной функции является список. списков с равным количеством элементов в подсписках (квадратная матрица). Примеры записи на языке prologприведены на рисунке 7.93.

[[3, 4],[2, 1]]

Рисунок 7.93

        1. Структура выходных данных

Структурой выходных данных в данной функции является список списков(чисел). Примеры записи на языке prolog приведены на рисунке 7.94.

[[1],[7 ,9]]

Рисунок 7.94

        1. Функциональные тесты

Функциональные тесты для функции nizyg приведены в таблице 7.31.

Таблица 7.31

Проверяемая ситуация

Вызов функции со входным значением

Предполагаемый результат

Пустой список

nizyg([],Rez)

[]

матрица

nizyg( [[7, 1, 5],[4, 6, 2],[9, 3, 8]],Rez)

[[2, 3, 4 ],[5, 6, 7],[8, 9]]

        1. Словесное описание результата применения функции

Функция должна получать нижнюю часть уголков матрицы включая уголок главной диагонали.

        1. Текст программы

Текст программы представлен на рисунке 7.95.

nizyg([H|T],[RA|Rez]):-fpolpodsp([H|T],AA),

npolpodsp([H|T],RR),

diag(AA,Ag),

revers(Ag,A),

reverspodsp(RR,Rg),

diag(Rg,R),

opp(R,A,RA),

nizyg(T,Rez).

nizyg([],[]).

Рисунок 7.95

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]