Разработка факультативного курса Программирование графики для старших классов

Федеральное агентство по образованию

ГОУ ВПО Тульский государственный педагогический университет

имени  Л.Н.Толстого

Кафедра информатики и методики обучения информатики

Курсовая работа

Разработка факультативного курса «Программирование графики» для старших классов





	Выполнила: 

	студентка 4 курса, гр. А, 

	факультета МФиИ

	Касрашвили Е. Д.

	

	

	

	Научный руководитель: 

	старший преподаватель 

	кафедры информатики и МОИ

	Сундукова Т.О.



	

	

	

	

	

	

	

	Тула. 2008 г.

	Содержание



	Введение	3

	Глава 1. Факультативные курсы по информатике для старшей школы	5

	1.1. Понятийный аппарат факультативных курсов	5

	1.2. Методика проведения факультативных  курсов по информатике для старших школьников	7

	1.3. Система средств для проведения факультативных курсов	9

	Глава 2.Факультативный курс «Программирование графики» для старшей школы	10

	2.1. Теоретические основы программирования графики	10

	2.2. Разработка содержания факультативного курса «Программирование графики» для старшей школы	22

	Пояснительная записка	22

	Цели и задачи	23

	Методы преподавания (включая формы организации учебных занятий)	25

	Содержание обучения	25

	2.3Примеры интересных задач для факультативного курса «Программирование графики»	30

	Заключение	35

	Список литературы	36













Введение

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

Вопросам отбора содержания и разработке общей концепции преподавания информатики посвящено множество работ. Это и понятно, так как подготовка квалифицированного пользователя является одной из целей курса информатики.

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

Проблема организации факультативов  становится все актуальней и актуальней.

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

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

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

Цел работы:

Теоретически обосновать методы проведения факультативных курсов по информатике для старшей школы и разработать факультативный курс «Программирование графики» для старшей школы.

Задачи

		Изучить и проанализировать литературу по тематике курсовой работы;

		Определить понятийный аппарат факультативных курсов

			Выделить основные аспекты проведения факультативного курса «Программирование графики» для старшей школы;

			Выявить систему средств для проведения факультативного курса «Программирование графики» для старшей школы;

			Раскрыть теоретические основы факультативного курса «Программирование графики» для старшей школы;

			Разработать содержание факультативного курса «Программирование графики» для старшей школы;

			Подобрать и систематизировать задания для факультативного курса «Программирование графики» для старшей школы;

	Курсовая работа состоит из двух глав, введения, заключения, списка литературы, который включает в себя      источников.











Глава 1. Факультативные курсы по информатике для старшей школы

1.1. Понятийный аппарат факультативных курсов

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

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

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

Целью организации факультативных занятий является расширением кругозором учащихся, развитие математического мышления, формирование активного познавательного интереса к предмету.

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

 1. Факультативный курс представляет собой систему нескольких тем, частично связанных между собой. Каждая из них предназначена для развития основных идей школьной информатики, ее понятий, методов. Следовательно, факультативные занятия важно соотносить с основным курсом информатики, можно, например, отработать навыки решения задач с помощью ЭВМ. 
Для осуществления такой связи необходимо: 

систематизировать материал; 

последовательно развертывать теорию; 

рассматривать дополнительные методы для решения задач. 

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

2. Факультативы по информатике дополняют кружки, занятия компьютерных клубов новым содержанием, новыми подходами к его раскрытию.

3. Факультативные занятия представляют большие возможности подготовки к конкурсам, соревнованиям и олимпиадам (пользовательским, по языкам программирования), занятиям проектной деятельностью.

Варианты факультативов для старшей школы

 Навыки работы с клавиатурой

Настольная издательская система 

Компьютеры и связь

Программирование и разработка  программного обеспечения

 Создание графики

  Работа с мультимедией

  Система автоматического проектирования 

 Моделирование и имитация 

 Экспертные системы

 Роботы и устройства с обратной связью 

 Музыка

Статистика

Такой вариант факультативного курса как программирование может  быть достаточно вариативным. Можно рассматривать различные языки программирования, различные среды программирования. Эта тема достаточно обширна и тематика задач, используемая для обучения, может быть основана на различном материале. В данной работе представлен один из вариантов.

1.2. Методика проведения факультативных  курсов по информатике для старших школьников

При выборе методов и приемов обучения на факультативных занятиях необходимо учитывать содержание факультативного курса, уровень развития и подготовленности учащихся, их интерес к тем или иным разделам этого курса. 

Одно из важнейших требований к методам состоит в активизации мышления учащихся, развитии самостоятельности в различных формах ее проявлении.

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

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

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

Уроки-семинары. Возможно проведение семинаров различных типов.

Большую пользу приносит подготовка учениками рефератов. Выполнение такого рода работы необходимо для развития навыков самообразования, удовлетворения индивидуальных интересов учащихся. Необходимо, чтобы подготовленные рефераты заслушивались всеми и обсуждались всеми школьниками. Для рефератов следует  подбирать темы, по которым имеется легкий доступ к литературе. Можно использовать  журналы "Информатика и образование", "Мир ПК",  газета "Информатика" (приложение к газете "1 сентября"). План реферата можно предложить составить ученику самостоятельно, но можно и помочь ему в этом. 

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

