СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Построение графических изображений в виде звёзд с различным количеством лучей в среде Turbo Pascal

Категория: Информатика

Нажмите, чтобы узнать подробности

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

Просмотр содержимого документа
«Построение графических изображений в виде звёзд с различным количеством лучей в среде Turbo Pascal»

15






МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ ДЕТЕЙ

«СТАНЦИЯ ЮНЫХ ТЕХНИКОВ ГОРОДА ЕВПАТОРИИ РЕСПУБЛИКИ КРЫМ»

(МБОУДОД "СЮТ")


297408, Российская Федерация, Республика Крым, город Евпатория, ул. Революции, д. 75, тел. (06569) 3-03-30,

е-mail: [email protected]



План-конспект учебного занятия

кружок «Компьютер и информационные технологии», группа 2 – А


Тема учебного занятия: «Построение графических изображений в виде звёзд с различным количеством лучей в среде Turbo Pascal».


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


Задачи учебного занятия:

Образовательная:

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

  • обеспечить усвоение основных задач, входящих в содержание темы учебного занятия;

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

  • формировать умение правильно и грамотно выражать свои мысли.


Развивающая:

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


Воспитательная:

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


Тип учебного занятия: формирование новых знаний, навыков и умений.


Методы работы: объяснительно-иллюстративный, практическая работа.


Формы работы: индивидуальная, групповая.


Оборудование: персональные компьютеры, доска, мел.


Дидактические материалы: карточки с заданиями.


Ход учебного занятия.

  • Организационный момент;

  • ТБ при работе за компьютером;

  • Актуализация опорных знаний:

  • Мотивация учебной деятельности обучающихся:

  • Выполнение практической работы;

  • Физкультминутка;

  • Итоги учебного занятия:

  • Вы научились составлять программы с использованием циклических операторов и с использованием графических процедур и функций в среде Turbo Pascal для построения звёзд с различным количеством лучей.


1. Организационный момент.

Приветствие, проверка присутствующих. Объяснение хода учебного занятия.


2. ТБ при работе за компьютером.


3. Актуализация опорных знаний:


Основные принципы работы с языком Pascal.

Pascal – один из самых известных языков программирования. Создан в 1968 – 1969 годах швейцарским ученым Никлаусом Виртом, был назван в честь французского математика и физика Блеза Паскаля, и используется для обучения программированию по сей день.





Перед началом работы следует напомнить, что язык Pascal – это совокупность трёх составляющих: алфавита, синтаксиса (правил написания объектов языка) и семантики (правил использования этих объектов).
Алфавит Pascal состоит из:

  1. Прописных и строчных букв латиницы: A...Z, a…z;

  2. Цифр: 0...9;

  3. Специальных символов: + — * / = .,:; ‘ # ( ) { } [ ] и их комбинаций: «=» «


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

Структура программы выглядит так:

Program «имя программы»; — заголовок программы;
(Примечание: в конце строки ставится точка с запятой, не во всех, но в большинстве) 
Uses (название библиотеки); здесь подключаются библиотеки, которые дают дополнительные возможности при создании программ;
Label (имя метки); здесь, если необходимо, прописываются метки, позволяющие переходить в разные места программы (о них позже);
Const тут указываем переменные с постоянной величиной, например, p=3.14;
Var тут через запятую перечисляем все переменные, а затем, указываем тип данных (Пример: Var: K, L, M: integer; N, O: real; (если несколько типов));
Begin (здесь без точки с запятой)
Дальше следует основной блок программы;
end. – конец программы (обязательно после “end” точка, если только это конец программы, а не операторные скобки).


Следует заметить, что из вышеперечисленных разделов обязательными есть только «Var», «Begin» и «end», остальные же могут применяться, если это требуется в ходе выполнения поставленной задачи. 

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


Функция Round: округляет значение вещественного типа до значения целочисленного типа.

Модуль Graph

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

VGA адаптер имеет разрешение 640х480 пиксель (точка (0,0) в левом верхнем углу экрана), 16 цветов.

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


Общая структура графической программы:

Uses crt, graph;

var Gd, Gm: Integer;

begin

Gd: = Detect;

InitGraph (Gd, Gm, 'c: \bp\bgi');

...

{Здесь построение изображения}

...

ReadKey;

CloseGraph;

end.

Путь c: \bp\bgi указывает расположение файла egavga. bgi (драйвер графического адаптера). На разный компьютерах этот путь может быть разным. Если файл egavga. bgi поместить в каталог с программой, то путь можно не указывать.


Основные графические процедуры и функции:

Построение фигур

PutPixel (x,y,c) - отображает на экране точку с координатами (x,y) и цветом c

Line (x1,y1,x2,y2) - рисует линию с началом в точке (x1,y1) и концом - (x2,y2)

Rectangle (x1,y1,x2,y2) - рисует контур прямоугольника с диагональю (x1,y1) - (x2,y2)

