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

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

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

Написать программу, которая по номеру (от 1 до 7) выводит название дня недели.

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

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

1

5

7

Рисунок 3.1

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

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

ponedelnik

pyatnica

voskresenie

Рисунок 3.2

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

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

Таблица 3.1

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

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

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

Одно число

(days «1»)

ponedelnik

Второе числа

(days «5»)

pyatnica

Другое число

(days «8»)

nil

      1. Графическое решение

Графическое решение представлено на рисунке 3.3.

Рисунок 3.3

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

Строка с названием дня недели, если заданное число соответствует номеру этого дня.

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

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

(DEFUN name(x)

(COND

((= x "1")"ponedelnik")

((= x "2")"vtornik")

((= x "3")"sreda")

((= x "4")"chetverg")

((= x "5")"pyatnica")

((= x "6")"sybbota")

((= x "7")"voskresenie")

(T NIL

)))

Рисунок 3.4

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

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

Написать программу, которая по номеру (от 1 до 7) выводит название дня недели.

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

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

1

5

7

Рисунок 3.5

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

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

ponedelnik

pyatnica

voskresenie

Рисунок 3.6

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

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

Таблица 3.2

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

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

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

Одно число

days(“1”, “Y”).

ponedelnik

Второе числа

days(“5”, “Y”).

pyatnica

Другое число

days(“8”, “Y”).

nil

      1. Графическое решение

Графическое решение представлено на рисунке 3.7.

Рисунок 3.7

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

Строка с названием дня недели, если заданное число соответствует номеру этого дня.

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

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

predicates

days(symbol,symbol)

clauses

days(X,Y):-X=”ponedelnik”,

Y=”1, ponedelnik ”.

days(X,Y):-X=”vtornik”,

Y=”2, vtornik ”.

days(X,Y):-X=”sreda”,

Y=”3, sreda ”.

days(X,Y):-X=”chetverg”,

Y=”4, chetverg”.

days(X,Y):-X=”pyatnica”,

Y=”5, pyatnica”.

days(X,Y):-X=”sybbota”,

Y=”6, sybbota ”.

days(X,Y):-X=”voskresenie”,

Y=”7, voskresenie ”.

goal

days(“1”, “Y”).

Рисунок 3.8

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