- •36 Основы алгоритмизации и программирования
- •1. Краткая справка 9
- •Практическое занятие №1
- •1. Краткая справка
- •2. Контрольные вопросы.
- •3. Задания и технология выполнения.
- •3.3. Циклический алгоритм.
- •Блок-схема алгоритма
- •Блок-схема алгоритма
- •4. Контрольные задания
- •5. Рекомендуемая литература
- •Практическое занятие № 2
- •1. Краткая справка Язык программирования Паскаль.
- •Типы данных
- •Структура программы
- •Ввод-вывод
- •2. Контрольные вопросы.
- •3. Задания и технология выполнения.
- •4. Контрольные задания
- •5. Рекомендуемая литература
- •Практическое занятие № 3
- •Краткая справка.
- •2. Контрольные вопросы.
- •3. Задания и технология выполнения
- •4. Контрольные задания.
- •5. Рекомендуемая литература
- •Практическое занятие № 4
- •1. Краткая справка
- •2. Контрольные вопросы.
- •3. Задания и технология выполнения.
- •Технология работы:
- •Второй вариант.
- •Третий вариант:
- •InitGraph (драйвер, режим, путь);
- •SetFillStyle (шаблон, цвет заполнения);
- •2. Контрольные вопросы.
- •3. Задания и технология выполнения.
- •4. Контрольные задания.
- •5. Рекомендуемая литература.
- •Практическое занятие № 6
- •1. Краткая справка
- •2. Контрольные вопросы.
- •3. Задания и технология выполнения.
- •Программа:
- •Фамилия
- •Программа:
- •4. Контрольные задания.
- •5. Рекомендуемая литература
- •Оршанский государственный колледж железнодорожного транспорта
SetFillStyle (шаблон, цвет заполнения);
Значения шаблона задаются равными:
0 (сплошной цвет фона),
1 (сплошной текущий цвет),
2-6 (штриховка различной толщины наклона),
7-9 (заполнение клеткой различной толщины и наклона),
10-11 (заполнение точками, густо или редко расположенными).
При использовании процедуры SetFillStyle цвет заполнения может быть не равен цвету контура.
В языке Паскаль существуют специальные средства для заполнения эллипса, секторов круга и эллипса, параллелепипеда.
Объект |
Изображение |
Запись на языке Паскаль |
Эллипс, закрашенный текущим узором и цветом заполнения |
|
FillEllipse (X, Y, RX, RY); где (X,Y) – координаты центра эллипса, RX, RY – длины горизонтальной и вертикальной полуосей |
Сектор круга, заполненный текущим узором |
|
PieSlice (X, Y, ά1, ά2 , R); где (X,Y) – координаты центра, ά1, ά2 - начальный и конечный углы сектора, R – его радиус |
Сектор эллипса, закрашенный цветом по текущему шаблону |
|
Sector (X, Y, ά1, ά2 , RX, RY); где (X,Y) – координаты центра эллипса, RX, RY – длины горизонтальной и вертикальной полуосей, ά1, ά2 - начальный и конечный углы сектора |
П |
(X2, Y2) |
Bar3D (X1, Y1, X2, Y2, D, Top); где (X1, Y1), (X2, Y2) – координаты диагональных точек передней грани (прямоугольника)б В – ширина боковой грани, Тор – признак отображения верхней грани (TRUE – отображать, FALSE – не отображать) |
2. Контрольные вопросы.
Что представляет собой графическое изображение
Что называется разрешающей способностью (разрешением) графического экрана.
Что представляет собой графический адаптер
Что представляет собой графический драйвер.
Действия, которые необходимо выполнить для работы в графическом режиме
3. Задания и технология выполнения.
3.1. Составить программу получения на экране монитора изображения прямоугольного треугольника и точки желтого цвета на зеленом фоне.
Program Tr1;
Uses Graph;
Var a,b: Integer;
Begin
a:=Detect;
InitGraph (a,b,'');
SetBkColor (2);
SetColor (14);
Line (240, 70, 240, 270);
Line (240, 270, 400, 270);
Line (240, 70, 400, 270);
PutPixel (400, 70, 14);
Readln; CloseGraph;
End.
3.2. Составить программу получения на экране монитора изображения снежной бабы (белого цвета на синем фоне).
Program BABA;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,'');
SetBkColor (1);
SetColor (15);
Circle (320, 60, 30);
Circle (320, 140, 50)
Circle (320, 260, 70);
Readln; CloseGraph;
End.
3.3. Составить программу получения на экране монитора изображения головы робота.
Program ROBOT;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,'');
SetBkColor (1);
SetColor (15); {голова}
Rectangle (270,180,370,300); {уши}
Rectangle (240, 220, 270, 260);
Rectangle (370, 220, 400, 260);
Readln; CloseGraph;
End.
3.4. Составить программу получения изображения прямоугольной трапеции.
Первый вариант решения примера 3.4
Program TRAPECIA_1;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,’’);
MoveTo (240, 60);
LineTo (240, 200); {вниз}
LineTo (450, 200); {вправо}
LineTo (350, 60); {влево вверх}
LineTo (240, 60); {влево}
Readln; CloseGraph;
End.
Второй вариант решения примера 3.4 ( с использованием процедуры LineRel):
Program TRAPECIA_2;
Uses Graph; Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,’’);
MoveTo (240, 60); LineRel (0, 140);
LineRel (210, 0); LineRel (-100, -140); LineRel (-110, 0);
Readln; CloseGraph;
End.
3.5. Составить программу получения изображения эллипса с центром в точке (320, 240) и длинами полуосей 190 и 80
Program ELIPS;
Uses Graph;
Var a,b:Integer:
Begin
a:=Detect;
InitGraph (a,b,’’);
Ellipse (320, 240, 0, 360, 190, 80);
Readln;
CloseGraph;
End.
3.6. Написать программу заполнения прямоугольного треугольника белым цветом ( с контуром желтого цвета на зеленом фоне).
Program Triangle_1;
Uses
Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,’’);
SetBkColor (2); SetColor (14);
Line (240, 70, 240, 270);
Line (240, 270, 400, 270);
Line (240, 70, 400, 270);
FloodFill (320, 200, 14);
Readln; CloseGraph;
End.
3.7. Написать программу заполнения прямоугольного треугольника красным цветом (с контуром желтого цвета на зеленом фоне).
Скорректируем программу Triangle_1:
…
{корректировка программы Triangle_1}
Line (240, 70, 400, 270,);
SetFillStyle (1, 4);
{сплошной красный цвет заливки}
FloodFill (320, 260, 14);
…
3.8. Написать программу заполнения прямоугольной трапеции штриховкой светло-серого цвета нормальной толщины.
Program TRAPECIA_3;
Uses Graph;
Var a,b:Integer;
Begin
a:= Detect;
InitGraph (a,b,’’);
SetColor (1); {синий контур}
MoveTo (240, 60);
LineTo (240, 200);
LineTo (450, 200);
LineTo (350, 60);
LineTo (240, 60);
SetFillStyle (3, 7);
FloodFill (350, 175, 1);
Readln;
CloseGraph;
End.
3.9 Напишите программу заполнения окружности желтым цветом, которая после нажатия на клавишу Enter изменяет цвет заливки на зеленый.
P
rogram
CIRC;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect;
InitGraph (a,b,’’);
SetColor (14); {желтый контур}
Circle (320, 175, 100);
SetFillStyle (1, 14);
FloodFill (320, 175,14);
Readln;
ClearDevice;
SetColor (14);
Circle (320, 175, 50);
SetFillStyle (1, 2);
FloodFill (320, 175, 14);
Readln; CloseGraph;
End.
3.10. Написать программу получения изображения горизонтального отрезка с началом в точке (0,240).
Будем рассматривать отрезок как совокупность точек и использовать для получения его изображения процедуру PutPixel. Поместим ее в тело цикла с параметром For. Таким образом, получим изображение 640 точек с координатами (β, 240) при β=0,1,2,3,…,639; в результате соединения пиксели сольются в горизонтальный отрезок.
Program PUT_LANE;
Uses Graph;
Var a,b,k: Integer;
Begin
a:= Detect; InitGraph (a, b, ' ' );
{горизонтальная прямая}
For k:=0 To 639 do
PutPixel (k, 240,14);
{14 – желтый цвет}
Readin; CloseGraph;
End.

араллелепипед,
передняя грань которого может быть
закрашена по текущему шаблону