Bar (x1,y1,x2,y2) - рисует закрашенный прямоугольник с диагональю (x1,y1) - (x2,y2)

Circle (x,y,r) - рисует окружность с центром (x,y) и радиусом r

Ellipse (x,y,ba,ea,xr,yr) - рисует дугу эллипса с центром в (x,y), горизонтальным и вертикальным радиусом xr и yr, и начальным и конечным углом ba и ea

FillEllipse (x,y,xr,yr) - рисует закрашенный эллипс с центром в (x,y), горизонтальным и вертикальным радиусом xr и yr


Определение цветов и стилей

GetPixel (x,y) - возвращает цвет пиксела с координатами (x,y)

SetColor (c) - устанавливает цвет изображения (для линий) (смотри таблицу1)

SetFillStyle (p,c) - устанавливает текущий стиль и цвет c (для "закрашенных" фигур)

FloodFill (x,y,b) - закрашивает замкнутую область с внутренней точкой (x,y) и цветом контура b


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

OutTextXY (x,y,st) - выводит на экран строку st с позиции (x,y)

SetTextStyle (f,d,s) - устанавливает шрифт f, его направление d и размер


Таблица1


Сообщения об ошибках.


function GraphErrorMsg (ErrorCode: integer): String; Возвращает строку сообщения об ошибке для заданного кода ErrorCode.


function GraphResult: integer; Возвращает код ошибки для последней графической операции.



Графические процедуры


Arc (x,y: integer; St,En,R: word);{рисование дуги, где x,y - коорд. центра дуги, R - радиус, St, En - нач. и конечный углы. }




ClearDevice; {очистка экрана}

Circle (x,y: integer; R: word);{окружность радиуса R

cцентром в точке (x,y) }

CloseGraph; {закрытие графики}

InitGraph (gd,gm: integer; Path: string);{инициализация графики, где

gd - графический драйвер,

gm - графический режим,

Path - путь размещения файла

с расширением. bgi. }

Line (x1,y1,x2,y2: integer); {рисование линии, проходящей через две точки:

с координатами (x1,y1) и (x2,y2) }

LineRel (dx,dy: integer);{рисование линии: dx, dy- приращения

координат к координатам текущей позиции курсора}


LineTo (x,y: integer);{рисование линии, проходящую через текущую позицию курсора и точку с координатами (x,y) }

Moveto (x,y: integer);{задание координат текущей точки}

OutText (T: string);{вывод текста в текущую точку}

OutTextXY (x,y: integer; T: string);{вывод текста в точку с координатами х, у}

Rectangle (x1,y1,x2,y2: integer);{рисование прямоугольника: (x1,y1) и (x2,y2) - координаты противоположных вершин}

PutPixel (x,y: integer; c: word);{выводит точку с координатами (х, у) цветом с}



Операторы цикла с предварительным условием (WHILE)

Оператор цикла while содержит в себе выражение, которое управляет повторным выполнением оператора (который может быть составным оператором).


WHILE выражение DO

BEGIN

Внутренний оператор;

END;



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


Операторы цикла с параметром (FOR)

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


FOR управляющая переменная:=исходное значение

TO конечное значение

DO оператор


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

FOR управляющая переменная:=исходное значение

DOWNTO конечное значение

DO оператор


В качестве управляющей переменной должен использоваться идентификатор переменной, который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. Управляющая переменная должна иметь порядковый тип. Начальное и конечное значения должны иметь тип совместимый по присваиванию с этим порядковым типом.

Когда начинает выполняться оператор for, начальное и конечное значения определяются один раз и эти значения сохраняются на протяжении всего выполнения оператора for.

Оператор, который содержится в теле оператора for, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением. Когда оператор for использует ключевое слово to значение управляющей переменной увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то оператор, содержащийся в теле оператора for, не выполняется.

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

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


4. Мотивация учебной деятельности обучающихся:

Создавая Паскаль, Вирт преследовал 2 цели:

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

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


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

Это был самый первый простой язык (ord pascal) для программирования, помогающий решить множество практических задач прошлого столетия (1970 год). Он был разработан группой ученых. С расширением платформ были созданы новые версии этой программы, а Pascal стал классическим языком программирования.


5. Выполнение практической работы.

Задание1. Написать программу движения прямой по осям координат, в результате которого получится четырёхконечная звезда.


Решение.

Program zvezda4; {заголовок программы}

uses Graph, crt; {подключение библиотек}

var a,b,i: integer; {описание переменных, используемых в программе}

begin {начало основной программы}

a:=Detect; {автоматическое определение аппаратуры}

InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}

i:=-10;

while i

begin

i:=i+10;

setcolor(2);

