Отчет о работе кружка "Графика в Паскале"

  • Презентации учебные
  • pptx
  • 01.02.2022
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Презентация на тему "Графика в Паскале" была разработана для отчета на МО руководителей внеурочной деятельностью.
Иконка файла материала grafika_v_Pascale.pptx

Графика в АВС - Паскале

Автор: учитель математики и информатики МКОУ «Киикская средняя школа» НСО
Ливанова Татьяна Юрьевна

Цель:

Развитие алгоритмического мышления у учащихся;
Освоения основных алгоритмических конструкций;
Овладение навыками программирования;
Подготовка учащихся к успешному участию в олимпиадах различных уровней.

Планируемые результаты

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

Планируемые результаты

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

Планируемые результаты

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

Основные понятия

Исполнитель
Алгоритм
Основные алгоритмические конструкции

Изучение построено на примерах освоения работы с

1) Исполнителями:
Робот,
Черепашка,
Чертежник;
2) Построение алгоритмов с помощью конструктора блок – схем;
3) Составление программ на языках программирования (Паскаль).

Почему графика?

Это наглядно
Это увлекательно
Работает на повышение мотивации учащихся

Последовательность изучения

Изучение среды программирования
Графические примитивы
Цвет
Движение

Среда программирования

Поле для
ввода
программы

Запуск
программы
на выполнение

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

Для рисования необходимо инициализировать графический режим.
В наших примерах рассматривается стандартный режим VGA – 640x480.
ABC-Pascal
uses GraphABC;
по умолчанию VGA-режим
 Система координат:  
Поскольку текст выводится слева-направо, сверху-вниз, то и в графическом режиме стандартная система координат выглядит так:

О

Х

У

Графические примитивы

SetPixel(x,y,c);
точка
SetPenColor(c);
Line (x1,y1,x2,y2);
линия
SetPenColor(c);
Circle(x,y,r);
окружность
SetPenColor(c);
Rectangle (x1,y1,x2,y2);
прямоугольник
SetPenColor(c);
SetBrushColor(c);
Rectangle (x1,y1,x2,y2);
прямоугольник закрашенный
SetPenColor(c);
Arc (x,y,r,a1,a2);
дуга; a1-начало дуги в градусах, a2-конец дуги в градусах
SetPenColor(c);
Ellipse (x,y,a1,a2,rx,ry);
эллипсная дуга; rx,ry – радиусы эллиса по соотв. осям.
FloodFill(x,y,c);
Заливает область, начиная с точки x,y, цветом c.
Здесь х,у – координаты, с – цвет.

Цвет

 В ABC-Pascal цвет линии задается функцией SetPenColor(c); цвет заливки – SetBrushColor(c);
Цвета в PAscal – см. граф. константы (clblack, clwhite) или через RGB(<уровень красного>,<уровень зеленого>, <уровень синего>).

Таблица цветов

clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый
clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебряный

Создаем анимации

LockDrawing – Запрет на показ предыдущих изображений;
ClearWindow – Очистить экран;
Redraw – Вернуть изображение;
Sleep(k) – Задержка экрана на к миллисекунд.

Работы учеников

Программы на Паскале (Щербаков Алексей)

Кирюшин Никита

Таров Саша

Правосудов Ярослав

Программа

program RPOCLAB;
uses GraphABC;
begin
SetPenColor(clGreen);
SetBrushColor(clGreen);
Circle(90,100,85);
SetPenColor(clBrown);
SetBrushColor(clBrown);
Rectangle(70,180,100,450);
FloodFill(1,1,clAqua);
SetPenColor(clPurple);
SetBrushColor(clPurple);
Rectangle(220,200,500,480);
SetPenColor(clRed);
Line(360,50,220,200);
SetPenColor(clRed);
Line(360,50,500,200);
FloodFill(300,150,clRed);

SetPenColor(clGreen);
SetBrushColor(clGreen);
Rectangle(10,490,1200,400);
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(90,60,15);
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(80,100,15);
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(50,50,15);
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(50,120,15);
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(40,85,15);
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(70,145,15);

SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(105,150,15);
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(115,100,15);
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(500,70,50);
SetPenColor(clYellow);
Line(570,5,415,100);
SetPenColor(clYellow);
Line(590,120,400,10 );
SetPenColor(clYellow);
Line(590,60,400,60 );
SetPenColor(clYellow);
Line(500,170,500,0 );
SetPenColor(clTeal);
SetBrushColor(clYellow);
Rectangle(270,220,350,300);
SetPenColor(clBrown);
SetBrushColor(clBrown);
Rectangle(470,400,400,260);
SetBrushColor(clBlack);
Circle(460,350,10);
end.

