- •( Для студентов, обучающихся по направлению подготовки 6.050101 ”Компьютерные науки”)
- •( Для студентов, обучающихся по направлению подготовки 6.050101 ”Компьютерные науки”)
- •Введение
- •Классификация структур данных
- •Структура оперативной памяти
- •Лабораторная работа 1 методы сортировки постоянных таблиц и поиска в таблицах
- •Методические указания к выполнению работы
- •Определение операции сортировки
- •Линейный выбор (сортировка выбором)
- •Линейный выбор с подсчетом
- •Метод "пузырька"
- •{Описание типов}
- •Шейкер – сортировка
- •Метод вставки с прямым включением
- •Метод вставки с бинарным включением
- •Метод двухпутевой вставки
- •Метод Шелла
- •"Быстрая" сортировка (обменная сортировка с разделением)
- •Метод простого двухпутевого слияния (сортировка слиянием)
- •Метод естественного слияния (сортировка слиянием)
- •Дихотомический поиск по совпадению
- •Дихотомический поиск нескольких записей
- •Дихотомический поиск по близости
- •Дихотомический поиск по интервалу
- •Задание к лабораторной работе
- •Варианты заданий
- •Требования к выполнению лабораторной работы
- •Контрольные вопросы
- •Литература
- •Приложение а Примеры программ, выполняющих сортировку таблицы методом линейного выбора
- •Программа на языке с
- •Приложение в краткое описание системы turbo pascal
- •1. Структура pascal-программы
- •2. Простые типы
- •3. Составные типы
- •4. Операторы
- •5. Процедуры и функции
- •6. Файлы
- •7. Управление консолью
- •Содержание
- •Методические указания и задания
- •К лабораторным работам по курсу
- •«Алгоритмы и структуры данных»
- •(Для студентов обучающихся по направлению подготовки 6.050101 ”Компьютерные науки”)
7. Управление консолью
Консоль оператора физически состоит из двух устройств: клавиатуры и монитора. Программы управления консолью содержатся в Unit Crt. Они позволяют считывать символы с клавиатуры без отображения на экране, устанавливать различные режимы отображения текста, определять “окна”, позиционировать курсор, определять положение курсора внутри окна, устанавливать цвет фона и символов, включать-выключать звуковой динамик IBM PC.
Для управления консолью используются следующие системные функции:
- KeyPressed
возвращает TRUE в случае когда на клавиатуре нажата клавиша, порождающая символ. На клавиши Alt, Ctrl, NumLock, ScrollLock, Shift, CapsLock функция не реагирует.
- ReadKey
возвращает символ, соответствующий нажатой клавише, или ждет нажатия. Введенный символ на экране не отображается.
- Window (X1, Y1, X2, Y2)
определяет окно (X1, Y1 – координаты левого верхнего угла, X2, Y2 – правого нижнего; тип координат – байт). Курсор устанавливается в позицию (1,1) окна, то есть в левый верхний угол. Применение процедур и функций из Unit Crt в дальнейшем будет оказывать влияние только на эту область экрана. При запуске Pascal – программы начальное окно совпадает со всем физическим экраном. На экране в каждый момент времени активно только одно (последнее) окно.
- GotoXY (X, Y)
перемещает курсор в позицию (X, Y) (координаты определяются в пределах окна)
- WhereX
определяет X – координату положения курсора относительно текущего окна.
- WhereY
определяет Y – координату положения курсора относительно текущего окна.
Для управления цветовым режимом вывода символов на экран удобнее всего пользоваться системной переменной TextAttr, определенной в секции Interface CRT.
Переменная TextAttr имеет следующую битовую структуру:
-
Номер бита
7
6 5 4
3 2 1 0
Что определяет
Мерцание
1-да, 0-нет
Цвет фона
(8 значений)
Цвет символов
(16 значений)
Цвет
Крас Зел Гол
Ярк Крас Зел Гол
Общая формула для значений типа Byte имеет вид:
Значение = B7*27 + B6*26 + B5*25 + B4*24 + B3*23 + B2*22 + B1*21 + B0*20
Множители B0, B1, … B7 – это значения соответствующих битов, равные 0 или 1, а числовые множители – это два в степени номера бита.
Выражение можно упростить:
Значение=24 *(B7*23 +B6*22 + B5*21 + B4*20)+(B3*23+B2*22+ B1*21+ B0*20)=
= 16* (< цвет фона >) + (< цвет символа>)
(константа, определяющая цвет фона, умножается на 16).
В Unit CRT введены следующие цветовые константы:
{константы для цвета букв и фона}
Black = 0; {0000 - черный}
Blue = 1; {0001 - голубой}
Green = 2; {0010 - зеленый}
Cyan = 3; {0011 - бирюзовый}
Red = 4; {0100 - красный}
Magenta = 5; {0101 - малиновый}
Brown = 6; {0110 - коричневый}
LightGray = 7; {0111 – свело-серый}
{константы для цвета букв}
DarkGray = 8; {1000 – темно-серый}
LightBlue=9; {1001 – светло-голубой}
LightGreen=10; {1010 – светло-зеленый}
LightCyan=11; {1011 - салатный}
LightRed=12; {1100 – светло-красный}
LightMagenta=13; {1101 - розовый}
Yellow = 14; {1110 - желтый}
White = 15; {1110 - белый}
Blink = 128; {мерцание букв}
Пример цветовых установок:
TextAttr:= 16*4 + 15=79; или TextAttr:=16*Red + White;
( на красном фоне белые символы )
Для работы с цветом используются также следующие процедуры:
-
ClrScr
очищает текущее окно, установленное процедурой Window или взятое по умолчанию (то есть весь экран). При этом окно как бы закрашивается установленным цветом фона.
-
TextColor (Color)
устанавливает цвет выводимых на экран символов (параметр может принимать значения от 0 до 31).
-
TextBackground (Color)
устанавливает цвет фона под символом.
-
HighVideo
устанавливает повышенную яркость выводимых символов.
-
LowVideo
устанавливает обычную яркость выводимых символов.