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

7.1.23 Функция dl

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

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

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

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

((3 4) (2 1))

(1 2 3 4 5)

Рисунок 7.65.

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

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

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

(1 2 3 4 5)

Рисунок 7.66

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

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

Таблица 7.23

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

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

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

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

(dl‘())

nil

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

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

((7 1 5) (4 6 2))

Один список

(dl‘(1 2 3 4))

(1 2 3)

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

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

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

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

(defun dl(lst)

(cond

((null lst) nil)

((null (cdr lst)) nil)

(t (cons (car lst) (dl (cdr lst))))))

Рисунок 7.67

7.1.24 Функция revers

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

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

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

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

((3 4) (2 1))

(1 2 3 4 5)

Рисунок 7.68

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

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

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

(1 2 3 4 5)

Рисунок 7.69

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

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

Таблица 7.24

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

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

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

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

(revers ‘())

nil

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

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

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

Один список

(revers‘(1 2 3 4))

(4 3 2 1)

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

Функция должна выдать развернутый список.

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

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

(defun revers(lst)

(cond

((null lst)nil)

(t(cons(gl lst)(revers(dl lst))))))

Рисунок 7.70

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