Методические рекомендации по организации факультативов по информатике:

	Взаимосвязь в содержании, формах и методах организации учебной работы и факультативных занятий;

	Обеспечивать взаимосвязь (по содержанию) уроков и факультативных занятий;

	Единство в содержании факультативных занятий различных разделов информатики;

	Активизация самостоятельной работы учащихся;

	Построение учебного процесса как совместная исследовательская деятельность учащихся;

	Использование наглядных пособий; 

	Использование системы ключевых задач по темам на факультативных занятиях;

	Принципы занимательности занятий;

	Построение занятий проблемного изучения материала.

1.3. Система средств для проведения факультативных курсов

В систему средств обучения должны входить учебники, учебные и методические пособия, компьютеры и программное обеспечение. Они должны образовывать единую комплексную среду, которая позволяет учителю достигать поставленных целей обучения.

Основные компоненты системы средств обучения на факультативных курсах:

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

Объектно-ориентированные программные системы, обеспечивающие формирование культуры учебной деятельности, в основе которых лежит определенная модель объектного мира пользователя;

Учебное, демонстрационное оборудование;

Средства телекоммуникации, обеспечивающие доступность информации для обучаемых, вовлеченность их в учебное взаимодействие, богатое интеллектуальными возможностями и разнообразием видов использования ресурсов Всемирной информационной сети.

Глава 2.Факультативный курс «Программирование графики» для старшей школы

2.1. Теоретические основы программирования графики

Несомненно, перед тем как разработать факультативный курс необходимо четко представлять, о чем можно и нужно рассказать детям. В основу любого курса должен быть заложен хорошо проработанный теоретический материал. В данном разделе будет предложен теоретический материал, на который будет в дальнейшем опираться факультативный курс «Программирование графики». 

Графика в Pascal

Экран дисплея ПК представляет собой прямоугольное поле, состоящее из большого количества точек. Дисплей может работать в текстовом и графическом режимах. Но в отличие от текстового режима в графическом режиме имеется возможность изменять цвет каждой точки.

Чтобы сделать процесс графического программирования более эффективным, фирма Borland International разработала специализированную библиотеку Graph (в этом библиотечном модуле содержится 79 графических процедур, функций, различных стандартных констант и типов данных), набор драйверов, позволяющих работать с разными типами мониторов, и набор шрифтов для вывода на графический экран текстов разной величины и формы. Аппаратная поддержка графики ПК обеспечивается двумя основными модулями: видеомонитором и видеоадаптером. Какой бы адаптер ни был установлен на компьютере, мы можем использовать один и тот же набор графических процедур и функций Turbo Pascal благодаря тому, что их конечная настройка на конкретный адаптер осуществляется автоматически. Эту настройку выполняют графические драйверы.

Запуск и завершение работы в графической системе осуществляется следующим образом:

1. Подключить модуль Graph (библиотеку графических процедур): uses Graph;

2. Установить графический режим: - описываем переменные, которые определяют графический драйвер и монитор: var gd, gm: integer; - задаем команду ПК для самовыбора значений переменных: gd := Detect; (detect - драйвер сам определяет лучший режим) - инициализируем графический режим: InitGraph(gd, gm, ’указывается путь к драйверу (пусть будет пустым)’) С этого момента все графические средства доступны пользователю.

3. Завершить работу в графической системе: CloseGraph; 

Совет: Возникает очень много вопросов вроде "я всё делаю, как написано, а почему оно не работает?". Так вот перед использованием графического режима, перепишите файлы bgi в папку, куда у вас компилируется программа, и проверьте, не стоит ли на файле bgi атрибут Read Only (толко чтение) и если стоит, то уберите его.

Экран и окно в графическом режиме

По аналогии с текстовыми режимами графический экран может рассматриваться как одно большое или несколько меньших по размеру окон. После установки окна вся остальная площадь экрана как бы не существует, и весь ввод-вывод осуществляется только через окно. В каждый отдельный момент может быть активным только одно окно. Если окон несколько, за переключение ввода-вывода в нужное окно отвечает программист. По умолчанию окно занимает весь экран, значения координат его левого верхнего и правого нижнего угла устанавливаются автоматически процедурой инициализации InitGraph. Если требуется создать окно, следует воспользоваться процедурой SetViewPort (x1, y1, x2, y2 integer, Clip:boolean) ; где x1, y1 – координаты левого верхнего угла, x2, y2. Координаты левого верхнего угла окна. Параметр Clip определяет, будет ли рисунок отсекаться при выходе за границы окна( Clip:= True) или нет (Clip:=False). После создания окна за точку отсчета принимается верхний левый угол окна, имеющий координаты (0,0).

Необходимо помнить, что в отличие от текстовых окон графические окна после команды установки фона SetBkColor и очистки с помощью ClearViewPort меняют фон вместе с общим фоном экрана. Поэтому фон (точнее «закраску») графического окна следует устанавливать с помощью процедур SetFillStyle и SetFillPattern.

Вывод простейших фигур

Вывод точки

Какие бы изображения не выводились на экран, все они построены из точек, теоретически можно создать любое изображение путем построения точек определенного цвета в нужном месте экрана. В библиотеке Graph вывод точки осуществляется процедурой PutPixel (x, y: integer, color:word);где x, y: координаты расположения точки, color – цвет.

Возможные значения Color приведены в таблице 1

Цвет 

Код 

Цвет 

Код 

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 



Вывод линии

Из точек строятся линии (отрезки прямых). Это можно сделать с помощью процедуры Line (x1, y1 , x2,y2 :integer); где x1, y1 – координаты начала, x2,y2- координаты конца линии.

В процедуре Line нет параметра для установки цвета. В этом случае цвет задается процедурой SetColor (цвет: word); где цвет из таблицы 1.

