46019 (665326), страница 32

Файл №665326 46019 (Turbo C++ Programer`s guide) 32 страница46019 (665326) страница 322016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 32)

Свопинг с дополнительной памятью инициализируется функцией _OvrInitEms. Вот ее прототип:

extern int far _OvrInitEms

(*

unsigned emsHandle,

unsigned emsFirst,

unsigned emsPages

*)

_OvrInitEms и _OvrinitExt определены в dos.h

Если параметр emsHandleравен нулю, программа управления оверлеями проверяет наличие дополнительной памяти и распределяет ее количество (если может), достаточное для размещения там всех оверлеев, минус размер оверлейногобуфера. В противном случае emsHandle должен быть допустимым логическим номером EMS, emsFirst - первой используемой EMS страницей, а emsPages - числом доступных программе управления оверлеями страниц. Если дополнительная память доступна, то данная функция возвращает 0.

Расширенная память (Ext)

Свопингс расширеннойпамятью инициализируется функцией _ OvrinitExt). Вот ее прототип:

extern int far -OvrininExt

(*

unsigned long extStart,

unsigned long extLength

*);

Если параметр extStart равен нулю, то программа управления оверлеями проверяет наличие расширенной памяти. Если это возможно, то для свопинга отводится ее участок, равный сумме всех оверлеев, минус размер оверлейного буфера. Впротивном случае extStart содержит начало для использования расширенной памяти, с extLength байт, доступных для использования программой управления оверлеями. Если extLength равна нулю, то программа управления оверлеями может использовать всю расширеннуюпамятьс адресами, старшимичем extStart. Данная функция возвращает 0, если расширенная память доступна. _OvrinitExt определена в dos.h.

Важное замечание !

Использование расширенной памяти не стандартизовано. Хотя программа управленияоверлеями и пробует применить все известные методы для определения размера ужеиспользованнойрасширенной памяти, эту функцию следует применять осторожно. Например, если у вас в системе установлена программа кэширования жесткого диска, использующая 2 Мб оперативной памяти (и расширенной памяти в том числе), то можно заставить программу управления оверлеями занять остальную часть расширенной памяти при помощи вызова:

if (_OvrinitExt (1024L * (2048 + 1024), OL))

puts ("Доступная расширенная память для свопинга оверлеев отсутствует");

Глава 5 Видео функции

Turbo C++ поставляетсяс полной библиотекойграфических функций, позволяющих создание экранных графиков и диаграмм. Данная глава содержит краткое описание видео режимов и окон. Затем объясняется,как программировать в текстовом играфическом режимах.

Видео функцииTurboC++ аналогичны соответствующим подпрограммамв Turbo Pascal. Если вы не знакомы с методами управления экранными режимами вашего PC или создания и управления окнами и графическими окнами, потратьте несколько минут и прочтите краткое изложение этих вопросов.

Несколько слов о видео режимах

Ваш компьютер обязательно имеет некоторый видео адаптер. Это может быть Монохромный дисплейный адаптер (MDA) для базового (только текстового) дисплея, либо это может быть графический адаптер, например Цветной графическийадаптер (CGA), Улучшенный графический адаптер (EGA), либо монохромный графический адаптер Hercules. Каждый из этих адаптеров может работать в нескольких режимах; режим определяет величину экрана - 80 или 40 символов в строке (только в текстовом режиме), разрешающую способность экрана (только в графическом режиме) и тип дисплея (цветнойили черно-белый).

Рабочий режим экрана определяется, когда ваша программа вызывает одну из функций определения режима (textmode, Initgraph или setgraphmode).

- В текстовом режиме экран компьютера разделен на ячейки (80 или 40 столбцов в ширину и 25, 42 или 50 строк по высоте). Каждая ячейка состоит из аттрибута и символа . Символ представляет собой имеющий графическое отображение ASCII-символ, а аттрибут задает, каким образом данный символ будет выведен на экран (его цвет, яркость, и т.д.). Turbo C+ + предоставляет полный набор подпрограмм для манипулирования текстовым экраном, для вывода текста непосредственно на экран и управления аттрибутами ячеек.

- В графическом режиме экран компьютера делится на пиксели; каждый пиксель представляет собой отображение на экране одной точки. Число пикселей на экране (т.е. его разрешающая способность) зависит от типа подключенного к вашей системе видео адаптера и режима, в который установлен этот адаптер. Для получения на экране графических изображений Turbo C++ предоставляет библиотеку графических функций: вы можете создавать на экране линии и формы, заполненные шаблонами замкнутые области, а также управлять цветом каждого пикселя.

В текстовом режиме позиция верхнего левого угла экрана определяетсякоординатами (1,1),где x-координата растет слева -направо, а y-координата растет сверху-вниз. В графическом режиме позиция верхнего левого угла определяется координатами (0,0), с теми же направления возрастания координат.

Несколько слов о текстовых и графических окнах

Turbo C++ обеспечивает функции для создания окон и управления ими в текстовом режиме (и графических окон в графическом режиме). Если вы не знакомыс текстовыми и графическими окнами, ознакомьтесь со следующим кратким их изложением. Функции Turbo C++, позволяющие управлять текстовыми и графическими окнами, описаны нижев разделах "Программирование в текстовом режиме" и "Программирование в графическом режиме".

Что такое окно ?

Окно представляет собой прямоуголтную область,

определенную на видео экране вашего PC, когда он находится в

текстовом режиме. Когда ваша программа выполняет вывод на

экран, то область вывода будетв таком случае ограничена активным окном. Остальная часть экрана (вне окна) остается бе изменений.

По умолчанию размер окна равен всему экрану. Ваша программа можетизменить данное умолчание полноэкранного текстового окна на текстовое окно, меньшее чем полный экран (при помощи функции window). Эта функция задает позицию окна в экранных координатах.

Что такое графическое окно ?

В графическом режиме вы также можете определить некоторую прямоугольнуюобласть экрана PC; эта область называется графическим окном. Когда ваша графическаяпрограмма выполняет вывод рисунков и т.д., графическое окно действует каквиртуальный экран. Остальная часть экрана (вне графического окна) остается без изменений. Определить графическое окно можно через экранные координаты, вызвав функцию setviewport.

Координаты

За исключением функций определения текстовых играфических окон,все остальныефункции, как текстового, так и графического режимов, даются в локальных координатах активного текстовогоили графческого окна, а не в абсолютных экранных координатах. При этом верхний левый угол текстового окна будет являться началом координат (1,1); в графическомрежиме начало координат графического окна будет равно (0,0).

Программирование в текстовом режиме

В данном разделе приводится краткоеизложение функций, используемых в текстовом режиме. Более подробную информацию об этих функциях см. в Главе 1, "Библиотека исполняющей системы" В

Справочнике по библиотеке.

В Turbo C++ пакет функций прямого ввода/выводана консоль (cprintf, cputs и т.д.) обеспечивает высококачественный вывод текста, управление окнами, позиционирование курсора и управление аттрибутами видео изображений. Всеэти функции являются частью стандартных библиотек Turbo C++; они имеютпрототипы в файле заголовка conio.h.

Функции консольного ввода/вывода

Функции текстового режима TUrbo C++ работают в любом из шести возможных текстовых видео режимов.Режимы, доступные в вашей системе, зависят от типа видео адаптера и монитора системы. Текущий текстовый режим задается вызовом textmode. Мы объясним, как использовать эту функцию, ниже в данной главе, и кроме того, она описана в Главе 1 Справочника по библиотеке.

Функции текстового режима делятся на четыре отдельные группы:

- вывода и манипулирование текстом

- управления окнами и режимом

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

- запроса состояния

Эти четыре группыфункций длятекстового режима рассматриваются в следующих четырех разделах:

Вывод и манипулирование текстом

Ниже перечислены функции вывода и манипулирования текстом в текстовом режиме:

Запись и чтение текста:

cprintfПосылает на экран форматированный вывод.

cputsПосылает на экран строку.

getcheСчитывает символ с эхо-отображением его на экране

putchПосылает на экран отдельный символ.

Манипулирование текстом (и курсором) на экране:

clreolСтирание от курсора до конца строки.

clrscrСтирание текстового окна.

dellineУдаление текущей строки курсора.

gotoxyПозиционирование курсора.

InslineВставка пустой строки под текущей позицией курсора.

movetextКопирование текста из одной области экрана на другую.

Пересылка блоков текста между памятью и экраном:

gettextКопирование текста из области экрана в память.

puttextКопирование текста из памяти в область экрана.

По умолчанию ваши программы экранного вывода работают с полноэкранным текстовым окном, поэтому вы можете в них сразу же начинать писать, читать и манипулировать текстом без каких-либо предварительных установок режима. Записьтекста на экран выполняется при помощи консольных функций прямого вывода cprintf, cputs и putch, а ввод с консоли с эхо-отображением символовнаа экране выполняется функцией getche. Циклический переход текста по экрану определяется глобальной переменной -wscroll. Если _wscroll равна1, тотекст при достиженииконца строки переходит на следующую строку экрана, причем при необходимостивыполняется вертикальный скроллинг. Если _wscroll равен 0, то текст переходит на ту же самую строку, и скроллинг невыполняется. По умолчанию _wscroll равна 1.

После того, как ваш текст выведен на экран, вы можете стереть активное окно при помощи clrscr, либо стереть часть строки от текущей позиции курсора при помощи clreol, либо удальть целую строку при помощи delline, либо вставить пустую строку при помощи insline. Трипоследние функции работают относительно текущей позиции курсора; перемещение курсора в желаемую позицию выполняется при помощи gotoxy. Вы можете также скопировать целый блок текста из одной прямоугольной области в другую при помощи movetext.

Имеется также функция копирования прямоугольной области текста с экрана в память gettext и обратная функция копирования текста из памяти на экран (в любую позицию) puttext.

Управление окнами и режимом

Существует две функции управления окнами и режимом:

textmode Устанавливает текстовый режим экрана.

window Определяет окно текстового режима.

Функция textmode позволяет устанавливать для экрана один из нескольких текстовыхвидео режимов(эта возможность ограничена только типами монитора и адапрера, установленных в вашей системе. Функция инициализирует экран как полноэкранное текстовое окно в конкретном заданном режиме и очищает экран от любых оставщихся на нем текстов или изображений.

Когда экран находится в текстовом режиме, вы можете выполнять полноэкранныйвывод на него, либоустановить для вывода часть экрана - окно- в которое ваша программаи будет выполнять дальнейший вывод текста. Для создания текстового окна следует вызвать функцию window, задав область на экране, которую это окно будет занимать.

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

Ниже кратко перечислены функции управления аттрибутами видео изображений в текстовом режиме:

Установка аттрибутов переднего плана и фона:

textattr Одновременная установка (аттрибутов) цветоа

переднего плана и фона.

textbackground Установка (аттрибута) цвета фона.

textcolor Установка (аттрибута) цвета переднего плана.

Модификация яркости:

highvideo Установка повышенной яркости текста.

lowvideo Установка низкой яркости текста.

normvideo Установка обычной яркости текста.

Функцииуправления аттрибутами устанавливают текущий аттрибут, представляющий собой 8-битовое значение. Четыре младших бита аттрибута задают цвет переднего плана, следующие три бита задают цвет фона, а старший бит задает "мигание" изображения, для которого установлен данный аттрибут.

Вывод всех последующих текстов выполняется с использованием текущего аттрибута. Благодаря функциям управления аттрибутами вы можете устанавливать цвета фона и переднего плана (символов)как порознь (textbackground и textcolor), так и объединяя спецификации этих цветов в одном обращении к textattr. Вы можете задавать также аттрибут мигания переднегоплана (т.е. собственно выводимых символов). Большинство цветных мониторов в цветных режимах дает истинные заданные цвета. Не-цветные мониторы могут преобразовывать некоторые изэтих аттрибутов или все аттрибуты в различные монохроматические оттенки или другие визуальные эффекты,как например, жирный шрифт, подчеркивание, инверсное изображение и т.д.

Вы можете также переопределить для переднего плана изображения яркость цветов вывода при помощи функции lowvideo (которая выключает бит повышенной яркости отображения символов). Либо наоборот, вы можете изменить яркость на повышенную при помощи функции highvideo (которая включает бит повышенной яркости). Когда выделение яркостьюбольшене требуется,можно восстановить исходную установку яркости при помощи функции normvideo.

Характеристики

Тип файла
Документ
Размер
2,71 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6518
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее