Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторная работа №8 - Программирование в текстовом режиме






Лабораторная работа №8. Программирование в текстовом режиме

(Библиотека conio.h)
Функции ввода/вывода с консоли

Функции работы с текстами выполняются в любом (из пяти возможных) текстовом режиме; выбор режима зависит от типа видеоадаптера и монитора. Текстовый режим определяется вызовом textmode.

Вывод текста и манипуляция с ним
Запись и чтение текста:
cprintf посылает форматированный вывод на экран
cputs посылает строку на экран
putch посылает один символ на экран
getche читает символ и отображает его на экране

Манипулирование текстом (и курсором) на экране:
clrscr очищает текстовое окно
clreol очищает строку с позиции курсора
delline удаляет строку, на которой находится курсор
gotoxy устанавливает курсор
insline вставляет пустую строку под строкой, содержащей курсор
movetext копирует текст с одного места экрана на другое

Пересылка блоков текста в (из) память(и):
gettext копирует блок текста с экрана в память
puttext копирует блок текста из памяти на экран.

Программы вывода текста на экран предусматривают использование по умолчанию полноэкранных окон, так что вы можете писать, читать и манипулировать текстом без какой-либо предварительной установки режима. Текст пишется сразу на экран функциями консольного вывода cprintf, cputs и putch, а для отображения вводимого символа (эхо) используется функция getche. Текст укладывается внутрь окна следующим образом: если текст заходит за правую границу окна, то соответствующий отрезок текста переносится на начало следующей строки.
Когда текст находится на экране, вы можете: стереть его (т. е. очистить активное окно) - clrscr, уничтожить часть строки - clreol, удалить строку целиком - delline, вставить пустую строку - insline. Последние три функции действуют в соответствии с положением курсора; вы можете передвигать курсор к определенному месту при помощи функции gotoxy. Вы также можете скопировать целый блок текста из одного прямоугольного участка окна в другой командой movetext.
Перенос прямоугольного блока текста с экрана в память вызывается функцией gettext, а обратная пересылка на экран (в любое желаемое место) выполняется функцией puttext.
Управление режимами и окнами
textmode установка экрана в текстовый режим
window задание окна в текстовом режиме
Экран может быть установлен в один из нескольких текстовых режимов с помощью textmode (ограничения связаны только с типами адаптера и монитора вашей системы). Эта функция устанавливает полноэкранное текстовое окно в заданный режим и очищает его.
Когда установлен текстовый режим, вы можете работать с полным экраном или с его частью - окном, которое ограничивает программный вывод. Окно создается вызывом функции window, определяющей, какую область экрана займет окно.

 

Управление атрибутами


Установка цвета символов и цвета фона:
textcolor устанавливает цвет текста (атрибут)
textbackground устанавливает цвет фона (атрибут)
textattr устанавливает цвет символа и цвет фона (атрибуты) одновременно.
Изменение интенсивности:
highvideo устанавливает повышенную интенсивность текста
lowvideo устанавливает пониженную интенсивность текста
normvideo устанавливает нормальную интенсивность текста

Функции управления атрибутами устанавливают текущий атрибут, который задается 8-битным значением: четыре младших бита управляют цветом текста, следующие три определяют цвет фона, а самый старший бит является признаком мигания.
После установки дальнейший текст будет выводиться в соответствии с текущими атрибутами. С помощью функций управления атрибутами вы можете устанавливать цвет символа и цвет фона раздельно (textcolor и textbackground) или одновременно вызовом textattr с заданной комбинацией цветов. Также может быть указан признак мигания символа. Большинство цветных мониторов в цветовых режимах правильно передают цвета. Нецветные мониторы могут переводить цветное изображение в нецветное или создавать различные визуальные эффекты: жирный шрифт, подчеркивание, инверсное отображение и т. д.
Вы можете поменять изображение высокой интенсивности на низкую вызовом lowvideo (выключает бит высокой интенсивности для символов) или, наоборот, поменять изображение низкой интенсивности на высокую вызовом highvideo (включает бит высокой интенсивности). Оперируя интенсивностью символа, вы можете вернуться к исходному уровню с помощью normvideo.

Запрос состояния
gettextinfo заполняет структуру text_info информацией о текущем текстовом окне
wherex сообщает x координату ячейки с курсором
wherey сообщает y координату ячейки с курсором

Текстовые окна

По умолчанию текстовое окно занимает весь экран. Вы можете изменить его, сократив вызовом функции window. Текстовые окна могут включать до 25 строк (максимальное количество строк экрана для всех текстовых режимов) и до 40 или 80 колонок (в зависимости от установленного текстового режима).
Отсчет координат текстового окна Турбо Си ведется от верхнего левого угла. Координаты текстового окна в левом верхнем углу - (1, 1); координаты правого нижнего угла (при 80-символьном полноэкранном текстовом окне) - (80, 25).