Для черчения линий применяются еще две процедуры: LineTo и LineRel. Процедура LineTo (x,y: integer) строит линию из точки текущего положения указателя в точку с координатами x,y. Процедура LineRel (dx,dy: integer) проводит линию от точки текущего расположения указателя (x, y) в точку x+dx, y+dy.

Turbo Pascal позволяет вычерчивать линии самого различного стиля: тонкие, широкие, штриховые, пунктирные и т.д. Установка стиля производится процедурой SetLineStyle(a,b,c: word), где a устанавливает тип строки, возможные значения которого приведены в таблице 2; b – образец, с – толщина линии, определяемая константами, указанными в таблице 3. Если применяется один из стандартных стилей, то значение b равно 0. Если пользователь хочет активизировать собственный стиль, то значение b =4. В этом случае пользователь сам указывает примитив (образец), из которого строится линия. 

Таблица 2

Константа 

Значение 

Описание 

SolidLn 

0 

Непрерывная линия 

DottedLn 

1 

Линия из точек 

CenterLn 

2 

Линия из точек и тире 

DashedLn 

3 

Штриховая линия 

UserBitLn 

4 

Тип пользователя 

Таблица 3

Константа 

Значение 

Описание 

NormWidth 

1 

Нормальная толщина (1 пиксель) 

ThickWidth 

3 

Жирная линия (3 пикселя) 



Построение многоугольников

Построение прямоугольников

Для построения прямоугольных фигур имеется несколько процедур. Первая из них – вычерчивание одномерного прямоугольника: Rectangle (x1, y1 , x2, y2:integer ),  где x1, y1 – координаты левого верхнего угла, x2, y2- координаты правого нижнего угла прямоугольника. Область внутри прямоугольника не закрашена и совпадает по цвету с фоном.

Более эффектные для восприятия прямоугольники можно строить с помощью процедуры Bar (x1, y1 , x2,  y2:integer), которая рисует закрашенный прямоугольник. Цвет закраски устанавливается с помощью SetFillStyle. Еще одна эффектная процедура: Bar3D (x1, y1 , x2,y2, d: integer, a:boolean) вычерчивает трехмерный закрашенный прямоугольник (параллелепипед). При этом используются тип и цвет закраски, установленные с помощью SetFillStyle. Параметр d представляет собой число пикселей, задающих глубину трехмерного контура. Чаще всего его значение равно четверти ширины прямоугольника ( d:= (x2 - x1) div 4 ). Параметр a определяет, строить над прямоугольником вершину (а:=True) или нет (a:=False).

Построение многоугольников

Многоугольники можно рисовать самыми различными способами, например с помощью процедуры Line. Однако в Турбо Паскале имеется процедура DrawPoly, которая  позволяет строить любые многоугольники линией текущего цвета, стиля и толщины. Она имеет формат DrawPoly( a: word, var PolyPoints).

Параметр PolyPoints является нетипизированным параметром, который содержит координаты каждого пересечения в многоугольнике. Параметр а задает число координат в PolyPoints. Необходимо помнить, что для вычерчивания замкнутой фигуры с N вершинами нужно передать при обращении к процедуре DrawPoly N+1 координату, где координата вершины с номером N будет равна координате вершины с номером 1.

В результате работы программы на экране появится красный треугольник на черном фоне. Изменить фон внутри треугольника можно с помощью процедуры FillPoly(a: word, var PolyPoints). Значения параметров те же, что и в процедуре DrawPоly. Действие тоже аналогично, но фон внутри многоугольника закрашивается.

Построение дуг и окружностей

Процедура вычерчивания окружности текущим цветом имеет следующий формат: Cicrle(x, y, r: word), где x, y – координаты центра окружности, r – ее радиус.

Дуги можно вычертить с помощью процедуры Arc(x, y: integer, а, b, R:integer), где x, y- центр окружности, a, b- начальный и конечный углы в градусах, R – радиус. Для задания углов используется полярная система координат.

Цвет для вычерчивания устанавливается процедурой SetColor. В случае a=0 и b=360, вычерчивается полная окружность.

Для построения эллиптических дуг предназначена процедура Ellipse (x, y: integer, a, b, Rx, Ry: integer),  где x, y – центр эллипса, Rx, Ry: горизонтальная и вертикальная оси. В случае a=0 и b=360 вычерчивается полный эллипс.

Фон внутри эллипса совпадает с фоном экрана. Чтобы создать закрашенный эллипс, используется специальная процедура FillEllipse (x, y: integer, Rx, Ry: integer). Закраска эллипса осуществляется с помощью процедуры SetFillStyle (a, b: word), где а – стиль закраски (таблица 4), b – цвет закраски (таблица 1)

Таблица 4

Константа 

Значение 

Маска 

EmptyFill 

0 

Заполнение цветом фона 

SolidFill 

1 

Заполнение текущим цветом 

LineFill 

2 

Заполнение символами --, цвет – color 

LtslashFill 

3 

Заполнение символами // нормальной толщины, цвет – color 

SlashFill 

4 

Заполнение символами //  удвоенной толщины, цвет – color 

BkslashFill 

5 

Заполнение символами \\ удвоенной толщины, цвет – color 

LtbkSlahFill 

6 

Заполнение символами \\ нормальной толщины, цвет – color 

HatchFill 

7 

Заполнение вертикально-горизонтальной штриховкой тонкими линиями, цвет – color 

XhatchFill 

