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

7.1.5 Функция v1spisok

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

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

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

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

(3 4) (2 1)

Рисунок 7.15

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

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

(3 4 2 1)

(7 9 6 8 4 1 5 3 2)

Рисунок 7.16

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

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

Таблица 7.5

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

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

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

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

(v1spisok ‘())

nil

Два списка

(v1spisok‘(1) ‘(2))

(1 2)

Один список пустой

(v1spisok ‘() ‘(1 2 3))

(1 2 3)

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

Из двух списков в итоге формируется единый список чисел.

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

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

(defun v1spisok(lst1 lst2)

(cond

((Null lst1)lst2)

(T(cons(car lst1) (v1spisok(cdr lst1) lst2)))))

Рисунок 7.16

7.1.6 Функция get1

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

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

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

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

((3 4) (2 1))

Рисунок 7.17

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

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

((1) (7 9))

Рисунок 7.18

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

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

Таблица 7.6

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

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

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

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

(get11 ‘())

nil

матрица

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

((1 ))

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

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

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

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

(defun get11(lst)

(getpolug (2polverh lst) (revpod(1polverh lst))))

Рисунок 7.19

7.1.7 Функция get22

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

Функция должна получать нижние уголки матрицы.

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

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

((3 4) (2 1))

Рисунок 7.20

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

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

((1) (7 9))

Рисунок 7.21

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

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

Таблица 7.7

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

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

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

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

(get22 ‘())

nil

матрица

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

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

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

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

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

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

(defun get22(lst)

(getpolug (2polniz lst) (revpod(1polniz lst))))

Рисунок 7.22

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