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

7.2.13 Функция npoll

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

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

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

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

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

[1, 2, 3, 4, 5]

Рисунок 7.113

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

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

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

[1, 2, 3, 4, 5]

Рисунок 7.114

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

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

Таблица 7.38

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

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

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

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

npoll ([],Rez)

[]

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

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

[[ 9, 3, 8]]

Один список

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

[3, 4]

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

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

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

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

npoll(T,Rez):-npol(T,H),

revers(H,Rez).

Рисунок 7.115

7.2.14 Функция npol

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

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

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

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

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

[1, 2, 3, 4, 5]

Рисунок 7.116

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

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

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

[1, 2, 3, 4, 5]

Рисунок 7.117

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

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

Таблица 7.39

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

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

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

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

npol ([],Rez)

nil

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

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

[[ 9,3, 8]]

Один список

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

[4, 3]

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

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

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

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

npol([H|T],[R|Rez]):-getlast(T,R),

dl(T,ZT),

npol(ZT,Rez).

npol([H],[]).

npol([],[]).

Рисунок 7.118

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