Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методический практикум.doc
Скачиваний:
9
Добавлен:
12.02.2015
Размер:
106.5 Кб
Скачать

Лабораторная работа № 1.

(2 часа)

Теоретический материал

  • Знакомство со средой ЛИСП (загрузить, закончить работу).

  • Функция (setq ...), функция (eql ...), арифметические и логические операции ("+". "-" ,"*", "/", "<", ">", "=","and", "or", "not"), префиксная форма записи выражений в среде ЛИСП.

  • Использование оператора (if ...).

  • Определение и вызов функции пользователя ((defun ...)).

  • Использование рекурсии.

  • Трассировка.

  • Вызов функции записанной и сохраненной в текстовом файле ((load '*.lsp)).

Практические задания

Для работы с преподавателем

  1. Определите функцию, аргументами которой являются три числа и которая возвращает значение True если первое число принадлежит интервалу ограниченному следующими двумя числами. В противном случае - функция возвращает значение NIL.

  2. Завершите работу в среде ЛИСП, после чего наберите и сохраните текст функции из задания 1 в файле с расширением .lsp. Повторно войдите в среду, загрузите файл с сохраненным текстом функции, вызовите функцию.

  3. Определите функцию возвращающую сумму чисел от 1 до n. Осуществите трассировку написанной функции, рассмотрите результаты трассировки.

Для самостоятельной работы

  1. Определите функцию возводящую число a в степень n.

  2. Определите функцию возвращающую значение факториала числа n.

Лабораторная работа № 2.

(2 часа)

Теоретический материал

  • Списки. Простейшие функции работы со списками ((car ...), (cdr ...), (cons ...), (null ...)).

Практические задания

Для работы с преподавателем

  1. Определите функцию возвращающую количество элементов в списке

  2. Определите функцию возвращающую минимальный/максимальный элемент списка.

  3. Определите функцию удаляющую из списка l все элементы равные k.

Для самостоятельной работы

Каждым студентом по указанию преподавателя выполняется одно из перечисленных ниже заданий.

  1. Определите функцию удаляющую из списка l n-й элемент. Первым элементом списка считается голова списка.

  2. Повторите задание 4 для списка с обратной нумерацией.

  3. Определите функцию добавляющую в список l элемент k в качестве n-го элемента. Первым элементом считается голова списка.

  4. Повторите задание 6 для списка с обратной нумерацией элементов.

  5. Определите функцию моделирующую "детскую считалочку". В кругу стоит n человек имеющих разные имена, в "считалочке" m слов. Функция должна возвращать последовательность выбывания игроков из круга.

Лабораторная работа № 3

(4 часа)

Практическое задание

Для самостоятельной работы

  1. Определите функцию сортирующую заданный список.

Лабораторная работа № 4

(4 часа)

Практические задания

Для самостоятельной работы

Каждым студентом по указанию преподавателя выполняется одно из перечисленных ниже заданий.

  1. Определите функцию осуществляющую перевод выражения записанного в инфиксной форме в выражение в префиксной форме.

  2. Определите функцию, получающую в качестве аргумента неприведенный многочлен третьей степени и возвращающую этот же многочлен в приведенной форме.

  3. Определите функцию вычисляющую определитель матрицы n-го порядка.

  4. Определите функцию приводящую полученную матрицу к треугольному виду.

  5. Определите функцию вычисляющую корни квадратного уравнения.

  6. Определите функцию вычисляющую корни кубического уравнения.

  7. Определить функцию вычисляющую площадь неправильного выпуклого многоугольника, заданного координатами вершин.

  8. Определить функцию проверяющую равенство длин сторон выпуклого многоугольника (ребер выпуклого многогранника) заданного координатами вершин.

  9. Существует лабиринт заданный квадратной матрицей. Значение каждого элемента матрицы соответствует или запрещенной клетке (барьеру), или разрешенной клетке (проходу). Два элемента матрицы соответствуют начальному и конечному пунктам. Необходимо найти наиболее короткий путь из начального пункта в конечный.

Пример:

3 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

0 1 1 1 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

1 1 0 0 1 1 1 1 1 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 1 1

0 0 0 0 1 1 0 1 4 0

0 0 0 0 0 0 0 0 0 0

0 - разрешенные клетки,

1 - запрещенные клетки,

3 - начальный пункт,

4 - конечный пункт.

При выполнении задания рекомендуется использовать волновой алгоритм.

  1. Определите функцию возвращающую произведение двух матриц.