8 

Заполнение штриховкой крест-накрест по диагонали «редкими» тонкими линиями, цвет – color 

InterLeaveFill 

9 

Заполнение штриховкой крест-накрест по диагонали «частыми» тонкими линиями, цвет – color 

WideDotFill 

10 

Заполнение «редкими» точками 

CloseDotFill 

11 

Заполнение «частыми» точками 

UserFill 

12 

Заполнение по определенной пользователем маске заполнения, цвет – color 

Для построения секторов можно использовать следующие процедуры: PieSlice (x, y: integer, a, b, R: word), которая рисует и заполняет сектор круга. Координаты x, y – центр окружности, сектор рисуется от начального угла a до конечного угла b, а закрашивание происходит при использовании специальных процедур; Sector (x, y: integer, a, b, Rx, Ry: word), которая создает и заполняет сектор в эллипсе. Координаты x, y – центр, Rx, Ry – горизонтальный и вертикальный радиусы, и сектор вычерчивается от начального угла a до конечного угла b.

Работа с текстом

Выводимые на экран изображения лучше всего сопровождать пояснительным текстом. В графическом режиме для этого используются процедуры OutText и OutTextXY. Процедура OutText(Textst: string) выводит строку текста, начиная с текущего положения указателя. Недостаток этой процедуры – нельзя указать произвольную точку начала вывода. В этом случае удобнее пользоваться процедурой OutTextXY(x, y: integer, Textst: string), где x, y – координаты точки начала вывода текста, Textst – константа или переменная типа String. Например, OutTextXY(60, 100, ‘Нажмите любую клавишу’).

Вывод численных значений

В модуле Graph нет процедур, предназначенных для вывода численных данных. Поэтому для вывода чисел сначала нужно преобразовать их в строку с помощью процедуры Str, а затем подключить посредством ‘+’ к выводимой строке. Для удобства преобразование целочисленных и вещественных типов данных в строку лучше осуществлять специализированными пользовательскими функциями IntSt и RealSt:

function IntSt(Int: integer) : string;

var Buf : string[10];

begin 

Str(Int, Buf);

IntSt := Buf;

end;

function RealSt(R : real, Dig, Dec : integer) : string;

var Buf: string[20];

begin

Str(R : Dig : Dec, Buf);

RealSt := Buf;

end;

Эти функции указываются как параметры в процедурах OutText и OutTextXY.

Шрифты

Вывод текста в графическом режиме может осуществляться различными стандартными (таблица 5) и пользовательскими шрифтами. Различают два типа шрифтов: растровые и векторные. Растровый шрифт задается матрицей точек, а векторный – рядом векторов, составляющих символ.

По умолчанию после инициализации графического режима устанавливается растровый шрифт DefaultFont, который, как правило, является шрифтом, используемым драйвером клавиатуры.

Таблица 5

Шрифт 

Файл 

TriplexFont 

Trip.chr 

SmallFont 

Litt.chr 

SansSerifFont 

Sans.chr 

GothicFont 

Goth.chr 

Большинство стандартных шрифтом не содержат русских символов. Разработка же собственных шрифтов – довольно сложный и трудоемкий процесс. Он может быть ускорен, если воспользоваться специализированными пакетами TurboFont, BgiToolKit.

Установить нужный шрифт можно процедурой SetTextStyle(Font,d,c:word), где Font – выбранный шрифт, d – направление ( горизонтальное или вертикальное), с – размер выводимых символов. Возможные значения двух первых параметров представлены в таблице 5. При организации вертикального вывода необходимо учитывать, что если не установить точку начала вывода с помощью MoveTo, то текст начинается с нижней строки экрана и продолжается вверх. Величина символов устанавливается коэффициентом с. Если с=1, то символ строится в матрице 8x8, если с= 2, то матрица 16x16 и т.д. до 10-кратного увеличения.

Выравнивание текста

В некоторых случаях требуется в пределах одной строки  выводить символы выше или ниже друг друга. Выравнивание текста выполняется с помощью процедуры SetTextJustify(Horiz, Vert : word) как по вертикали, так и по горизонтали посредством задания параметров Horiz и Vert (возможные значения в таблице 6).

Таблица 6

Параметр 

Значение 

Комментарий 

Горизонтальное выравнивание 

LeftText 

0 

Выровнять влево 

CenterText 

1 

Центрировать 

RightText 

2 

Выровнять вправо 

Вертикальное выравнивание 

BottomText 

0 

Переместить вниз 

CenterText 

1 

Центрировать 

TopText 

2 

Переместить вверх 



Построение графиков функций

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

До сих пор при создании рисунков использовали только первый квадрант системы координат. Для построения большинства функций в требуемом интервале изменения необходимо работать хотя бы в двух квадрантах. В общем случае полезно изображать систему координат в любой части плоскости, но наиболее наглядно располагать ее в центре экрана. В таких случаях, установив начало координат в точке (x0, y0) на экране, можно координаты (x, y) произвольной точки кривой определять разностью (x-x0, y-y0). После этого в программе можно употреблять не только положительные, но и отрицательные значения. Рисунок получается маленьким, поэтому требуется увеличить масштаб изображения. Если для функции будет использован весь экран, надо увеличить рисунок по x и по y в зависимости от выбранного экрана.

Выбрать масштаб увеличения можно следующим образом:

- определить горизонтальный и вертикальный размеры графика (для этого вводятся границы области значений и определяются максимальное и минимальное значение функции на заданной области определения, затем вычисляются разности максимального и минимального значений аргументов и функции, которые и являются горизонтальным и вертикальным размерами графика соответственно);

