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

7.1.11 Функция 2polverh

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

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

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

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

((3 4) (2 1))

Рисунок 7.32

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

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

((1) (7 9))

Рисунок 7.33

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

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

Таблица 7.11

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

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

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

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

(2polverh‘())

nil

Матрица

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

(2polverh ‘((10 2 1 7)(16 9 8 13)(6 15 14 3)(12 5 4 11)))

(())

((1))

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

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

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

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

(defun 2polverh (lst)

(getup(revpod(2hlpod lst))))

Рисунок 7.34

7.1.12 Функция 1polverh

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

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

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

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

((3 4) (2 1))

Рисунок 7.35

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

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

((1) (7 9))

Рисунок 7.36

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

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

Таблица 7.12

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

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

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

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

(1polverh‘())

nil

матрица

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

((1))

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

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

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

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

(defun 1polverh(lst)

(getup(1hlpod lst)))

Рисунок 7.37

7.1.13 Функция getdiag

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

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

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

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

((3 4) (2 1))

Рисунок 7.37

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

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

(1 7 9)

Рисунок 7.38

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

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

Таблица 7.13

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

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

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

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

(getdiag‘())

nil

матрица

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

(7 6 8)

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

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

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

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

(defun getdiag(lst)

(cond

((null lst)nil)

(t (cons(car(car lst))(getdiag(deletefirst (cdr lst)))))))

Рисунок 7.39

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