Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1414-Лекции.doc
Скачиваний:
29
Добавлен:
25.12.2018
Размер:
419.84 Кб
Скачать

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(список операндов).

В список операндов, разделяющихся запятыми, входят следующие операнды:

  1. <номер окна> - используется в качестве ссылки на оператор makewindow;

  2. <цвет символов и фона> - определяется суммой десятичных значений цвета символов и цвета фона, определяемых следующим образом:

Цвет символов

Цвет фона

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), где в скобках указывается номер первого окна.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]