-определить масштаб( сначала определяются масштабы изображения по горизонтали и вертикали с учетом размеров выбранного экрана по формуле: масштаб(г/в) = размер экрана (по г/в) / размер графика (по г/в), затем из них выбирается меньший, который и принимается за необходимый масштаб. В нашем случае графический экран имеет размеры 640 на 480).В любом случае, чтобы высветить на экране точку, надо взять x, вычислить по данной абсциссе y и выполнить рисование точки. Так как на экране можно получить лишь ограниченное количество значений х, то их перебираем с помощью цикла. 

Построение случайных процессов

Для того, чтобы картинки не были монотонными и регулярными, можно задавать фигурам случайные размеры, цвет, координаты. Для этого имеется специальная функция Random: Она генерирует случайные числа из [0, 1). Для расширения первоначального промежутка используется функция Random(I: word), которая выдает число из диапазона 0… I. На самом деле эти функции генерируют некоторую последовательность псевдослучайных чисел, и чтобы добиться иллюзии полной «случайности» используют команду Randomize, которая изменяет базу датчика случайных чисел.

Создание иллюзии движения

Создать видимость движения изображения на экране можно несколькими способами. Рассмотрим два из них.

I способ. Имитация движения объекта на экране за счет многократного выполнения программой набора действий: нарисовать – пауза – стереть (нарисовать в том же месте цветом фона) – изменить координаты положения рисунка.

Перед началом составления программы надо продумать описание «двигающегося» объекта, характер изменения координат, определяющих текущее положение объекта, диапазон изменения и шаг.

II способ. Иллюзия движения создается при помощи специальных процедур и функций.

Функция ImageSize(x1, y1, x2, y2: integer):word возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения, где x1,y1 – координаты левого верхнего и x2, y2 – правого нижнего углов фрагмента изображения.

Процедура GetImage(x1, y1, x2, y2:integer, var Buf) помещает в память копию прямоугольного фрагмента изображения, где x1, ..,y2 – координаты углов фрагмента изображения, Buf – специальная переменная, куда будет помещена копия видеопамяти с фрагментом изображения. Buf должна быть не меньше значения, возвращаемого функцией ImageSize с теми же координатами.

Процедура PutImage(x1, y1, x2, y2:integer, var Buf, Mode:word) выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой GetImage. X, Y – координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения; Buf –специальная переменная, откуда берется изображение, Mode – способ копирования. Координаты правого нижнего угла не указываются, так как они полностью определяются размерами выводимой на экран копии изображения. Координаты левого верхнего угла могут быть любыми, лишь бы только копия уместилась в пределах экрана (если копия не размещается на экране, то она не выводится , и экран остается без изменений). Параметр Mode определяет способ взаимодействия размещаемой с уже имеющимся на экране изображением.

Таблица 7

Константа 

Значение 

Операция 

Пояснения 

NormalPut 

0 

Замена существующего на копию 

Стирает часть экрана и на это место помещает копию 

XorPut 

1 

Исключительное или 

Рисует сохраненный образ или стирает ранее нарисованный, сохраняя фон 

OrPut 

2 

Объединительное или 

Накладывает сохраненный образ на существующий 

AndPut 

3 

Логическое и 

Объединяет сохраненный образ и уже существующий на экране 

NotPut 

4 

Инверсия изображения 

То же самое, что и 0, только копия выводится в инверсном виде 



2.2. Разработка содержания факультативного курса «Программирование графики» для старшей школы

Пояснительная записка

Факультативный курс "Программирование графики" является одним из способов изучения графических средств Turbo Pascal. Поэтому данный факультатив может использоваться как эффективное приложение основного курса информатики. Он позволяет систематизировать знания, полученные в таких разделах информатики, как "алгоритмизация", "языки и методы программирования", "информационные технологии", и применять эти знания к решению различных задач, связанных с созданием изображений, построением графиков и поверхностей  функций. Данный факультатив будет интересен, прежде всего, ученикам старшей школы, которые  на основных занятиях уже ознакомились с основами языков программирования. 

Языком программирования для данного курса был выбран Turbo Pascal. Курс построен на конкретных примерах и решениях. Все задачи, рассматриваемые на факультативе, рекомендуется реализовывать с использованием среды Borland Pascal или Turbo Pascal, без серьезных изменений эти программы могут быть перенесены в среду компилятора Free Pascal.

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

Факультатив рассчитан на 35 часов (на каждом занятии работа с ЭВМ, большой процент работы отводится на самостоятельную работу).

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

Цели и задачи

Главная цель изучения курса: 

формирование у учащихся представлений о возможностях одного из современных языков программирования Turbo Pascal;

 овладение конкретными методами решения различных задач на графику на ЭВМ.

формирование у выпускников школы основ научного мировоззрения;

создание условий для саморазвития и самовоспитания личности. 

 Цель реализуется выполнением следующих задач: 

сформировать у учащихся в систематизированной форме представления об основных графических средствах Turbo Pascal;

сформировать у учащихся технологию решения задач на графику;

закрепить и углубить навыки программирования на Turbo Pascal;

развитие операционного (алгоритмического) и логического мышления учащихся; 

углубить представление о применении  программировании в приложениях математики (физики); 

формирование умения учащихся самостоятельно получать информацию, пополнять свои знания; 

приобретение учащимися опыта творческой деятельности; 

