Построение графических изображений средствами языка программирования Pascal

Разделы: Информатика


Цели урока:

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

Оборудование: проектор, экран.

Раздаточный материал:

Дидактический материал:

  • Карточки с названиями операторов графики; <Приложение 2
  • Изображение, которое должна выполнить программа с ошибкой; (Рисунок 1)
  • Изображения для задания домашней работы и дополнительных заданий; (Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5)
  • Программа на языке программирования Pascal с анимацией.

ХОД УРОКА

I. Подготовка к изучению нового материала через повторение и актуализацию опорных знаний

1. Повторение:

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

1. Общая структура программы.
2. Типы данных,  определённых для работы с целыми числами.(Integer, longint, word,byte)
3. Арифметические операции для работы с целыми числами.
4. Логические операции.
5. Условный оператор (if(если)then(то)else(иначе)).
6. Операторы циклов

  • (while ( пока) do(выполнять)
  • repeat(повторять до тех пор) until(пока не будет выполнено условие)
  • for(для) to(до) do(выполнять)).

7. Символьные величины.

2. На проверку усвоения служебных слов выполнить кроссворд.

У каждого на рабочем столе компьютера находится раздаточный материал <Приложение 1>

Слова по горизонтали:

1. Служебное слово оператора цикла с предусловием.
2. Вещественный тип данных.
3. Операция, с помощью которой можно определить предыдущий по номеру символ.
5.   Раздел описания переменных начинается со слова...
6.   Эта операция доступна только для целых чисел.
7.   С этого слова начинается условный оператор.
8.   Открывающий операторную скобку.
9.   Символьные переменные описываются с помощью этого слова.
10.  Если логическое выражение истинно, то выполняется группа операторов, стоящих  после этого служебного слова.
11. Это слово является частью оператора для двух видов цикла.
12. Смысл этого слова –"повторять".

Слова по вертикали:

1. Положительные 16-разрядные числа описывают с помощью этого служебного слова.
3.   С этого слова начинается текст программы.
4.   Тип данных, предназначенный для работы с большими целыми числами.
9.   Постоянные величины определяют после этого служебного слова.
13.  Конец текста программы.
14.  Это слово присутствует только в полной форме условного оператора.
15.  Отрицание.
16.  for…do.

Ответы

3. Повторить назначение операторов графики по заготовленным карточкам. <Приложение 2

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

  1. Вывод на экран закрашенный прямоугольник.
  2. Вывод на экран трёхмерную полоску.
  3. Вывод на экран изображения окружности.
  4. Вывод на экран изображения закрашенного эллипса.
  5. Вывод на экран линию, соединяющую точки с заданными координатами.
  6. Вывод на экран пиксель с заданными координатами и заданным цветом.
  7. Вывод на экран изображение прямоугольника.
  8. Установка текущего фонового цвета.
  9. Установка цвета рисования.
  10.  Установка образца штриховки и цвет.
  11. Определение стиля и толщины линии.
  12. Штриховка замкнутой области.

Для отработки теоретических знаний, выполняется задание №4.

4.  Найди ошибку в программе, исправь её и запусти программу.

Программа выполняет следующее изображение:

Рисунок 1

Файл oshibka.pas –  раздаточный материал на рабочем столе компьютера.<Приложение 3>

Program oshibka;
Uses Graph, CRT;
Var gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’)
         SetColor(15);
         rectangle (100,600,530,370);
         SetFillStyle (1,3); FloodFill (320,240,15);
         SetColor(4)
         Cirkle (320,240,50);
         SetFillStyle (1,5); FloodFill (320,240,15);
         Readln;
         CloseGraph;
End.

Правильный ответ:

Program oshibka;
Uses Graph, CRT;
Var gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         SetBkColor (3); (установка цвета фона)
         SetColor(15);
         rectangle (100,100,530,370); (координаты точек прямоугольника)
         SetFillStyle (1,3); FloodFill (320,240,15);
         SetColor(4); (отсутствие «;»)
         Circle (320,240,50); (ошибка в идентификаторе)
         SetFillStyle (1,5); FloodFill (320,240,4); (цвет до которого будет производиться заливка)
         Readln;
         CloseGraph;
End.

5. Проверка выполнения домашнего задания

Ввести в компьютер программу домашнего задания, взяв за основу файл oshibka.pas

1) Построение ракушки.

Program line;
Uses Graph, CRT;
Var x, y, gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         setcolor(6);
         for i:=1 to 10 do circle(20*i,240,20*i); for i:=1 to 10 do circle(320,8*i*2,10*i);
         ReadKey;
         CloseGraph;
End.

Рисунок 2

2) Построение случайных линий

Program line;
Uses Graph, CRT;
Var x, y, gd, gm: integer;
Begin
randomize$
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         repeat
                  setcolor(random(15));
                   line(320,240, random(640), random(480)); line(0, 480, random(640), random(480));
                   line(640,0, random(640), random(480));
                   delay(3000);
         until keypressed;
         ReadKey;
         CloseGraph;
End.

Рисунок 3

3) Расчертить весь экран в клетку (размер клетки 10 пикселей на 10).

Program line;
Uses Graph, CRT;
Var x, y, gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         y:=10; x:=10;
         while y<480 do
                  begin
                  line (0, y, 639, y);
                  y:= y+10
                  end;
         while x<640 do
                  begin
                  line (x, 0, x, 479);
                  x:= x+10
                  end;
         ReadKey;
         CloseGraph;
End.

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

Рисунок 4

Рисунок 5

По мере выполнения учащиеся идут к доске и записывают домашнюю программу, затем объясняют классу (3 человека). Класс по мере обсуждения работ вносит свои предложения.

II. Ознакомление с новым материалам

6. Разбор нового фрагмента программы (анимация)

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

Program line;
Uses Graph, CRT;
Var x, y, gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         setcolor(6);
         for y1:=30 to 450 do
         begin
         setcolor(2);
         bar3d (300, y1,330,y1+30,10,true);
         delay(1000);
         setcolor(0);
         bar3d (300, y1,330,y1+30,10,true);
         end;
         ReadKey;
         CloseGraph;
End.

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

III. Первичное осмысление и закрепление связей и отношений в объектах изучения.

Внесём коррективы, изменим куб на окружность.

Program line;
Uses Graph, CRT;
Var x, y, gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         setcolor(6);
         for y1:=30 to 450 do
         begin
         setcolor(2);
         circle(100,y1,20);
         delay(1000);
         setcolor(0);
         circle(100,y1,20);
         end;
         ReadKey;
         CloseGraph;
End.

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

Program line;
Uses Graph, CRT;
Var x, y, gd, gm: integer;
Begin
         gd:= 0;
         InitGraph (gd, gm, ‘C:/BP/BGI’);
         setcolor(6);
         for y1:=30 to 450 do
         begin
         setcolor(2);
         circle(100+y1,y1,20);
         delay(1000);
         setcolor(0);
         circle(100+y1,y1,20);
         end;
         ReadKey;
         CloseGraph;
End.

IV. Постановка задания на дом

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

V. Подведение итогов урока

Давайте подведём итог нашего урока. Чем мы сегодня занимались на уроке?
Сегодня мы повторили служебные слова и операторы графики (различными способами); отработали построение стандартных графических примитивов; применили циклы при построении более сложных графических изображений; ознакомились с программой, содержащей анимацию, и внесли в неё изменения.

Рефлексия. Работа с оценочными листами и выставление оценок. <Приложение 4>

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