Министерство транспорта РФ
Агентство морского и речного транспорта
Омский институт водного транспорта
филиал ФБОУ ВПО
«Новосибирская государственная академия водного транспорта»
структурное подразделение СПО
Омское командное речное училище имени капитана Евдокимова В.И.
МЕТОДИЧЕСКАЯ рАЗРАБОТКА
«Pascal ABC.
Программирование графики»
Дисциплина: «Информатика»
для всех специальностей, изучающих свободное программное обеспечение
Омск 2012
Организация-разработчик: Омский институт водного транспорта (филиал) ФБОУ ВПО «НГАВТ», структурное подразделение СПО Омское командное речное училище имени капитана Евдокимова В.И.
Разработчик:
Сысоева Н.Г., преподаватель информатики
Ф.И.О., ученая степень, звание, должность,
Рабочая программа рекомендована
Цикловой методической комиссией _________________________________________
_______________________________________________________________ дисциплин
Протокол № _______ от «_____» ___________ 20_____г.
Председатель ____________________ / ____________________/
Рассмотрено на Методическом совете
Протокол №___ от «_____» ___________ 20_____г.
Утверждаю «_____» ___________ 20_____г.
Начальник учебно-методического отдела ________________ / /
- Введение.
Система PascalABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников и студентов младших курсов. Она создавалась на факультете математики, механики и компьютерных наук ЮФУ как учебная среда программирования (автор — доцент С. С. Михалкович). Несмотря на неполную реализацию языка, система стала удачной заменой уже давно устаревшей системе Turbo Pascal в первоначальном обучении программированию.
Система PascalABC призвана осуществить переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию.
Данная методическая разработка рассчитана на курсантов и студентов 1 курса, изучающих программирование на языке PascalABC. В ней изложены основные понятия, связанные с программированием графики на языке PascalABC. В пособии описаны практические работы и даны методические указания, облегчающие подготовку и выполнение работ курсантами и студентами. В описании каждой работы приводятся краткие теоретические сведения по исследуемому вопросу и указан порядок её выполнения. Также предложены работы для самостоятельного выполнения.
Изучение раздела организовано таким образом, чтобы учащиеся могли самостоятельно работать, приобретая навыки работы с учебными пособиями, что способствует развитию функций самоконтроля.
Рассчитано, что до изучения программирования графики на языке PascalABC изучен раздел «Основы алгоритмизации» и получены навыки программирования различных алгоритмических конструкций на языке программирования PascalABC.
Настоящая методическая разработка может быть успешно реализована преподавателями и других образовательных учреждений, где изучается данный раздел программирования.
1. Графический режим
0 100 200 300 400 500 600 640
В графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16 цветов. Каждая точка экрана имеет свои координаты
(х,у). Начало координат находится в верхнем левом углу экрана. Координаты точек возрастают слева направо и сверху вниз. Левая верхняя точка имеет координаты (0,0), а правая нижняя имеет координаты (640,480). Для того, чтобы программа могла выводить на экран графические примитивы (линии, окружности, прямоугольники и т.п.), необходимо инициализировать графический режим.
100
x
200
300
400
480
y
После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно. Чтобы его открыть, необходимо подключить модуль GraphABC. В этом модуле содержится обширный набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой. С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.
Шаблон графической программы
Program ;
Uses graphABC;
Var :;
Begin
блок решения задачи
End.
Uses graphABC - подключение модуля библиотеки графических процедур;
2. Модуль GraphABC
Модуль GraphABC содержит процедуры и функции для рисования в графическом окне. Они подразделяются на следующие группы:
- Графические примитивы
Формат записи | Как работает |
Setpixel(x,y,color); | Закрашивает один пиксель с координатами (x,y) цветом color. |
Line(x1,y1,x2,y2); | Вычерчивает линию от точки c координатами (x1,y1) до точки (x2,y2). |
Rectangle(x1,y1,x2,y2); | Рисует контур прямоугольника со сторонами, параллельными сторонам экрана. Точки с координатами (х1,у1) и (х2,у2) определяют диагональ прямоугольника. |
RoundRect(х1,у1,х2,у2,w,h); | Рисует прямоугольник со скругленными краями. Точки с координатами (х1,у1) и (х2,у2) определяют диагональ прямоугольника., а w и h — ширину и высоту эллипса, используемого для скругления краев. |
Circle(x,y,R); | Рисует окружность радиуса R с центром в точке с координатами (x,y). |
Ellipse(x1,у1,х2,y2); | Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2). |
Аrc(x,y,r,a1,a2); | Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки). |
Pie(x,y,r,a1,a2); | Рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc). |
Chord(x,y,r,a1,a2); | Рисует фигуру, ограниченную дугой окружности и отрезком, соединяющим ее концы (параметры процедуры имеют тот же смысл, что и в процедуре Arc). |
MoveTo(x,y); | Передвигает невидимое перо к точке с координатами (x,y); эта функция работает в паре с функцией LineTo(x,y). |
LineTo(x,y); | Рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y). |
TextOut(x,y,s); | Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s). |
FloodFill(x,y,c); | Заливает область одного цвета цветом c, начиная с точки (x,y). |
FillRect(x1,y1,x2,y2); | Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти. |
-
- Действия с цветом
clBlack – черный | clAqua – бирюзовый |
clPurple – фиолетовый | clOlive – оливковый |
clWhite – белый | clFuchsia – сиреневый |
clMaroon – темно-красный | clTeal – сине-зеленый |
clRed – красный | clGray – темно-серый |
clNavy – темно-синий | clLime – ярко-зеленый |
clGreen – зеленый | clMoneyGreen – цвет зеленых денег |
clBrown – коричневый | clLtGray – светло-серый |
clMedGray – серый | clDkGray – темно-серый |
clSilver – серебряный | clBlue – синий |
clCream – кремовый | clSkyBlue – голубой |
clYellow – желтый |
Действия с пером(стиль и цвет рисования)
Формат записи | Как работает |
SetPenColor(color); | Устанавливает цвет пера, задаваемый параметром color. |
SetPenWidth(w); | Устанавливает ширину пера, равную w пикселям. |
SetPenStyle(ps); | Устанавливает стиль пера (ps), который задается следующими именованными константами: Значение | Описание | Вид линии | psSolid | Сплошная линия | _______ | psClear | Отсутствие линии | | psDash | Штриховая линия | - - - - - - - | psDot | Пунктирная линия | ………... | psDashDot | Штрихпунктир-ная линия | -.-.-.-.-.-.- | psDashDotDot | Линия – штрих и два пунктира | -..-..-..-..- | |
Действия с кистью (стиль и цвет заливки фигур)
Формат записи | Как работает |
SetBrushColor(color); | Устанавливает цвет кисти, задаваемый параметром color (смотри таблицу цветов). |
SetBrushStyle(bs); | Устанавливает стиль кисти (bs), который задается следующими именованными константами: Константа | Стиль заливки | bsSolid | Сплошная заливка текущим цветом. | bsClear | Без заливки | bsCross | Штриховка в клетку. | bsDiagCross | ххх штриховка | bsHorizontal | Штриховка горизонтальными линиями | bsVertical | Штриховка вертикальными линиями | bsBDiagonal | / / / штриховка | bsFDiagonal | \ \ \ штриховка |
|
Действия со шрифтом
Формат записи | Как работает |
SetFontColor(color); | Устанавливает цвет шрифта (смотри таблицу цветов). |
SetFontSize(sz); | Устанавливает размер шрифта в пунктах. |
SetFontName(s); | Устанавливает наименование шрифта. По умолчанию установлен шрифт, имеющий наименование MS Sans Serif. Наиболее распространенные шрифты – это Times New Roman, Arial и Courier New. Наименование шрифта можно набирать без учета регистра. |
SetFontStyle(fs); | Устанавливает стиль шрифта (fs), который задается следующими именованными константами: Константа | Стиль шрифта | fsNormal | обычный | fsBold | жирный | fsItalic | наклонный | fsBoldItalic | жирный наклонный | fsUnderline | подчеркнутый | fsBoldUnderline | жирный подчеркнутый | fsItalicUnderline | наклонный подчеркнутый | fsBoldItalicUnderline | жирный наклонный подчеркнутый | |
- Действия с графическим окном
Формат записи | Как работает |
ClearWindow; | Очищает графическое окно кистью белого цвета. |
SetWindowWidth(w); | Устанавливает ширину графического окна. |
SetWindowHeight(h); | Устанавливает высоту графического окна. |
SetWindowSize(w,h); | Устанавливает ширину и высоту графического окна. |
CloseWindow; | Закрывает графическое окно. |
Практическая работа №1 «Просмотр готовых программ».
Цель работы:
Научиться использовать графические средства PascalABC на примере построения графических примитивов и элементарных изображений.
Порядок выполнения работы:
Выполнить работу по набору текста программ:
Добиться успешной компиляции;
Запустить программы на выполнение.
program z1; uses graphABC; begin setpencolor(clred); setbrushcolor(clnavy); ellipse(40,150,250,210); setbrushcolor(clyellow); ellipse(340,150,550,210); setbrushcolor(clred); circle(295,190,25); setbrushcolor(clolive); ellipse(265,225,325,425); setbrushcolor(cllime); ellipse(265,5,325,150); end. | program z2; uses graphABC; begin setwindowsize(500,500); setpenwidth(3); setbrushcolor(clfuchsia); circle(225,160,50); line(225,160,225,180); line(210,190,240,190); line(225,210,225,250); line(100,100,200,260); line(200,260,400,260); line(210,350,200,480); line(240,350,250,480); rectangle(200,230,250,350); setbrushcolor(cllime); fillrect(0,480,500,500); setbrushcolor(clwhite); circle(205,150,10); circle(245,150,10); end. |
3. Способы и стили заливки фигур
З
амечание 1:
Процедуры Setpencolor(сolor), Setpenstyle(ps), Setbrushcolor(color), Setbrushstyle(bs), SetPenWidth(w) пишутся непосредственно перед объектом редактирования, если фигура рисуется одной графической процедурой, например: окружность, эллипс, прямоугольник и т.п..
Если же фигура является результатом использования нескольких графических процедур, например, треугольник, многоугольник и т.п., то все вышеперечисленные процедуры, кроме Setpencolor(color), Setpenstyle(ps) пишутся после объекта редактирования
З
амечание 2: Процедура Floodfill(х,у,с) используется для заливки фигур, являющихся результатом использования нескольких графических процедур, и пишется непосредственно после рисования объекта. Точка (х,у) должна находиться внутри построенного объекта, с – это цвет заливки.
Для заливки фигур, построенных одной графической процедурой используется процедура Setbrushcolor(сolor), где сolor – цвет заливки.
Практическая работа №2 «Способы и стили заливки фигур».
Цель работы:
Научиться использовать графические процедуры PascalABC для построения элементарных графических изображений с применением различных стилей заливок.
Порядок выполнения работы:
Загрузите среду PascalABС.
Наберите программу рисования окружности.
program z3;
uses graphABC;
begin
setpencolor(claqua); {устанавливает цвет рисования окружности - бирюзовый}
setpenstyle(psdot); {устанавливает стиль линии рисования окружности –
пунктирная линия}
setpenwidth(10); {устанавливает ширину линии рисования окружности }
setbrushstyle(bscross); {устанавливает стиль заливки окружности}
setbrushcolor(clred); {устанавливает цвет заливки окружности}
circle(225,160,50); {рисует окружность}
end.
Запустите программу на выполнение. Результатом будет