повышение учебной мотивации.

Текущая аттестация качества освоения программы осуществляется учителем по результатам выполнения учащимися практических заданий. Выполнение практических работ предполагает комплексное творческое применение учащимися полученных знаний, навыков, умений, их углубление и закрепление. 

Итоговый контроль качества освоения программы реализуется в конце учебного года. Учащиеся предоставляют для проверки, самостоятельно выполненные проекты. Работа оценивается, отмечаются положительные и отрицательные моменты и даются необходимые рекомендации. Курс считается освоенным, если учащийся успешно выполнил все задания.

Методы преподавания (включая формы организации учебных занятий)

Занятия включают лекционную и практическую части. Практическая часть курса реализована в форме уроков. Важная составляющая каждого урока является самостоятельная работа учащихся. Тема урока определяется исходя из приобретаемых навыков. В каждом уроке материал излагается следующим образом:

Повторение основных понятий и методов для работы с ними.

Самостоятельное выполнение заданий для получения основных навыков работы; в каждом задании формулируется цель и излагается способ ее достижения.

Упражнения для самостоятельного выполнения.

Теоретические и практические части курса (на усмотрение преподавателя) можно изучать параллельно, чтобы сразу же закреплять теоретические вопросы на практике.   

Содержание обучения



1.Инициализация и закрытие графического режима

Характеристика графических режимов. Подключение модуля Graph (библиотека графических процедур uses Graph).Переменные, которые определяют графический драйвер и монитор: var gd, gm: integer. Задание  команды для выбора значений переменных: gd := Detect; (detect - драйвер сам определяет лучший режим) Инициализация графического режима: InitGraph(gd, gm, ’указывается путь к драйверу (пусть будет пустым)’) Завершение работы в графической системе: CloseGraph. 

Переключение текст — графика — текст.

Обработка ошибок GraphErrorMsg(ErrorCode:integer):string. 



 2. Базовые процедуры и функции модуля GRAPH

Система координат. Перемещение текущего указателя: 

MoveTo(X,Y:integer) перемещает текущий указатель в точку с координатами X,Y.

MoveRel(dX,dY:integer) перемещает текущий указатель на dX точек по горизонтали и на dY точек по вертикали. 

GetX, GetY возвращают координаты текущего указателя.

Экран и окно в графическом режиме:

Создание окна SetViewPort(xl,yl,x2,y2:integer; Clip:boolean).

Очистка окна ClearViewPort.

Атрибуты текущего окна GetViewSettings(var Vp : ViewPortType).

"Закраска" графического окна – SetFillStyle и SetFillPattern.

Вывод точки PutPixel(X,Y:integer;Color:word).

Вывод линии: Line (XI,Y1,Х2,Y2:integer), LineTo(X,Y:integer),    LineRel(dX,dY:integer) .

3.Работа с текстом

Вывод текста OutTextXY(X,Y:integer; TextString:string). 

Вывод численных значений Str (),OutTextXY().

Шрифты SetTextStyle(Font:word; Direction:word; CharSize:word).

Выравнивание текста SetTextJustify(Horiz,Vert:word);

4.Установка цвета и палитры

Получение информации о текущей палитре  GetDefaultPalette (var Palette:PaletteType).

Установка цвета для процедур графического вывода SetColor(Color:word).

Установка нового цвета фона SetBkColor(Color:word).

5. Построение графических фигур

Построение прямоугольников:

вычерчивание одномерного прямоугольника: Rectangle(Xl, Y1, Х2, Y2:integer), 

