Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник заданий по программированию на языках Лисп, ФРЛ и Пролог.doc
Скачиваний:
53
Добавлен:
28.06.2014
Размер:
226.82 Кб
Скачать

Часть 1. Реализовать задания n 21 - 25 из 1.1.5.

Часть 2. Входной файл на внешнем носителе содержит исходные

данные в виде множества допустимых в ЛИСП структур данных. Рассор-

тировать его и записать на внешний носитель в виде четырех файлов,

каждый из которых содержит либо числовые атомы, либо символьные

атомы, либо точечные пары, либо списки.

 ЛАБОРАТОРНАЯ РАБОТА N 6.

Реализовать задания N 26 - 30 из 1.1.6.

2.2. Задания по языку программирования ФРЛ

 ЛАБОРАТОРНАЯ РАБОТА N 7.

Реализовать задания N 31 - 34 из 1.2.1.

  • 24 –

 ЛАБОРАТОРНАЯ РАБОТА N 8.

Реализовать задания N 36 - 38 из 1.2.2.

 ЛАБОРАТОРНАЯ РАБОТА N 9.

Реализовать задания N 41 - 44 из 1.2.3.

 ЛАБОРАТОРНАЯ РАБОТА N 10.

Часть 1. Реализовать задание n 35 из 1.2.1.

Часть 2. Реализовать задания n 39 - 40 из 1.2.2.

Часть 3. Реализовать задание n 45 из 1.2.3.

2.3. Задания по языку программирования ПРОЛОГ

 ЛАБОРАТОРНАЯ РАБОТА N 11.

Реализовать задания N 46 - 49 из 1.3.1.

ЛАБОРАТОРНАЯ РАБОТА N 12.

Реализовать задания N 50 - 53 из 1.3.2.

 ЛАБОРАТОРНАЯ РАБОТА N 13.

Реализовать задания N 54 - 55 из 1.3.2.

 ЛАБОРАТОРНАЯ РАБОТА N 14.

Реализовать задания N 56 - 58 из 1.3.3.

 ЛАБОРАТОРНАЯ РАБОТА N 15.

Реализовать задания N 59 - 60 из 1.3.4.

 ЛАБОРАТОРНАЯ РАБОТА N 16.

Реализовать задания N 61 - 62 из 1.3.4.

.

- 25 -

3. ЗАДАНИЯ ДЛЯ КУРСОВОЙ РАБОТЫ

Курсовая работа выполняется студентами в 4-м семестре и вклю-

чает в себя три раздела соответственно по языкам ЛИСП, ФРЛ и ПРО-

ЛОГ. Каждый вариант содержит три задания, которые должны быть вы-

полнены на ПЭВМ, и итоги отладки и тестирования должны быть предс-

тавлены в виде отчета по курсовой работе.

На языке ЛИСП должны быть реализованы задание N 1 ( извлечение

информации из сложных структур данных с помощью рекурсивных функ-

ций) и задание N 2 ( построение новых структур данных ). При этом

задание N 2 должно быть реализовано тремя способами - а) рекурсив-

но; б) итерационно; в) с использованием функционала.

На языке ФРЛ должно быть реализовано задание N 3.

На языке ПРОЛОГ должны быть реализованы задания N 1 и 3.

Ниже приводятся варианты для выполнения курсовой работы.

 ВАРИАНТ N 1.

1. Реализовать функции  (@NTHCDR n list )  и  (@NTH n list) , возв-

ращающие соответственно n-й CDR и CAR от списка list. Некорректное

задание параметра n должно контролироваться.

Примеры: (@NTHCDR 0 '(А В С)) => (А В С)

(@NTHCDR 2 '(А В С D)) => (С D)

(@NTH 0 '(А В)) => А

(@NTH 1 '((АВ)(ВС)(CD)К)) => (ВС)

2. Реализовать функцию  (@DELETE  atom list) , возвращающую спи-

сок list, в котором из всех подсписков удален атом atom.

Пример:

(@DELETE 'A '((A B C) (B C D A A) (C D) (A A)))

((B C) (B C D) (C D) NIL)

3. Реализовать функцию  (WAY  p1 p2), осуществляющую поиск на

заданном неориентированном графе любого пути между двумя вершинами

p1 и p2. Проверить работу функции WAY на примере фрагмента схемы

Московского метополитена (2 - 3 линии, 8 - 10 станций).

Пример для ФРЛ:

(DEFRAMEQ

  • 26 –

ПРОЛЕТАРСКАЯ

(ВПЕРЕД ($VALUE (ТАГАНСКАЯ_РАДИАЛЬНАЯ)))

(НАЗАД ($VALUE (ВОЛГОГРАДСКИЙ-ПРОСПЕКТ))) )

(DEFRAMEQ

ТАГАНСКАЯ_РАДИАЛЬНАЯ

(ВПЕРЕД ($VALUE (ПЛОЩАДЬ-НОГИНА)))

(НАЗАД ($VALUE (ПРОЛЕТАРСКАЯ)))

(ПЕРЕСАДКА ($VALUE (MAPKCИСТСКАЯ)(ТАГАНСКАЯ_КОЛЬЦЕВАЯ)))

. . . . .

(WAY 'ПРОЛЕТАРСКАЯ 'ТУРГЕНЕВСКАЯ)

(ПРОЛЕТАРСКАЯ ТАГАНСКАЯ ПЛОЩАДЬ-НОГИНА ТУРГЕНЕВСКАЯ)

 ВАРИАНТ N 2.

1. Реализовать функции  (@COUNT  object list test)  и  (@COUNT-IF

 test list) , возвращающие количество элементов в списке list, для

которых (test object element) есть не NIL. Здесь element - текущий

элемент списка list. Если аргумент test опущен, то test = EQUAL.

Для второй функции предикат test является одноместным.

Примеры: (@COUNT 'А '(А В С D А Е)) => 2

(@COUNT '5 '(2 9 -7 4) '>) => 3

(@COUNT-IF 'MINUSP '(3 -6 8 7 -2)) => 2

2. Реализовать функцию  (@INSERT  atom list) , возвращающую спи-

сок list, в котором в начало каждого подсписка добавлен атом atom.

Пример: (@INSERT 'A '((B C) (B (C D)) (C D) NIL))

((A B C) (A B (A C D)) (A C D) (A))

3. Реализовать функцию  (DIALOGUE), позволяющую в процессе диа-

лога создавать сложные структуры данных (фреймы на ФРЛ, составные

объекты на ПРОЛОГ). При реализации функции на ФРЛ использовать про-

цедуру FINSTANTIATE, а на ПРОЛОГ - динамическую базу данных. Прове-

рить работу функции на примере заполнения личной карточки студента

(информация о фамилии, группе, имени, отчестве, дате рождения ).

Пример на ФРЛ:

(DIALOGUE)