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

    1. Реализация на языке lisp

      1. Функция baba

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

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

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

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

((1))

((1 2)(3 4))

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

Рисунок 7.1

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

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

(1)

(1 2 3 4)

Рисунок 7.2

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

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

Таблица 7.1

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

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

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

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

(baba ‘())

nil

Список списков чисел

(baba ‘((1)))

(baba ‘((2 1)(4 3)))

(baba ‘((7 1 3)(4 6 2)(9 3 8)))

(1)

(1 2 3 4)

(1 2 3 4 5 6 7 8 9)

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

Возвращается список чисел, расположенных в заданном порядке в матрице.

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

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

(defun baba (lst)

(podspvsp(opa(v1spisok(get11 lst) (get22 lst)))))

Рисунок 7.4

    1. Функция podspvsp

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

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

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

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

((3) (4) (2) (1))

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

Рисунок 7.5

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

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

(3 4 2 1)

(7 9 6 8 4 1 5 3 2)

Рисунок 7.6

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

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

Таблица 7.2

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

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

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

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

(podspvsp ‘())

nil

Список списков чисел

(podspvsp ‘((1)))

(podspvsp ‘((3) (4) (2) (1)))

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

(1)

(3 4 2 1)

(7 9 6 8 4 1 5 3 2)

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

Из списка списков убираются все скобки и лишний элемент nil, оставшийся после удаления скобок от последнего списка, и в итоге формируется единый список чисел.

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

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

(defun podspvsp(lst)

(cond

((null lst)lst)

(t(v1spisok(car lst) (podspvsp(cdr lst))))))

Рисунок 8.7

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