- •II. Реализация правил
- •Часть 1. Реализовать задания n 21 - 25 из 1.1.5.
- •Часть 2. Входной файл на внешнем носителе содержит исходные
- •Часть 1. Реализовать задание n 35 из 1.2.1.
- •Часть 2. Реализовать задания n 39 - 40 из 1.2.2.
- •Часть 3. Реализовать задание n 45 из 1.2.3.
- •Укажите вашу учебную группу
- •Укажите вашу фамилию
- •Комната1
Часть 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)