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

7.2.11 Функция delall

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

Функция должна удалять последний элемент во всех подсписках.

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

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

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

Рисунок 7.107

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

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

[[1, 7, 9],[3, 4],[1]]

Рисунок 7.108

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

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

Таблица 7.36

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

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

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

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

Delall([],Rez)

[]

матрица

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

[[7, 1],[ 4,6],[9,3]]

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

Функция должна последний элемент в подсписках.

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

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

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

dl([H|T1],R),

dlall(T,Rez).

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

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

dlall([],[]).

Рис 7.109

7.2.12 Функция fpol

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

Функция должна возвращать первую половину списка, причем большую, если количество элементов нечетное.

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

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

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

[1, 2, 3, 4, 5]

Рисунок 1.110

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

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

[[1, 7, 9],[3, 4],[1]]

[1, 2, 3, 4, 5]

Рисунок 7.111

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

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

Таблица 7.35

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

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

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

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

fpol ([],Rez)

[]

Список списков

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

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

Один список

fpol ([1, 2, 3, 4],Rez)

[1, 2]

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

Функция должна возвращать первую большую половину списка.

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

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

fpol([H|T],[H|Rez]):-dl(T,ZT),

fpol(ZT,Rez).

fpol([H],[H]).

fpol([],[]).

Рисунок 7.112

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