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

        1. Спецификация

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

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

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

[[16],[15 12],[11 8],[7 4],[3]] [[10],[12 13],[14]]

Рисунок 7.84

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

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

[[13],[16],[12 15],[14 9],[5 10],[11 8],[4 7],[6 1],[2],[3]]

Рисунок 7.85

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

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

Таблица 7.28.

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

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

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

Пустой первый список

main([], [1 ,2 ,3],Rez)

[]

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

main ([[1],[3],[5]],[[2],[4]],Rez)

[[1],[2],[3],[4],[5]]

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

Списки в двух списках поочередно соединяются, начиная с нечетных элементов.

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

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

main([H|T],[E|R],[H|[E|Rez]]):-main(T,R,Rez).

main([H|[]],[],[H]).

main([],[],[]).

Рисунок 7.86

7.2.4 Функция opp

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

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

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

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

[3, 4] [2, 1]

Рисунок 7.87

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

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

[3, 4, 2 ,1]

[7, 9, 6, 8, 4, 1, 5, 3, 2]

Рисунок 7.88

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

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

Таблица 7.29.

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

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

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

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

opp([],Rez)

[]

Два списка

opp([1],[2],Rez)

[1, 2]

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

opp([],[1, 2, 3],Rez)

(1 2 3)

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

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

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

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

opp([H|T], Y, [H|TZ]):-opp(T, Y, TZ).

opp([],Y,Y).

Рисунок 7.89

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