Наберите программу рисования треугольника.
program z4;
uses graphABC;
begin
setpencolor(clpurple); {устанавливает цвет рисования линий - фиолетовый}
line(100,100,400,300); {рисует линию от точки (100,100) до точки (400,300)}
line(400,300,20,300); {рисует линию от точки (400,300) до точки (20,300)}
line(100,100,20,300); {рисует линию от точки (100,100) до точки (20,300)}
setbrushstyle(bsvertical); {устанавливает стиль заливки окружности –
вертикальными линиями}
floodfill(150,250,clbrown); {заливает полученную замкнутую область (в программе
треугольник) коричневым цветом, начиная с точки
(150,250}
end.
Запустите программу на выполнение. Результатом будет

Сделайте выводы о различных способах заливки.
Самостоятельная работа №1
Напишите программу рисования и заливки следующей фигуры.

Здесь цифры соответствуют цветам:
1 – красный
2 – синий
3 – зеленый
4 – желтый
Практическая работа №3 «Построение графических примитивов».
Цель работы:
Научиться использовать графические средства PascalABC на примере построения графических примитивов и элементарных изображений.
Порядок выполнения работы:
Загрузите среду PascalABC .
Наберите шаблон графической программы.
Впишите в тело программы процедуру рисования точки Setpixel с координатами (30,30) сине-зеленого цвета.
Запустите программу на выполнение.
Постройте отрезок зелёного цвета процедурой Line от точки (80,40) до (180,50). (не забудьте задать цвет до рисования линии процедурой Setpencolor).
Увеличьте толщину линии данного отрезка до 3 пикселей процедурой Setpenwidth и установите тип линии пунктирный процедурой Setpenstyle.
Нарисуйте окружность процедурой Circle в точке (280,60) и радиусом 55.
Для контура окружности установите бирюзовый цвет.
Постройте прямоугольник процедурой Rectangle с сиреневым контуром, если координаты диагонали (420,40) и (600,140).
Тип линии у прямоугольника сделайте из точек.
Изобразите дугу процедурой Arc в точке (50,120), радиусом 50, угол начала 0, угол конца 90 (т.е. дуга занимает I первую четверть окружности).
Нарисуйте прямоугольник процедурой FillRect с координатами диагонали (20,150) и (200,250). Предварительно установите красный цвет заливки процедурой Setbrushcolor.
Измените заливку на синий цвет и установите \ \ \ штриховку.
Нарисуйте окружность процедурой Pie в точке (300,200), радиуса 70.
Закрасьте её в сплошной жёлтый цвет.
Контур окружности тоже сделайте жёлтым.
Нарисуйте верхнюю половину окружности темно-красного цвета в точке (480,200), радиусом 40, используя процедуру Pie.
Контур сделайте серого цвета.
Изобразите нижнюю половину этой же окружности.
Нарисуйте треугольник из отдельных сплошных линий ярко-зеленого цвета с вершинами (200,300), (280,400), (400,270).
Cделайте ему заливку того же цвета, используя процедуру Floodfill.
Справа от треугольника нарисуйте произвольный пятиугольник красного цвета.
Выведите на экран текст желтого цвета «Графика на ЯП PascalABC», начиная с точки (60,400) процедурой TextOut.
Процедурой SetFontStyle установите жирный наклонный подчеркнутый шрифт, процедурой SetFontSize - размер шрифта - 18 пикселей.
Установите кремовый фон экрана, для этого используйте процедуру Floodfill, в качастве начальной точки укажите точку (1,1).
Результатом выполнения программы будет

В свободном месте подпишите свою фамилию, имя и группу.
Самостоятельная работа №2
Вариант | Условие задачи |
-
| Нарисовать весёлую рожицу. |
-
| Нарисовать семицветную радугу. |
-
| Построить снеговика. |
-
| Построить домик. |
-
| Нарисовать новогоднюю ёлку. |
-
| Построить кораблик. |
-
| Составьте программу рисования часов типа «кукушка». |
-
| Нарисуйте компьютер. |
-
| Постройте избушку на курьих ножках. |
-
| Составьте программу рисования автомобиля. |
-
| Построите куб и подпишите вершины. |
-
| Составьте программу рисования кошки. |
-
| Построить забор, каждую досточку разукрасить разным стилем и цветом. |
-
| Составьте программу рисования светофора. |
Самостоятельная работа №3
Задание:
Средствами среды программирования Pascal ABC создайте изображение по образцу.
-
- Литература
Власьев Б.А., Резчик Ю.И. Судовые вспомогательные механизмы и системы: учебник. – Л.: Судостроение, 1989.
Герасименко О.Н. Лабораторный практикум по электротехнике и электронике: Учебное пособие. – Новоросийск: НГМА, 2001.
Епанешников А. М., Епанешников В. А. Программирование в среде Turbo Pascal 7.0 М.: Диалог Мифи, 1995.
Есипов А. С. Информатика. Учебник по базовому курсу общеобразовательных учебных заведений. Изд. 3-е, перераб. и доп. – СПб: Наука и Техника, 2003.
Задачи и упражнения по программированию: В 5-ти кн.: практ. пособие / Под ред. А. Я. Савельева. Кн. 1. Машиностроение, приборостроение и связь / Э.Н. Самохвалов, Ю.Н. Филлипович, Г.И. Ревунков. – 2-е изд., доп. – М.: Высш. шк., 1989.
Информатика. Учебник по базовому курсу. – М.: ООО «Издательство Лаборатория Базовых Знаний», 1998.
Йенсен К., Вирт Н. Паскаль. Руководство для пользователя. М.: Компьютер, 1993.
Круподеров Р. И, Круподёрова Е. П. Сборник задач с решениями по информатике. Мурманск: МГПИ, 1992.
Культин Н. Б. Turbo Pascal в задачах и примерах. – Сб.: БХВ-Перербург, 2004.
Лабораторный практикум по информатике: Учебное пособие для вузов/В.С.Микшина, Г.А.Еремеева, Н.Б.Назина и др.; Под ред. В.А.Острейковского. – М.: Высш.шк., 2003.
Митрофанов С.П., Проскуряков С.Г. Программирование для гимназистов. Зачёт №5. Операторы графики/Под ред. В.М. Салахова. – Сургут: Сургутская высшая гимн.-лаб.Салахова, 2001.
Немнюгин С. А. Turbo Pascal. Практикум. С.-Пб.: Питер, 2000.
Поддубная Л. М., Шаньгин В. Ф. Мне нравится Паскаль. М.: Радио и связь, 1992.
Семакин И.Г. Основы программирования: Учебник для сред. проф. образования / И.Г.Семакин, А.П.Шестаков. – 2-е изд., стер. – М.: Издательский центр «Академия», 2003.
Семакин И.Г., Шеина Т.Ю. Преподавание базового курса информатики в средней школе. Методическое пособие. – М.: Лаборатория Базовых Знаний, 2002.
Угринович Н. Д. Преподавание курса «Информатика и информационные технологии»: Методическое пособие для учителей / Н. Д. Угринович, В.В. Морозов, В.М. Нечаев. – М.: БИНОМ. Лаборатория Знаний, 2002.
Фарафонов В.В. Турбо Паскаль (в 3-х книгах). Книга 1. Основы Турбо Паскаля. – М.: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992.