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

7.1.8 Функция getpolug

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

Функция должна объединять соответствующие подсписки из двух списков.

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

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

((3 4) (2 1)) ((3 2)(45 5))

Рисунок 7.22

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

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

((1) (7 9))

Рисунок 7.24

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

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

Таблица 7.8

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

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

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

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

(getpolug ‘())

nil

Два списка списков

(getpolug‘((7 1 5) (4 6 2)) ‘((2 3 4) (0 6 7)))

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

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

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

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

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

(defun getpolug (lst lst1 )

(cond

((null lst)lst1)

(t (cons (v1spisok (car lst) (car lst1))(getpolug (cdr lst) (cdr lst1))))))

Рисунок 7.25

7.1.9 Функция 1polniz

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

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

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

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

((3 4) (2 1))

Рисунок 7.26

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

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

((1) (7 9))

Рисунок 7.27

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

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

Таблица 7.9

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

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

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

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

(1polniz‘())

nil

матрица

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

((7 6 )( 4 3)(9))

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

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

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

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

(defun 1polniz(lst)

(getdown(1hlpod lst)))

Рисунок 7.28

7.1.10 Функция 2polniz

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

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

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

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

((3 4) (2 1))

Рисунок 7.29

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

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

((1) (7 9))

Рисунок 7.30

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

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

Таблица 7.10

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

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

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

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

(2polniz‘())

nil

матрица

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

((5 )( 2)(8))

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

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

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

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

defun 2polniz (lst)

(getdown(revpod (2hlpod lst))))

Рисунок 7.31

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