- •1.Технология программирования. Основные понятия и подходы 8
- •Технология программирования. Основные понятия и подходы
- •1.1. Технология программирования и основные этапы ее развития
- •1.2. Жизненный цикл и этапы разработки программного обеспечения
- •Контрольные вопросы
- •2.Разработкаструктуры программы и модульное программирование
- •2.1. Цель модульного программирования
- •2.2. Основные характеристики программного модуля
- •2.3. Методы разработки структуры программы
- •Контрольные вопросы
- •3.Тестирование и отладка программного средСтВа
- •3.1. Принципы и виды отладки программного средства
- •3.2. Заповеди отладки программного средства
- •3.3. Автономная отладка программного средства
- •3.3. Комплексная отладка программного средства
- •Контрольные вопросы
- •4. Обеспечение качества программного средства
- •4.1. Общая характеристика процесса обеспечения качества программного средства
- •4.2. Обеспечение легкости применения программного средства
- •4.3. Обеспечение эффективности программного средства
- •4.4. Обеспечение сопровождаемости программного средства
- •Контрольные вопросы
- •5. Документирование программных средств составление программной документации
- •5.1. Виды программных документов
- •5.2. Пояснительная записка
- •5.3. Руководство пользователя
- •5.4. Руководство системного программиста
- •5.5. Основные правила оформления программной документации
- •Контрольные вопросы
- •6. Объектный подход к разработке программных средств
- •6.1. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств
- •6.2. Особенности объектного подхода к разработке внешнего описания программного средства
- •6.3. Особенности объектного подхода на этапе конструирования программного средства
- •Контрольные вопросы
- •7. Постановка и алгоритмизация задач
- •7.1. Понятие алгоритма
- •7.2. Способы описания алгоритмов
- •Условные обозначения блоков
- •7.3. Структурные схемы алгоритмов
- •Контрольные вопросы
- •8. Основы языка
- •8.1. Алфавит языка
- •8.2. Структура программы
- •Контрольные вопросы
- •9. Типы данных
- •9.1. Целые типы
- •9.2. Вещественные типы
- •9.3. Логический тип
- •9.4. Символьный тип
- •9.5. Выражения
- •Арифметические операции
- •Операция отрицания
- •Операции конъюнкция, дизъюнкция, «исключающее» или
- •Приоритет операций
- •9.6. Константы
- •9.7. Совместимость типов данных
- •Контрольные вопросы
- •10. Линейные алгоритмы
- •10.1. Пустой и составной операторы
- •10.2. Оператор присваивания
- •10.3. Простейший ввод и вывод
- •Контрольные вопросы
- •11. Разветвляющиеся алгоритмы
- •11.1. Оператор перехода
- •11.2. Условный оператор
- •11.3. Оператор выбора
- •Контрольные вопросы
- •12. Циклические алгоритмы
- •12.1. Циклы с параметром
- •12.2. Циклы с условием
- •Контрольные вопросы
- •13. Пользовательские типы данных
- •13.1. Перечисляемый тип
- •13.2. Тип - диапазон
- •13.3. Массивы
- •13.4. Записи
- •13.5. Множества
- •Контрольные вопросы
- •14. Работа со строками
- •Контрольные вопросы
- •15. Процедуры и функции
- •15.1. Параметры-значения
- •15.2. Параметры-переменные
- •15.3. Параметры-константы
- •15.4. Открытые параметры-массивы
- •15.5. Бестиповые параметры
- •15.6. Процедурные типы
- •15.7. Рекурсия
- •Контрольные вопросы
- •16. Типизированные константы
- •Контрольные вопросы
- •17. Модули
- •Interface
- •Implementation
- •Interface
- •18.2. Поиск с барьером
- •83.3. Двоичный (бинарный) поиск
- •Контрольные вопросы
- •19. Алгоритмы сортировки
- •19.1. Сортировка выбором
- •19.2.Сортировка обменом (методом «пузырька»)
- •19.3. Сортировка включением
- •Контрольные вопросы
- •20. Файлы
- •20.1. Текстовые файлы
- •20.2. Компонентные файлы
- •20.3. Бестиповые файлы
- •20.4. Последовательный и прямой доступ
- •Контрольные вопросы
- •21.Программирование с использованием динамической памяти
- •21.1. Указатели и операции над ними
- •21.2. Процедуры и функции, работающие с указателями
- •Контрольные вопросы
- •22. Модуль crt (основные возможности)
- •Контрольные вопросы
- •22. Модуль graph (основные возможности)
- •22.1. Базовые процедуры и функции
- •22.2. Экран и окно в графическом режиме
- •22.3. Вывод точки
- •22.4. Вывод линии
- •22.5. Построение прямоугольников
- •22.6. Построение многоугольников
- •22.7. Построение дуг и окружностей
- •22.8. Работа с текстом
- •Контрольные вопросы
- •Заключение
- •Библиографический список
22.2. Экран и окно в графическом режиме
По аналогии с текстовыми режимами графический экран может рассматриваться как одно большое или несколько меньших по размеру окон. После установки окна вся остальная площадь экрана как бы не существует, и весь ввод-вывод осуществляется только через окно. В каждый отдельный момент может быть активным только одно окно. Если окон несколько, за переключение ввода-вывода в нужное окно отвечает программист.
По умолчанию окно занимает весь экран, значения координат его левого верхнего и правого нижнего угла устанавливаются автоматически процедурой инициализации InitGraph.
Если требуется создать окно, следует воспользоваться процедурой
SetViewPort (x1,y1,x2,y2:integer,c:boolean);
где x1,y1– координаты левого верхнего угла,x2,y2– координаты правого нижнего угла окна. Параметрcопределяет, будет ли рисунок отсекаться при выходе за границы окна (c:=True) или нет(c:=False).
После создания окна за точку отсчета принимается верхний левый угол окна, имеющий координаты (0,0). Координатную систему полного экрана можно восстановить, в частности, с помощью ClearDevice или задав в процедуре установки окна максимально возможные значения:
SetViewPort (0, 0, GetMaxX, GetMaxY, true);
Необходимо помнить, что в отличие от текстовых окон графические окна после команды установки фона SetBkColorи очистки с помощьюClearViewPortменяют фон вместе с общим фоном экрана. Поэтому фон (точнее «закраску») графического окна следует устанавливать с помощью процедурSetFillStyleиSetFillPattern. Прямоугольник можно построить с помощью процедурыBar.
Пример 22.1
SetViewPort(100,50,500,200,True);
SetFillStyle(1,3);
Bar(100,50,500,200);
22.3. Вывод точки
Какие бы изображения не выводились на экран, все они построены из точек, теоретически можно создать любое изображение путем построения точек определенного цвета в нужном месте экрана. В библиотеке Graph вывод точки осуществляется процедурой
PutPixel(x,y:integer,color:word);
где x,y -координаты расположения точки,color– цвет.
Возможные значения color приведены в таблице 22.3
Таблица 22.3
Цветовая шкала
Цвет |
Код |
Цвет |
Код |
Black – черный |
0 |
DarkGray – темно-серый |
8 |
Blue – синий |
1 |
LightBlue – голубой |
9 |
Green - зелёный |
2 |
LightGreen – ярко-зеленый |
10 |
Gyan – бирюзовый |
3 |
LightGyan – ярко-бирюзовый |
11 |
Red – красный |
4 |
LightRed – ярко-красный |
12 |
Magenta – малиновый |
5 |
LightMagenta – ярко-малиновый |
13 |
Brown – коричневый |
6 |
Yellow – желтый |
14 |
LightGray – светло-серый |
7 |
White – белый |
15 |
Пример 22.2: PutPixel(320,240,4);илиPutPixel(320,240,Red);- выводит в центре экрана точку красного цвета.
22.4. Вывод линии
Из точек строятся линии (отрезки прямых). Это можно сделать с помощью процедуры
Line(x1,y1,x2,y2:integer);
где x1,y1 – координаты начала,x2,y2- координаты конца линии, напримерLine(1,1,600,1);
В процедуре Line нет параметра для установки цвета. В этом случае цвет задается процедурой
SetColor(цвет:word);
где цветиз таблицы 22.3.
Пример:22.3
SetColor(Gyan);
Line(1,1,600,1);
Для черчения линий применяются еще две процедуры: LineToиLineRel.
Процедура
LineTo(x,y:integer);
строит линию из точки текущего положения указателя в точку с координатами x,y.
Процедура
LineRel(dx,dy:integer);
проводит линию от точки текущего расположения указателя x,y в точку x+dx, y+dy.
Турбо Паскаль позволяет вычерчивать линии самого различного стиля: тонкие, широкие, штриховые, пунктирные и т.д. Установка стиля производится процедурой
SetLineStyle(a,b,c:word);
где a- устанавливает тип строки, возможные значения которого приведены в таблице 2;b– образец,с – толщина линии, определяемая константами, указанными в таблице 3. Если применяется один из стандартных стилей, то значениеbравно 0. Если пользователь хочет активизировать собственный стиль, то значениеb=4. В этом случае пользователь сам указывает примитив (образец), из которого строится линия.
Пример 22.4: SetLineStyle(1, 0, 1); Line(15, 15, 150, 130); или SetLineStyle(UserBitLn, $5555, ThickWidth); Line(15, 15, 150, 130);
Таблица 22.4
Значения констант (стиль линии)
Константа |
Значение |
Описание |
SolidLn |
0 |
Непрерывная линия |
DottedLn |
1 |
Линия из точек |
CenterLn |
2 |
Линия из точек и тире |
DashedLn |
3 |
Штриховая линия |
UserBitLn |
4 |
Тип пользователя |
Таблица 22.5
Значения констант (толщина линий)
Константа |
Значение |
Описание |
NormWidth |
1 |
Нормальная толщина (1 пиксель) |
ThickWidth |
3 |
Жирная линия (3 пикселя) |
Пример 22.5: Написать программу, которая вычерчивает треугольник красной линией в центре экрана.
Program treug; uses graph; { подключение библиотеки графических процедур} var d,m:integer; {описание переменных, определяющих графический драйвер и монитор} begin d:=detect; {определение значений переменных по выбору ПК} initgraph(d,m,‘c:\bp’); {инициализация графического режима} SetColor(4); {задание цвета линии} SetLineStyle(1,0,3); {задание стиля линии} Line(320, 240, 320, 180); Line(320, 240, 390, 240); Line(390, 240, 320, 180);
Readln;
CloseGraph; end.