вычерчивание трехмерного закрашенного прямоугольника Bar3D(xl, yl, x2, y2:integer; Depth: word; Top: boolean. 

Построение многоугольников DrawPoly(NumPointst : word; var PolyPoints)

Построение дуг и окружностей:

Окружность Circle (X, Y, Radius: word); 

Дуга Arc (X,Y: integer; StAngle, EndAngle, Radius: word);

Эллиптическая дуга Ellipse (X,Y:integer; StAngle,EndAngle:word; xR,yR:word);

Закрашенный эллипс FillEllipse (X, Y:integer; xR, yR:word); 

Сектор  PieSlice (X,Y:integer;StAngle,EndAngle,Radius:word); 

Сектор в эллипсе Sector(X, Y:integer; StAngle, EndAngle, xR, yR:word); 

6. Работа с фрагментами изображения

Размер памяти, необходимой для сохранения образа фрагмента ImageSize (XI, Yl, X2, Y2: Integer):Word.

Сохранение образа фрагмента в памяти GetImage (XI, Yl, X2, Y2: Integer; var BitMap).

Выводит из буфера на экран двоичный образ заданной области экрана PutImage (X, Y:integer; var bitmap; Oper :word).

Требования к знаниям и умениям учащихся

Учащиеся должны знать:

		Инициализацию и закрытие графического режима;

Базовые процедуры и функции модуля GRAPH: окно, текущий указатель, точка, линия;

Работу с текстом;

Установку цвета и палитры;

Построение графических фигур;

Работу с фрагментами изображения;

Учащиеся должны уметь:

выбрать и владеть конкретными графическими средствами для решения различных задач на ЭВМ с помощью языка программирования Turbo Pascal;

составить алгоритм для реализации задачи;

выводить текст в графическом режиме;

сохранять и выдавать изображения;

создавать движущиеся изображения;

строить график функции на экране дисплея;

строить изображения графиков и поверхностей функций;

решать одну и ту же задачу различными методами и средствами;

Тематическое планирование учебного материала

Учебно-тематическое планирование предполагает, что при распределении материала необходимо выделять часы на изучение теоретического материала; выполнение практических заданий; консультирование: непосредственное общение учащихся с педагогом или их сетевое взаимодействие; тематический контроль.

35 часов

№ 

Тема

Кол-во часов

Тема 1: Графика в системе Турбо Паскаль. Экран и окно в графическом режиме

1.

Характеристика графических режимов Управление графическими режимами

1

2.

Подключение модуля Graph. Переменные, которые определяют графический драйвер и монитор. Задание  команды для выбора значений переменных. Инициализация графического режима. Завершение работы в графической системе: CloseGraph. 

1

3.

Обработка ошибок

1

4.

Практикум «Обработка ошибок»

1

Тема 2: Базовые процедуры и функции модуля GRAPH

5.

Система координат. Перемещение текущего указателя

Создание окна. Очистка окна. Атрибуты текущего окна. "Закраска" графического окна.

Вывод точки. Вывод линии

1

6.

Практикум «процедуры и функции»

1

Тема 3: Работа с текстом

7.

Вывод текста. Вывод численных значений. 

Шрифты. Выравнивание текста. 



1

8.

Практикум «Работа с текстом»

1

Тема 4: Установка цвета и палитры

9.

Получение информации о текущей палитре.  Установка цвета для процедур графического вывода. Установка нового цвета фона. 

1

10. 

Практикум «Работа с цветом и палитрой»

1

Тема 5: Построение графических фигур

11.

Построение прямоугольников:  одномерный, трехмерный и  закрашенные прямоугольники. Построение многоугольников.

1

12.

Практикум «Построение прямоугольников»

1

13.

Построение дуг и окружностей:

Окружность 

Дуга Эллиптическая дуга 

Закрашенный эллипс 

Сектор  

Сектор в эллипсе 

1

14.

Практикум «Построение дуг и окружностей»

1

15.

Практикум «Построение графических фигур»

1

16.

Отчет по индивидуальным заданиям

1

Тема 6: Работа с фрагментами изображений

17.

Размер памяти, необходимой для сохранения образа фрагмента. 

Сохранение образа фрагмента в памяти. Вывод из буфера на экран двоичный образ заданной области экрана. 

1

18.

Практикум « Работа с фрагментами изображений»

1

Тема 7: Создание движущихся изображений

19.

Различные способы создания движущихся изображений.

1

20.

Практикум «Создание движущихся изображений».

3

Тема 8: Построения графиков функций на экране дисплея

21.

Алгоритмы построения графиков функций

1

22.

Практикум «Построения графиков функций».

3







Тема 9: Разработка индивидуального проекта

23.

Разработка проекта

1

24.

Создание проекта

3

25.

Защита проекта

1

Тема 10: Решение интересных задач

26.

Фракталы алгебраические, геометрические

2

27.

Фракталы схоластические

2

2.3Примеры интересных задач для факультативного курса «Программирование графики»

Предлагаются интересные задачи, ориентированные на построение фрактальных изображений, так как они являются достаточно интересными для изучения их на факультативных занятиях.

Построение салфетки Серпинского

Возьмем равносторонний треугольник и тремя его средними линиями разобьем на четыре равных треугольника. Внутренность среднего треугольника удалим, а с оставшимися тремя замкнутыми треугольниками повторим только что описанный процесс, то есть разделим каждый из них средними линиями на четыре равных треугольника и внутренности средних из них опять удалим. Очевидно, что после  n шагов процесса мы будем иметь 3^n треугольников. Объединение их точек и будем называть салфеткой Серпинского n-ного ранга.



Построение салфетки Серпинского:

Program Sierp;

Uses Graph, Crt;

Type

TComplex = Record

X : Real;

Y : Real;

End;

Const

iter = 50;

max = 127;

Var
z : TComplex;

x, y, n : Integer;

gd, gm : Integer;

mx, my : Integer;

Begin

gd := Detect;

InitGraph(gd,gm,'');

Mx := GetMaxX div 2;

My := GetMaxY div 2;

For y := -my to my do

For x := -mx to mx do Begin

n := 0;

z.x := X * 0.005;

z.y := Y * 0.005;

While (sqr(z.x) + sqr(z.y) < max) and (n < iter) do Begin

If z.y>0.5 Then Begin

z.x:=2*z.x;

z.y:=2*z.y-1;

End Else

If z.x>0.5 Then Begin

z.x:=2*z.x-1;

z.y:=2*z.y;

End Else

Begin

z.x:=2*z.x;

z.y:=2*z.y;

End;

Inc(n);

End;

PutPixel(mx + x,my + y,16 - (n mod 16));

If KeyPressed Then Break;

End;

Readkey;

CloseGraph;

End.

Построение кривой Коха

Начинаем с отрезка-основы: удаляем его среднюю третью часть и заменяем се сторонами равностороннего треугольника.

Если основа имеет длину 1, то фрагмент будет состоять из четырех отрезков, каждый длины 1/3 и. следовательно, обшей длины 4/3. На следующем шаге получаем ломаную, состоящую из 16 отрезков и имеющую общую длину 16/9 и т.д.

Кривая Коха имеет бесконечную длину. Кроме того, кривая Коха состоит из четырёх равных частей, каждая из которых подобна всей кривой с коэффициентом подобия 1/3. Кривая Коха самоподобна: каждая часть является миниатюрной копией целого. Для построения кривой Коха фиксируем степень приближения p. Это означает, что мы будем применять «p» преобразований к «основе». Если основа это отрезок, то результатом будет ломаная линия, состоящая из отрезков равной длины . Будем нумеровать отрезки от 0 до включительно. Для каждого шага (соответствующему индексу n) должен нарисоваться отрезок, точнее говоря, вектор



Построение кривой Коха:

program Kox;

uses CRT, Graph;

const

p=5;

var gd, gm: Integer;

i, j: Integer;

x, y, l: Real;

a: Real;

n, m, k: Integer;

begin

gd:=Detect;

InitGraph(gd, gm, 'c:\bp\bgi');

x:=0;

y:=400;

l:=640/(exp(p*ln(3)));

MoveTo(Round(x), Round(y));

for i:=0 to Round(exp(p*ln(4)))-1 do begin

a:=0;

n:=i;

k:=0;

repeat

m:=n mod 4;

n:=n div 4;

case m of

0: a:=a+0;

1: a:=a-pi/3;

2: a:=a+pi/3;

3: a:=a+0;

end;

inc(k);

until k>=p;

x:=x + l*cos(a);

y:=y + l*sin(a);

LineTo(Round(x), Round(y));

end;

ReadKey;

CloseGraph;

end.

Построение фрактала крест

Образуем случайную последовательность из точек , , ,… Каждая точка получается из предыдущей с помощью применения к предыдущей преобразования L или R , где





При чём каждое из этих преобразований выбирается случайно, с вероятностью 0,5.

Положим, например, =2,8. Здесь L – поворот на  относительно точки 

(0, 0), а R – растяжение относительно точки (1, 0) с переменным показателем, который зависит от расстояния от центра (0, 1). В результате получается фрактал «крест»



Построение фрактала "Крест"

program Rnd;

Uses CRT, Graph;

Var

gd,gm : Integer;

Procedure draw;

const

iter = 70000;

a = 2.8;

Var

t, x, y, p : Real;

k : LongInt;

mx, my, rad : Integer;

Begin

mx := 320;

my := 240;

rad := 200;

Randomize;

x := 0.0;

y := 0.0;

For k := 1 To iter Do Begin

p := Random;

t := x;

If p <= 1/2 Then Begin

x := -y;

y := t;

End

Else

Begin

x := 1+(a*(x-1))/(sqr(x-1)+sqr(y)+1);

y := a*y/(sqr(t-1)+sqr(y)+1);

End;

PutPixel(mx + Round(rad * x), my - Round(rad * y), 2);

End;

End;

Begin

gd := Detect;

InitGraph(gd,gm,'');

draw;

ReadKey;

CloseGraph;

End.



















Заключение

Общеобразовательная сила идей и методов, заимствованных из области программирования, несет в себе огромный потенциал для развития компонентов содержания общего школьного образования.

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

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

Данная работа была нацелена на теоретическое обоснование методов проведения факультативных курсов по информатике для старшей школы и разработку факультативного курса «Программирование графики» для старшей школы. Здесь представлен теоретический материал, подлежащий усвоению на факультативном курсе, тематическое планирование и примеры интересных задач. Она будет интересна, прежде всего, учителям, которые решили проводить факультативные занятия по программированию графики. Ориентируясь на содержание курса, они смогут построить свой факультативный курс, учитывая интересы и возможности учащихся.



Список литературы

			Алексеев Е.Р., Чеснокова О.В. Турбо Паскаль 7.0,-М.: НТ Пресс, 2006.

			Бандурист В.Ю. Методический подход к разработке требований по созданию информационных средств обучения // Проблемы информатизации образования: региональный аспект: Материалы V Всероссийской научно-практической конференции. – Чебоксары, 2007.

			Башмаков А.И., Башмаков И.А. Разработка компьютерных учебников и обучающих систем. – М.: Информационно-издательский дом «Филин», 2003.

			Беспалько, В.П. Основы теории педагогических систем /В.П.Беспалько. - Воронеж: Изд-во Воронеж. ун-та, 1977.

			Борк, А. Компьютеры в обучении: чему учит история/А. Борк // Информатика и образование.- М., 1990. - №5.

			Лапчик М.П.  и др. Методика преподавания информатики: Учеб. пособие для студ. пед. вузов / М.П. Лапчик, И.Г. Семакин, Е.К. Хеннер; Под общей ред. М.П. Лапчика. – М.: Издательский центр «Академия», 2001.

			Мандельброт Б. Б. Фрактальная геометрия природы. - Москва, 2002.

			Машбиц, Е.И. Компьютеризация обучения: проблемы и перспективы/Е.И. Машбиц. – М.:Педагогика, 1988.

			Машбиц, Е.Н. Психолого-педагогические проблемы компьютеризации обучения/Е.Н.Машбиц. -  М.: Педагогика, 1988. – 191 С.

	 Морозов А. Д. Введение в теорию фракталов. - Москва, Ижевск, 2002

			 Педагогика: педагогические теории, системы, технологии/Под ред. С.А. Смирнова. –М., 1999.

			 С.Немнюгин Turbo Pascal практикум – М, 2005.

			 Пидкасистый П.И., Фридман Л.М., Гарунов М.Г. Психолого-дидактический справочник преподавателя высшей школы. –  М.: Педагогическое общество России, 1999.

Сидоров М. Е., Трушин О. В.Школа работы на IBM PC. Часть 2. - Уфа,1996.

	http://pascal.sources.ru

	http://www.1poet.ru/bpascal/





2