- •2.2.2.1 Вызов Турбо-Пролога и главное меню системы
- •2.2.3 Редактор Турбо-Пролога
- •2.2.3.1 Создание и редактирование программного файла
- •3 Лекция №2. Элементы и конструкции языка Турбо-Пролог
- •3.1 Основные вопросы
- •3.2 Текст лекции
- •3.2.1.1 Имена (идентификаторы)
- •3.2.2.1 Предикаты
- •3.2.2.2 Факты
- •3.2.2.3 Правила
- •3.2.2.4 Цели
- •4 Лекция №3. Объекты данных. Константы, переменные, структуры, списки.
- •4.1 Основные вопросы
- •4.2 Текст лекции
- •Стандартные типы доменов Турбо-Пролога
- •4.2.2.1 Константы
- •4.2.2.2 Переменные
- •4.2.2.3 Структуры
- •4.2.2.3 Списки
- •5 Лекция №4. Структура программы на Турбо-Прологе
- •5.1 Основные вопросы
- •5.2 Текст лекции
- •5.2.2 Структура программы на Турбо-Прологе – до 10 мин.
- •5.2.3.1 Раздел опций компилятора
- •5.2.3.2 Раздел констант
- •5.2.3.3 Раздел доменов
- •5.2.3.4 Раздел предикатов
- •5.2.3.5 Раздел утверждений
- •5.2.3.6 Раздел дбд
- •5.2.3.7 Раздел целей
- •6 Лекция №5. Унификация и поиск с возвратом: программа с фактами
- •6.1 Основные вопросы
- •6.2 Текст лекции
- •7 Лекция №6. Унификация и поиск с возвратом: программа с фактами и правилом
- •7.1 Ключевые (основные) вопросы (моменты)
- •7.2 Текст лекции
- •8 Лекция №7. Унификация и поиск с возвратом: программа с фактами и несколькими правилами
- •8.1 Основные вопросы
- •8.2 Текст лекции
- •9 Лекция №8. Вопросно-ответные системы
- •9.1 Основные вопросы
- •9.2 Текст лекции
- •10 Лекция №9. Средства отладки в Турбо-Прологе
- •10.1 Основные вопросы
- •10.2 Текст лекции
- •/*Программа 5 */
- •11 Лекция №10. Простейший ввод-вывод. Окна.
- •11.1 Основные вопросы
- •11.2 Текст лекции
- •11.2.1 Простейший ввод-вывод
- •11.2.2 Окна
- •12 Лекция №11. Управление поиском решений: предикаты отсечения и возврата
- •12.1 Основные вопросы
- •12.2 Текст лекции
- •/* Программа 5 */
- •Vse_reshenia:-roditel(X,y), write(X, "родитель", y), nl, fail.
- •Vita - родитель sasha
- •/* Программа 6 */
- •/* Программа 7 */
- •13 Лекция №12. Арифметика в Турбо-Прологе. Рекурсия.
- •13.1 Основные вопросы
- •13.2 Текст лекции
- •/* Программа 8 */
- •/* Программа 9 */
- •14 Лекция №13. Динамические базы данных
- •14.1 Основные вопросы
- •14.2 Текст лекции
- •/* Программа работы с дбд*/
- •15 Лекция №14. Работа со списками
- •15.1 Основные вопросы
- •15.2 Текст лекции
- •/* Программа 10*/
- •/* Программа 11 */
- •/* Программа 12 */
- •16 Лекция №15. Экспертные системы
- •16.1 Основные вопросы
- •16.2 Текст лекции
- •/* Программа эс*/
11 Лекция №10. Простейший ввод-вывод. Окна.
Время: 2 часа (90 мин.)
11.1 Основные вопросы
-
ввод-вывод;
-
окна;
-
внутренние цели.
11.2 Текст лекции
11.2.1 Простейший ввод-вывод
Для организации простейшего ввода-вывода используются стандартные предикаты Турбо-Пролога, которые не надо описывать в разделе predicates .
Ввод информации обеспечивается стандартными предикатами следующих типов:
readchar(X) - чтение символа;
readint(X) - чтение целого числа;
readreal(X) - чтение действительного числа;
readln(X) - чтение строки;
Ввод информации обеспечивается стандартным предикатом write по формату:
write(e1, e2, . . . , en).
где – аргументы, которыми обычно являются переменные и строки. Например:
write(X).
write("Введите данные").
и т.п.
Для управления печатью может быть использован символ перевода строки(nl). Например:
write(X, "родительjhj", Y), nl.
Для обработки вводимой с помощью предиката readln(X) строки можно использовать предикат frontchar, имеющий формат:
frontchar(X, char, string)
где X - переменная принявшая значение введённой строки; char - некоторый символ, с которым будет сравниваться голова введённой строки; string - некоторая подстрока с которой будет сравниваться хвост введённой строки. Следует отметить, что второй и третий операнды предиката frontchar могут также определяться переменными. В этом случае интерпретация предиката определяется контекстом. Например выражение frontchar(X, ’a’, _) примет истинное значение если первым символом строки, конкретизировавшей переменную X, будет литера a.
11.2.2 Окна
Для создания окон в Турбо-Прологе используется стандартный предикат makewindow, имеющий следующий формат:
makewindow(список операндов).
В список операндов, разделяющихся запятыми, входят следующие операнды:
-
<номер окна> - используется в качестве ссылки на оператор makewindow;
-
<цвет символов и фона> - определяется суммой десятичных значений цвета символов и цвета фона, определяемых следующим образом:
Цвет символов |
Цвет фона |
0 - чёрный |
0 - чёрный |
1 - синий |
16 - синий |
2 - зелёный |
18 – голубой |
3 - голубой |
32 - зелёный |
4 - красный |
64 - красный |
5 - фиолетовый |
80 - фиолетовый |
6 - коричневый |
96 - коричневый |
7 - белый |
112 - белый |
3.<цвет рамки> - определяется десятичным значением, приводимым ниже:
1 – синий |
5 - фиолетовый |
2 – зелёный |
6 - жёлтый |
3 – голубой |
7 - белый |
4 – красный |
8 - коричневый |
4.<"метка окна"> - определяет заголовок, который будет помещён в середине верхней линии рамки окна (если на месте метки пробел - заголовка не будет);
5.<верхняя строка> - определяет номер верхней строки окна в диапазоне (0-24);
6.<левый столбец> - определяет номер левого столбца окна в диапазоне (0-79);
7.<количество строк> - определяет количество строк в окне (максимально 25);
8.<количество столбцов> - определяет количество столбцов в окне (максимально 80).
Примерами оператора makewindow могут служить следующие операторы:
makewindow(1, 2, 7, " ", 0, 0, 25, 80).
makewindow(1, 3, 9, "меню", 4, 10, 20, 50).
Для очистки текущего окна используется стандартный предикат clearwindow.
Удаление текущего окна выполняется с помощью предиката removewindow.
Для выбора и активации окна с заданным номером используется предикат gotowindow(integer), у которого целочисленный аргумент, указанный в скобках, определяет номер окна.
Для смены текущего окна и активации нового окна с другим номером используется предикат shiftwindow(integer), где в скобках указывается номер первого окна.