Космос (графика в Паскале)

Автор: ученик 7 класса МБОУ Тогучинского района «Киикская средняя школа»
Никита Кирюшин
Наставник - руководитель внеурочного курса
«Учимся программировать»: Ливанова Татьяна Юрьевна

Цель:

Изучить графические возможности среды программирования АВС - Паскаль;
Научиться создавать движение средствами программирования в среде АВС- Паскаль.

План выполнения работы

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

Код круга

пишем процедуру planeta, где x, y - координаты центра планеты, c - цвет, r -радиус планеты.
procedure planeta(x,y,c,r:integer);
begin
setpencolor(c);
setbrushcolor(c);
circle(x,y,r);
end;

Солнце

setpencolor(clyellow);
setbrushcolor(clyellow);
circle(500,400,50);

Планеты

c:=clbrown;
r:=15;
d:=100;
x:=trunc(500+d*cos((i*3.14)/180));
y:=trunc(400+d*sin((i*3.14)/180));
planeta(x,y,c,r);
c:=clblue;
r:=20;
d:=150;
x:=trunc(500+d*cos((2*(i+150)*3.14)/180));
y:=trunc(400+d*sin((2*(i+150)*3.14)/180));
planeta(x,y,c,r);
c:=clred;
r:=25;
d:=300;
x:=trunc(500+d*cos(((i-100)*3.14)/180));
y:=trunc(400+d*sin(((i-100)*3.14)/180));
planeta(x,y,c,r);

Кольцо Третьей планеты

x0:=x;
y0:=y;
for j:=0 to 345 do
begin
x:=trunc(x0+50*cos((3.14*j)/180));
y:=trunc(y0+50*sin((3.14*j)/180));
r:=5;
c:=rgb(200,200,200);
planeta(x,y,c,r);
end;

Звезды

for j:=1 to 8 do
begin
x:=trunc(random(1000));
y:= trunc(random(1000));
r:=trunc(random(10));
c:=rgb(trunc(random(255)),trunc(random(255)),trunc(random(255)));
planeta(x,y,c,r);
end;

Космическое пространство (фон)

floodfill(1,1,clblack);

Еще несколько штрихов

Clerwindow


Lockdrawing

Redraw

Sleep (100)

Очистка экрана (в начале цикла, стирает предыдущую картинку)
Рисовать на скрытом экране (предотвращает мигание экрана)
Вернуть картинку на экран
Задержка картинки (100 мс)

Код (полностью)

program nebo;
uses graphabc;
var i,j,x,y,k,c,r,d:integer;
var x0,y0:integer;
// Процедура "Планета"
procedure planeta(x,y,c,r:integer);
begin
setpencolor(c);
setbrushcolor(c);
circle(x,y,r);
end;
//Начало
begin
//Количество оборотов планет вокруг солнца
for k:=1 to 10 do
begin
//Прорисовка картины
for i:=0 to 360 do
begin
clearwindow;
lockdrawing;
//Солнце
setpencolor(clyellow);
setbrushcolor(clyellow);
circle(500,400,50);
//Первая планета
c:=clbrown;
r:=15;
d:=100;
x:=trunc(500+d*cos((i*3.14)/180));
y:=trunc(400+d*sin((i*3.14)/180));
planeta(x,y,c,r);

//Третья планета
c:=clred;
r:=25;
d:=300;
x:=trunc(500+d*cos(((i-100)*3.14)/180));
y:=trunc(400+d*sin(((i-100)*3.14)/180));
planeta(x,y,c,r);
//Кольцо вокруг третьей планеты
x0:=x;
y0:=y;
for j:=0 to 345 do
begin
x:=trunc(x0+50*cos((3.14*j)/180));
y:=trunc(y0+50*sin((3.14*j)/180));
r:=5;
c:=rgb(200,200,200);
planeta(x,y,c,r);
end;
//Звезды
for j:=1 to 8 do
begin
x:=trunc(random(1000));
y:= trunc(random(1000));
r:=trunc(random(10));
c:=rgb(trunc(random(255)),trunc(random(255)),trunc(random(255)));
planeta(x,y,c,r);
end;
//Фон космического пространства
floodfill(1,1,clblack);
redraw;
sleep(100);
end; end;
end.

Результат

получилась картинка в движении, если смотреть через Паскаль АВС

С П А С И Б О З А
В Н И М А Н И Е!