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

7.2.7 Функция diag

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

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

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

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

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

Рисунок 7.95

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

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

[1, 7, 9]

Рисунок 7.96

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

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

Таблица 7.32

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

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

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

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

diag([],Rez)

[]

матрица

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

[7, 6, 8]

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

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

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

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

diag([[H|T1]|T],[H|Rez]):-T1=[_|_],

delallfirst(T,ZT),

diag(ZT,Rez).

diag([[]|T],[]).

diag([[H|[]]|T],[H]).

diag([],[]).

Рисунок 7.97

      1. Функция fpolpodsp

        1. Спецификация

Функция должна извлекать левую часть матрицы чисел

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

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

[[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.98

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

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

[[1, 2],[5, 6],[9, 10],[13,14]]

[[1, 2],[4, 5],[7, 8]]

Рисунок 7.99

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

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

Таблица 7.33

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

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

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

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

fpolpodsp ([],Rez)

[]

Списки списков с чётным количеством элементов

fpolpodsp ([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11,12],[13, 14, 15, 16]],Rez)

[[1, 2],[5, 6],[9 ,10],[13 ,14]]

Списки списков с нечётным количеством элементов

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

[[1, 2],[4, 5],[7, 8]]

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

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

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

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

fpolpodsp([H|T],[]):-H=[].

fpolpodsp([H|T],[R|Rez]):-H=[_|_],

fpol(H,R),

fpolpodsp(T,Rez).

fpolpodsp([],[]).

Рисунок 7.100

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