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

7.1.21 Функция get2half

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

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

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

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

((3 4) (2 1))

(1 2 3 4 5)

Рисунок 7.60

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

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

((1 7 9)(3 4)(1))

(1 2 3 4 5)

Рисунок 7.61

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

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

Таблица 7.21

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

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

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

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

(get2halft‘())

nil

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

(get2half‘((7 1 5) (4 6 2)) (9 3 8)))

(( 9 3 8))

Один список

(get2half ‘(1 2 3 4))

(3 4)

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

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

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

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

(defun get2half (lst)

(revers(neto lst)))

Рисунок 7.62

7.1.22 Функция neto

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

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

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

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

((3 4) (2 1))

(1 2 3 4 5)

Рисунок 7.63

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

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

((1 7 9)(3 4)(1))

(1 2 3 4 5)

Рисунок 7.64

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

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

Таблица 7.22

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

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

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

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

(neto ‘())

Nil

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

(neto ‘((7 1 5) (4 6 2)) (9 3 8)))

(( 9 3 8))

Один список

(neto‘(1 2 3 4))

(4 3)

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

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

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

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

(defun neto(lst)

(cond

((null lst)nil)

((null (cdr lst))nil)

(t (cons (gl lst) (neto(cdr(dl lst)))))))

Рисунок 7.65

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