
- •Предисловие
- •Лабораторная работа 1
- •Темы для предварительной проработки
- •1.1. Порядок выполнения работы
- •1.2. Содержание отчета
- •1.3. Индивидуальные задания
- •1.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 1а
- •Приложение 1б
- •Приложение 1в
- •Приложение 1г
- •Лабораторная работа 2
- •Темы для предварительной проработки
- •2.1. Порядок выполнения работы
- •2.2. Содержание отчета
- •2.3. Индивидуальные задания
- •2.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 2а
- •Приложение 2б
- •Лабораторная работа 3
- •1.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 3а
- •Приложение 3б
- •Приложение 3в
- •Приложение 3г
- •Лабораторная работа 4
- •4.4. Пример решения задачи
- •Контрольные вопросы
- •Лабораторная работа 5
- •Темы для предварительной проработки
- •5.1. Порядок выполнения работы
- •5.2. Содержание отчета
- •5.3. Индивидуальные задания
- •5.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 5а
- •Лабораторная работа 6
- •Темы для предварительной проработки
- •6.1. Порядок выполнения работы
- •6.2. Содержание отчета
- •6.3. Индивидуальные задания
- •6.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 6а
- •Приложение 6б
- •Константы типа драйвера
- •Константы режимов драйвера
- •Константы цветов
- •Константы стиля и толщины линий (для предикатов GetLineStyle, SetLineStyle)
- •Константы типа шрифта (задаются в предикате settextstyle(Font,Direction,Charsize))
- •Лабораторная работа 7
- •Темы для предварительной проработки
- •7.1. Порядок выполнения работы
- •7.2. Содержание отчета
- •7.3. Индивидуальные задания
- •7.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 7а
- •Приложение б
- •Редактор о.І. Шпільова
- •61002 Харків, вул. Фрунзе, 21
Приложение 3г
База данных "Самолеты–Пилоты–Рейсы"
Таблица 3Г.1 – Самолеты
AV# |
AVNAME |
CAP |
LOC |
100 |
AIRBUS |
700 |
NICE |
101 |
B707 |
250 |
PARIS |
102 |
AIRBUS |
300 |
TOULOUSE |
103 |
CARAV |
200 |
TOULOUSE |
104 |
AIRBUS |
350 |
TOULOUSE |
105 |
AIRBUS |
150 |
PARIS |
106 |
CARAV |
250 |
PARIS |
Таблица Самолеты описывает номер (AV#), тип (AVNAME), вместимость (CAP) и место приписки (LOC) самолета.
Таблица 3Г.2 - Пилоты
PL# |
PLNAME |
ADDR |
1 |
SERGE |
NICE |
2 |
JEAN |
PARIS |
3 |
CLAUDE |
GRENOBLE |
4 |
ROBERT |
TOULOUSE |
5 |
MICHEL |
PARIS |
6 |
PAUL |
PARIS |
7 |
PIERRE |
TOULOUSE |
Таблица Пилоты описывает номер (PL#), имя (PLNAME) и адрес (ADDR) пилота.
Таблица Г.3 – Рейсы
VOL# |
PL# |
AV# |
VD |
VA |
HD |
HA |
IT100 |
1 |
100 |
NICE |
PARIS |
7 |
8 |
IT101 |
2 |
100 |
PARIS |
NICE |
11 |
12 |
IT102 |
1 |
101 |
PARIS |
TOULOUSE |
12 |
13 |
IT103 |
1 |
102 |
TOULOUSE |
GRENOBLE |
15 |
16 |
IT104 |
3 |
103 |
TOULOUSE |
PARIS |
9 |
10 |
IT105 |
2 |
104 |
TOULOUSE |
NICE |
6 |
7 |
IT106 |
4 |
104 |
PARIS |
TOULOUSE |
14 |
15 |
IT107 |
6 |
105 |
PARIS |
NICE |
8 |
9 |
IT108 |
2 |
105 |
NICE |
TOULOUSE |
12 |
13 |
IT109 |
1 |
105 |
TOULOUSE |
PARIS |
20 |
21 |
IT110 |
1 |
102 |
GRENOBLE |
TOULOUSE |
17 |
18 |
IT111 |
1 |
104 |
NICE |
PARIS |
10 |
11 |
IT112 |
1 |
103 |
PARIS |
TOULOUSE |
12 |
14 |
IT113 |
1 |
106 |
PARIS |
NICE |
23 |
24 |
IT114 |
3 |
106 |
NICE |
PARIS |
10 |
11 |
Таблица Рейсы описывает номер рейса (VOL#), номера пилота и самолета (PL# и AV#), пункт отправления и назначения (VD и VA), время отправления и прибытия (HD и HA) рейса.
Лабораторная работа 4
Тема работы: работа со списками в среде Turbo Prolog
Цель работы: ознакомление с основными операциями над списками в среде Turbo Prolog 2.0 и освоение основных приемов обработки списков.
Темы для предварительной проработки
Понятие списков в Прологе.
Выполнение рекурсии в Прологе.
Постановка задачи: написать программу на языке Prolog, содержащую правила для выполнения задания по обработке списков, отладить и выполнить программу.
4.1. Порядок выполнения работы
Загрузить Turbo Prolog.
В окне редактора создать программу, определяющую правила для выполнения определенных в задании операций над списками.
Определить, какие из используемых переменных являются входными и выходными.
С помощью трассировки отладить и выполнить программу.
Показать преподавателю результаты работы программы.
4.2. Содержание отчета
Тема лабораторной работы.
Цель работы.
Описание применяемых стандартных и разработанных предикатов.
Текст программы.
Результаты выполнения программы.
4.3. Индивидуальные задания
Для заданного списка целых чисел определить произведение индексов двух самых больших элементов.
Определить сумму индексов максимального и минимального элементов списка целых чисел.
Поменять местами максимальный и минимальный элементы списка целых чисел.
Переписать исходный список L1 в два списка – L2 и L3, в список L2 записать первые n элементов списка L1 (число n ввести с клавиатуры), в список L3 – остаток исходного списка. Объединить полученные списки в списке L4:
n
n+1
Определить, является ли список симметричным относительно краев.
Произвести циклический сдвиг списка k раз.
Преобразовать исходный список по правилу: в левой части сгруппировать отрицательные элементы, в правой – положительные.
Из исходного списка L сформировать список L1, куда поместить все элементы списка L, больше суммы первых k элементов списка L (число k ввести с клавиатуры).
Вычислить среднее арифметическое элементов списка, которые меньше 0, начиная с k-го элемента (число k ввести с клавиатуры).
Вывести сумму элементов списка с номерами от k до n (числа k и n ввести с клавиатуры).
В списке целых чисел вычислить сумму элементов, находящихся между максимальным и минимальным элементами.
Определить произведение двух максимальных и сумму двух минимальных элементов списка целых чисел.
Если максимальный элемент списка имеет четный номер, дописать его после n-го элемента списка (число n ввести с клавиатуры), иначе – исключить из списка.
Вычислить сумму максимального и минимального элементов списка целых чисел. Сформировать новый список из элементов, больших, чем эта сумма.
Из 2 списков L1 и L2 удалить одинаковые элементы, поместив их в список L3.
Из исходного списка целых чисел L сформировать список L1, поместив в него положительные элементы, имеющие четные номера.
Из исходных списков целых чисел L1 и L2 сформировать список L3, в котором элементы должны быть выстроены в порядке возрастания.
Из исходных списков целых чисел L1 и L2 сформировать список L3, куда поместить несовпадающие элементы списков L1 и L2.
Определить, имеются ли в исходном списке два подряд идущие элемента с одинаковыми значениями. Если такие элементы есть, удалить их из списка.
Найти сумму элементов списка, кратных числу Х (это число ввести с клавиатуры). Сравнить полученную сумму с максимальным элементом списка.
Заменить отрицательные элементы списка их порядковыми номерами.
Ввести номер элемента списка с клавиатуры, удалить элементы, стоящие справа от него.
Удалить из списка элементы с заданными номерами.
Из исходного списка сформировать два: в первый поместить четные элементы, во второй – нечетные.
Из исходного списка удалить все отрицательные элементы.
Все отрицательные элементы списка заменить положитель-ными, равными отрицательным по модулю.
Все положительные элементы списка поместить в его конец.
Все элементы списка, равные заданному числу N, поместить в начало списка.
Выполнить циклический сдвиг элементов списка целых чисел n раз (число n ввести с клавиатуры).
В списке поменять местами элементы, имеющие четные и нечетные номера.