Тип text_modes
Вы можете перевести ваш монитор в один из пяти текстовых режимов, вызвав функцию textmode. Перечислимый тип text_modes, определенный в CONIO.H, дает возможность использовать символические имена для установки аргумента mode в функции textmode, взамен " сухого" номера режима. Конечно, если вы используете символичес кие константы, то должны включить #include conio.h в текст вашей программы.

Числовые и символьные значения, определенные text_modes, следующие:

LASTMODE -1 Предыдущий текстовый режим
BW40 0 Черно-белый, 40 колонок
C40 1 16-цветный, 40 колонок
BW80 2 Черно-белый, 80 колонок
C80 3 16-цветный, 80 колонок
MONO 7 Монохромный, 80 колонок


Цвета текста

 

Цвет символа, занимающего ячейку, определяется как foreground; цвет фона ячейки определяется как background. Цветные мониторы с цветным видеоадаптером могут показывать до 16 цветов; монохромные мониторы заменяют цвета различными визуальными атрибутами (высокая интенсивность, подчеркивание, инверсное изображение и т. д.).
В файле CONIO.H определены символические имена для различных цветов. Если вы используете символические константы, вы должны включить в текст вашей программы строку #include conio.h.
Следующая таблица представляет список этих символических констант и соответствующих им числовых значений. Запомните, что только первые восемь цветов доступны для выбора фона (background), в то время как все 16 доступны для выбора цвета символов (foreground).
BLACK 0 фона и символа ЧЕРНЫЙ
BLUE 1 фона и символа СИНИЙ
GREEN 2 фона и символа ЗЕЛЕНЫЙ
CYAN 3 фона и символа ГОЛУБОЙ
RED 4 фона и символа КРАСНЫЙ
MAGENTA 5 фона и символа МАЛИНОВЫЙ
BROWN 6 фона и символа КОРИЧНЕВЫЙ
LIGHTGRAY 7 фона и символа СВЕТЛОСЕРЫЙ
DARKGRAY 8 символа ТЕМНОСЕРЫЙ
LIGHTBLUE 9 символа СВЕТЛОСИНИЙ
LIGHTGREEN 10 символа СВЕТЛОЗЕЛЕНЫЙ
LIGHTCYAN 11 символа СВЕТЛОГОЛУБОЙ
LIGHTRED 12 символа СВЕТЛОКРАСНЫЙ
LIGHMAGENTA 13 символа СВЕТЛОМАЛИНОВЫЙ
YELLOW 14 символа ЖЕЛТЫЙ
WHITE 15 символа БЕЛЫЙ
BLINK 128 символа МЕРЦАЮЩИЙ


Вы можете добавить символическую константу BLINK (числовое значение 128) для аргумента цвета символа, если вы хотите чтобы символ мерцал.

Высокоэфективный вывод: переменная directvideo

Консольный пакет ввода/вывода Турбо Си включает переменную, называемую directvideo. Эта переменная направляет ваш программный вывод прямо в видеопамять (directvideo = 1) или переключает его на использование BIOS - базовой системы ввода/вывода (directvideo = 0).
Предопределенное значение directvideo = 1 (консольный вывод направляется прямо в видеопамять). В общем случае использование непосредственного вывода в видеопамять дает высокую эффективность (быстрый вывод), но для этого требуется 100% совместимость с IBM PC вашего компьютера: исполнение адаптера дисплея должно быть идентично IBM. Установка directvideo = 0 предназначена для любой машины BIOS совместимой с IBM, но текст будет выводиться на консоль медленее.


Задания
1. Написать программу, в которой выполняются следующие действия:
создается текстовое- окно размером 15х15 в центре экрана;
изменяется цвет фона для окна; -
- изменяется цвет символов;
появляются два символа: первый в позиции (1, 1), - второй в позиции (2, 2).
по нажатию клавиши оказавшийся верхним символ- перепрыгивает через нижний по диагонали в позицию (3, 3), (4, 4) … При достижении края экрана очередной символ снова появляется в позиции (1, 1).
программа- прекращает работу по нажатию клавиши ESC.
2. Написать программу, в которой выполняются следующие действия:
создается текстовое окно в центре- экрана;
изменяется цвет фона для окна; -
появляется меню из нескольких- пунктов (задавать при помощи массива, чтобы была возможность изменения количества пунктов), в котором при помощи textbackground подсвечен первый пункт;
по нажатию клавиш вверх, вниз подсветка перемещается в- соответствующем направлении;
по нажатию клавиши Enter запускается функция, - соответствующая подсвеченному пункту меню (пустышка, очищающая экран, выдающая сообщение и завершающаяся при нажатии клавиши ESC);
выход из программы- либо по нажатию клавиши ESC, либо предусмотренным для этого пунктом меню.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал