РОЗРОБКА ПРАКТИЧНИХ РОБІТ ДЛЯ ВИВЧЕННЯ МОВИ ПРОГРАМУВАННЯ „PASCAL” З ВИКОРИСТАННЯМ КОМП’ЮТЕРНОЇ ГРАФІКИ.
Вивчення мови програмування PASCAL ми починаємо у 8 класі (1 година на тиждень). Не секрет, що це один з найскладніших розділів при вивченні курсу інформатики. Крім цього, якщо підходити стандартно до вивчення програмування, інтерес до нього у учнів доволі низький. Змінити цю ситуацію дозволяє використання графіки при вивченні мови програмування. Доречи, ця тема вже піднімалась у статті Євгена Мотурнак „Розробка уроків з теми: „Програмування комп’ютерної графіки. Візуальне моделювання”, №3 за 2006 рік.
Мною для восьмого класу розроблено одинадцять практичних робіт (використовується програмне середовище Borland Pascal 7.0). В практичній роботі №1 учні вперше знайомляться з середовищем програмування, тому графіка не використовується і текст першої роботи я не приводжу. Починаємо використання графіки вже при вивченні лінійних алгоритмів (практична робота №2). У цьому випадку учні швидше звикають до редактору мови програмування; отримують навики набору тексту програми, редагування, виправлення помилок, запуску програм... А найголовніше – вони наочно бачать результати своєї роботи, у учнів з’являється бажання намалювати свій малюнок.
Перед виконанням практичних робіт 2-4 розглядається використання графічних процедур та функцій для роботи з графічним режимом, установки кольору, стилю зображення, малювання геометричних фігур, виводу тексту, копіювання області екрану. Наведу приклади 2 та 3 робіт:
ПРАКТИЧНА РОБОТА №2
ТЕМА: ЛІНІЙНІ АЛГОРИТМИ. ГРАФІЧНІ ПРОЦЕДУРИ ТА ФУНКЦІЇ МОВИ PASCAL.
МЕТА: ЗНАЙОМСТВО З ЛІНІЙНИМИ АЛГОРИТМАМИ, ГРАФІЧНИМИ ПРОЦЕДУРАМИ ТА ФУНКЦІЯМИ МОВИ PASCAL, ВМІННЯ НАБИРАТИ ТЕКСТ ПРОГРАМИ, ЗАПУСКАТИ ПРОГРАМУ НА ВИКОНАННЯ, РЕДАГУВАТИ ТЕКСТ ПРОГРАМИ.
ХІД РОБОТИ:
Задача. Намалювати букву N в графічному режимі (червона буква на синьому фоні). Program ex2; Uses Graph; Var Gd, Gm : Integer; x1,x2,y1,y2 : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); {шлях до BGI драйверів} x1:=40;x2:=60; y1:=30;y2:=70; SetColor(4); SetBkColor(1); CliarDevice; line(x1,y1,x1,y2);line(x1,y1,x2,y2);line(x2,y1,x2,y2); ReadLn; CloseGraph; End. |
ПРАКТИЧНА РОБОТА №3
ТЕМА: ГРАФІЧНІ ПРОЦЕДУРИ ТА ФУНКЦІЇ МОВИ PASCAL.
МЕТА: ЗНАЙОМСТВО З ГРАФІЧНИМИ ПРОЦЕДУРАМИ ТА ФУНКЦІЯМИ МОВИ PASCAL, ВМІННЯ МАЛЮВАТИ ЗВИЧАЙНІ ФІГУРИ.
ХІД РОБОТИ:
Задача. Намалювати звичайні фігури різними кольорами та різними стилями. Program ex3; Uses Graph; Var Gd, Gm : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); SetColor(4); SetBkColor(1); ClearDevice; {трикутник малюється за допомогою процедури Line} line(75,20,140,130);line(140,130,10,130);line(10,130,75,20); { трикутник малюється за допомогою процедури LineTo крапковим стилем} SetLineStyle(1,1,3); MoveTo(225,20);lineTo(290,130);lineTo(160,130);lineTo(225,20); {коло} Circle(525,75,60); {замальований еліпс} SetFillStyle(2,3); FillEllipse(525,225,30,60); {прямокутник} SetColor(14); Rectangle(10,310,140,450); {замальований прямокутник} SetFillStyle(1,7); Bar(160,310,200,450); ReadLn; {замальовування трикутника} SetFillStyle(1,10); FloodFill(75,55,4); Readln; CloseGraph; End. |
В практичній роботі №4 більше уваги приділяється виводу тексту на екран та копіюванню області екрану. По закінченню цих робіт разом з учнями виділяємо шаблон для роботи з графікою:
Program ex; Uses Graph; Var Gd, Gm : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); {Графічні оператори} ReadLn; CloseGraph; End. |
Для контролю набутих знань та умінь проводиться самостійна практична робота №5, в якій учням пропонується за готовим малюнком (наприклад: дім, дерево, сонце) самостійно написати програму його малювання.
В роботах 6-11 розглядаються різні конструкції мови програмування та їх використання при побудові зображень. Наведу тексти деяких з цих робіт:
ПРАКТИЧНА РОБОТА №6
ТЕМА: УМОВНИЙ ОПЕРАТОР. ВКАЗІВКИ РОЗГАЛУЖЕННЯ.
МЕТА: НАВЧИТИСЯ СКЛАДАТИ АЛГОРИТМИ З РОЗГАЛУЖЕННЯМ.
ХІД РОБОТИ:
Program ex1; Uses Graph; Var Gd, Gm, n : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); SetBkColor(1); ClearDevice; SetColor(4); writeln('TREUGOLNIK--1'); writeln('KVADRAT--2'); write('vvedite chislo '); readln(n); if n=1 then begin line(200,10,350,210); line(350,210,50,210); line(50,210,200,10) end else rectangle(150,10,450,310); readln; End. |
Program ex2; Uses Graph; Var Gd, Gm, n : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); SetBkColor(1);ClearDevice;SetColor(4); writeln('TREUGOLNIK--1'); writeln('KVADRAT--2'); write('vvedite chislo '); readln(n); if n=1 then begin line(200,10,350,210); line(350,210,50,210); line(50,210,200,10) end; if n=2 then rectangle(150,10,450,310); readln; End. |
ПРАКТИЧНА РОБОТА №7
ТЕМА: ВКАЗІВКИ ПОВТОРЕННЯ. ЦИКЛ З ПАРАМЕТРОМ.
МЕТА: НАВЧИТИСЯ СКЛАДАТИ АЛГОРИТМИ ЦИКЛІЧНОЇ СТРУКТУРИ.
ХІД РОБОТИ:
1. Елемент що повторюється – частина забору:
Program ex1; Uses Graph; Var Gd, Gm,i : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); SetBkColor(1);ClearDevice;SetColor(4); for i:=1 to 14 do begin line(i*40,470,i*40,370); line(i*40,370,i*40+20,330); line(i*40+20,330,i*40+40,370); end; line(600,370,600,470); SetTextStyle(4,0,6); OutTextXY(200,70,'Ivanov Ivan'); readln; End. |
2. Елемент що повторюється – замальований сектор:
Program ex1; Uses Graph; Var Gd, Gm,i : Integer; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); SetBkColor(1);ClearDevice;SetColor(4); for i:=1 to 18 do
pieslice(300,220,i*20,i*20+5,150); readln; End. |
В практичних роботах 8 і 9 розглядаються відповідно цикли з передумовою та з постумовою. В роботі №10 розглядаються принципи створення мультиплікації на екрані та пропонується (за зразком) написати програму де весляр пливе у човні.
ПРАКТИЧНА РОБОТА №11
ТЕМА: ВКАЗІВКИ ПОВТОРЕННЯ ТА РОЗГАЛУЖЕННЯ.
МЕТА: НАВЧИТИСЬ СКЛАДАТИ АЛГОРИТМИ ДЛЯ СТВОРЕННЯ МУЛЬТИПЛІКАЦІЇ НА ЕКРАНІ З УПРАВЛІННЯМ ПЕРЕМІЩЕННЯ ОБРАЗУ.
ХІД РОБОТИ:
Uses crt,Graph; Var Gd, Gm,x,y,xmax,ymax,xold,yold : Integer; P1 : Pointer; c:char; Size : Word; Begin Gd:=Detect; InitGraph(Gd, Gm, 'd:\BP\BGI'); Size := ImageSize(0,0, 20,100); SetLineStyle(0,0,3); PieSlice(10,10,0,360,10);FillEllipse(10,40,10,20);line(8,60,0,100);line(12,60,20,100); GetMem(P1, Size); GetImage(0,0, 20, 100, P1^); xmax:=GetMaxX-20; ymax:=GetMaxY-100; x:=0; y:=0; PutImage(x,y, P1^,1); repeat PutImage(x,y, P1^,1); {виводимо зображення} xold:=x;yold:=y; {запам’ятовуємо старі координати} c:=readkey; {зчитуємо значення натиснутої клавіші} case c of {аналізуємо код клавіші} #72: if y>1 then y:=y-1; {зміщення вверх} #77: if x<xmax then x:=x+1; {вправо} #80: if y<ymax then y:=y+1; {вниз} #75: if x>1 then x:=x-1; {вліво} end; PutImage(xold,yold, P1^,1) {стираємо зображення} until c=#27; {до натискання Esc} FreeMem(p1,size); CloseGraph; End. |
Таким чином к завершенню 8 класу учні отримують навик роботи у середовищі програмування, знають основні графічні процедури та функції, вміють користуватися вказівками повторення та розгалуження. Це є хорошою основою для подальшого вивчення мови програмування.