line(round(440-i),round(50+i),round(240-i),round(250-i)); {round округляет значение вещественного типа до значения целочисленного типа

line(round(440-i),round(50+i),round(240+i),round(250+i));

line(round(440-i),round(450-i),round(240-i),round(250+i));

line(round(40+i),round(450-i),round(240-i),round(250-i));

end;

readkey;

end.


Задание2. Написать программу движения прямой по осям, в результате которого получится восьмиконечная звезда.


Решение.

Program zvezda8; {заголовок программы}

uses Graph, crt; {подключение библиотек}

var a,b,i: integer; {описание переменных, используемых в программе}

begin {начало основной программы}

a:=Detect; {автоматическое определение аппаратуры}

InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}

i:=-10;

while i

begin

i:=i+10;

setcolor(2);

line(round(40+i),round(50+i),240,round(250-i)); {round округляет значение вещественного типа до значения целочисленного типа

setcolor(4); {устанавливает цвет изображения красный (для линий)}

line(round(440-i),round(50+i),240,round(250-i));

setcolor(5); {устанавливает цвет изображения фиолетовый (для линий)}

line(round(440-i),round(50+i),round(240+i),250);

setcolor(6); {устанавливает цвет изображения коричневый (для линий)}

line(round(440-i),250,round(240+i),round(250+i));

setcolor(7); {устанавливает цвет изображения светло-серый (для линий)}

line(round(440-i),450-i,240,round(250+i));

setcolor(8); {устанавливает цвет изображения тёмно-серый (для линий)}

line(240,round(450-i),round(240-i),round(250+i));

setcolor(9); {устанавливает цвет изображения светло-синий (для линий)}

line(round(40+i),round(450-i),round(240-i),250);

setcolor(3); {устанавливает цвет изображения бирюзовый (для линий)}

line(round(40+i),250,round(240-i),round(250-i));

end;

readkey;

end.


Задание3. Написать программу движения прямой по осям, в результате которого получится шестнадцатиконечная звезда.


Решение.

Program zvezda16; {заголовок программы}

uses Graph, crt; {подключение библиотек}

var a,b,i: integer; {описание переменных, используемых в программе}

begin {начало основной программы}

a:=Detect; {автоматическое определение аппаратуры}

InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}

i:=-10;

while i

begin

i:=i+10;

setcolor(2); {устанавливает цвет изображения серый (для линий)}

line(round(40+i),round(50+i),round(240-i/2),round(250-i)); {round округляет значение вещественного типа до значения целочисленного типа

setcolor(2); {устанавливает цвет изображения серый (для линий)}

line(round(140+i/2),round(50+i),240,round(250-i));

setcolor(4); {устанавливает цвет изображения красный (для линий)}

line(240,round(50+i),round(240+i/2),round(250-i));

setcolor(4); {устанавливает цвет изображения красный (для линий)}

line(round(340-i/2),round(50+i),round(240+i),round(250-i));

setcolor(5); {устанавливает цвет изображения фиолетовый (для линий)}

line(round(440-i),round(50+i),round(240+i),round(250-i/2));

setcolor(5); {устанавливает цвет изображения фиолетовый (для линий)}

line(round(440-i),round(150+i/2),round(240+i),250);

setcolor(6); {устанавливает цвет изображения коричневый (для линий)}

line(round(440-i),250,round(240+i),round(250+i/2));

setcolor(6); {устанавливает цвет изображения коричневый (для линий)}

line(round(440-i),round(350-i/2),round(240+i),round(250+i));

setcolor(7); {устанавливает цвет изображения светло-серый (для линий)}

line(round(440-i),round(450-i),round(240+i/2),round(250+i));

setcolor(7); {устанавливает цвет изображения светло-серый (для линий)}

line(round(340-i/2),round(450-i),240,round(250+i));

setcolor(8); {устанавливает цвет изображения тёмно-серый (для линий)}

line(240,round(450-i),round(240-i/2),round(250+i));

setcolor(8); {устанавливает цвет изображения тёмно-серый (для линий)}

line(round(140+i/2),round(450-i),round(240-i),round(250+i));

setcolor(9); {устанавливает цвет изображения светло-синий (для линий)}

line(round(40+i),round(450-i),round(240-i),round(250+i/2));

setcolor(9); {устанавливает цвет изображения светло-синий (для линий)}

line(round(40+i),round(350-i/2),round(240-i),250);

setcolor(3); {устанавливает цвет изображения бирюзовый (для линий)}

line(round(40+i),250,round(240-i),round(250-i/2));

setcolor(3); {устанавливает цвет изображения бирюзовый (для линий)}

line(round(40+i),round(150+i/2),round(240-i),round(250-i));

end;

readkey;

end.


Сохраните Вашу работу и покажите её педагогу.

6. Физкультминутка.

7. Итоги учебного занятия

Ответьте на следующие вопросы:

  1. Что нового Вы узнали, решив задания на учебном занятии?

  2. Задания были сложными? Задания были интересными?

  3. Над изучением каких тем в разделе «Изучение языка программирования Pascal» Вы хотели бы ещё поработать?






15