Курс"Занимательное программирование".
элективный курс по информатике и икт (7 класс) на тему
Курс "Занимательное программирование", состоящий из трех занятий, рассчитан на обучающихся7-8 классов. Основная цель курса в том, чтобы мотивировать интерес ребят к занятиям программированием. Занятия курса построены таким образом, чтобы познакомить их с основными структурами языка Pascal с использованием графики этого языка. Знакомтсво начинается с рисования одной звезды, затем в программу вносятся изменения для построения множества звезд и т.д. В конце должно получиться много-много звездочек разного размера и цвета.
Примечание: примеры программ, приведенные в курсе, работают в TP7. Для других компиляторов необходимо адаптировать часть программы, активируюущую графический экран языка.
Данный курс может быть использован в курсе изучения школьного предмета "Информатика и ИКТ", для внеурочных занятий и для самостоятельного изучения языка программирования Pascal.
Скачать:
Вложение | Размер |
---|---|
zanimatelnoe_programmirovanie_na_paskale.doc | 95 КБ |
Предварительный просмотр:
Курс «Занимательное программирование»
Цель курса: показать учащимся основы графического программирования, возможности программирования на языке Pascal, создать программу «Звездное небо».
Содержание курса:
№ заня-тия | Тема занятия | Содержание занятия |
Знакомство с основной структурой программы на языке Pascal и с графическим экраном. Проектирование звезды. | Познакомить учащихся с основной структурой программы на языке Pascal. Включение графики в программе. Особенности графического экрана в программировании. Основные операторы графики языка Pascal. Расчет координат звезды. Написать программу на языке Pascal, рисующую звезду. | |
Программа рисования разноцветных звезд. | Познакомить учащихся с основными алгоритмическими структурами, с функцией случайного числа в программе. Изменить программу так, чтобы она рисовала множество звезд. Познакомить учащихся с операторами языка Pascal, которые позволяют закрашивать звезды в разные цвета, со способами указания цвета в программе. Изменить программу так, чтобы она рисовала множество разноцветных звезд. | |
Самостоятельная работа. | Самостоятельно воспроизвести заданный орнамент. |
ЗАНЯТИЕ 1.
Всем известно, что такое алгоритм. Многие знают, программа – это алгоритм, записанный на каком-либо языке программирования.
На языке программирования Pascal основная структура программы выглядит следующим образом:
Program …; {название программы}
Var …; {cписок переменных и определение их типа}
Begin
…
… {операторы языка Pascal }
…
End. {конец программы}
Для включения графического режима в программу необходимо добавить:
Uses graph, crt;.
Раздел Uses позволяет использовать библиотеки графики. Кроме этого понадобятся переменные err, gd и gm целочисленного типа. Организация самого обращения к графике выглядит следующим образом:
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
Тогда программа будет выглядеть так:
Program Zvezdy;
Uses graph, crt;.
Var err,gd,gm: integer;
Begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
…
…
End.
При создании изображения необходимо учитывать, что положительные координатные оси графического окна в программировании несколько отличаются от тех, к которым мы привыкли в математике. Площадь окна можно рассматривать как двумерный массив светящихся точек (пикселов). Координаты точек принимают целочисленные значения и отсчитываются от левого верхнего угла окна. Ось ординат направлена вниз. Соответственно, сам левый верхний угол имеет координаты (0,0). Координаты соседних с ним точек, очевидно, будут (0, 1), (1, 0) и (1, 1). Размеры окна по-умолчанию составляют 640 на 480 точек. Изначально все пикселы окна имеют белый цвет.
Линии, окружности, дуги и пр.
Перечислим несколько процедур для рисования простейших графических объектов – так называемых графических примитивов.
1. Рисование линии
Line(X1, Y1, X2, Y2); |
Здесь (X1, Y1) – координаты начала, (X2, Y2) – координаты конца. Линия вычерчивается так называемым текущим цветом.
2. Установка текущего цвета
SetColor(C: Word); |
Здесь C – константа или число, задающая цвет.
3. Рисование окружности
Circle(X, Y: integer; R: Word); |
Здесь (X, Y) – координаты центра, R – радиус окружности. Окружность, как и линия, рисуется текущим цветом.
4. Очистка экрана
ClearDevice; |
Экранный указатель
Экранный указатель это аналог курсора в текстовом режиме, он указывает положение точки, которая считается «текущей». В отличие от мигающего курсора экранный указатель невидим. После инициализации графического режима экранный указатель располагается в точке с координатами (0, 0). Переместить его в произвольную точку на экране можно с помощью процедуры MoveTo. Ее заголовок:
MoveTo(X, Y); |
Координаты экранного указателя используются многими графическими процедурами. Например, процедура LineTo, имеющая заголовок
LineTo(X, Y); |
рисует линию от экранного указателя до точки с координатами (X, Y). При этом экранный указатель смещается в точку (X, Y), что делает эту процедуру удобной для рисования ломаных линий, когда следующий отрезок начинается из конца предыдущего.
Расчет координат звезды.
Начальную точку обозначим переменными x, y . Координаты остальных точек будем рассчитывать относительно их. Для этого на простом листе бумаги в клеточку нарисуем оси координат (напоминаю, что начало координатной плоскости в левом верхнем углу). Масштаб: 1 клетка = 25 пикселям.
На листе произвольно рисуем звезду. Например:
Примем за начальную точку x, y верхнюю точку звезды. Тогда остальные координаты будут выглядеть так:
x+50, y+90
x+115, y+90
x+75, y+157
x+100, y+350
x, y+255
x-100, y+350
x-75, y+157
x-115, y+90
x-50, y+90
Теперь программа рисования звезды будет выглядеть так (не надо забывать добавлять переменные в раздел описания переменных):
Program Zvezdy;
Uses graph, crt;.
Var err,gd,gm,x,y: integer;
Begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
MoveTo(x,y);
LineTo(x+50, y+90);
LineTo(x+115, y+90);
LineTo(x+75, y+157);
LineTo(x+100, y+350);
LineTo(x, y+255);
LineTo(x-100, y+350);
LineTo(x-75, y+157);
LineTo(x-115, y+90);
LineTo(x-50, y+90);
LineTo(x, y);
End.
Примечание: в программе не указаны первоначальные значения x и y. Их можно задать двумя способами: первый – в команде MoveTo указать конкретные данные, второй – задать конкретные значения этих переменных с помощью команды ввода.
ЗАНЯТИЕ 2.
Мы нарисовали одну звезду. Но на небе их множество.
Для того, чтобы нарисовать много таких звезд, как наша, необходимо воспользоваться циклом.
Цикл – это многократное повторение одних и тех же действий.
В языке Pascal есть три цикла.
Для того чтобы нарисовать определенное количество звезд воспользуемся циклом Repeat. В программе он записывается следующим образом:
Repeat
…
Until <усл>;
Добавим этот оператор в программу. Получим:
Program Zvezdy;
Uses graph, crt;.
Var err,gd,gm,x,y,i: integer;
Begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
x:=225; y:=50;
Repeat
MoveTo(x,y);
LineTo(x+50, y+90);
LineTo(x+115, y+90);
LineTo(x+75, y+157);
LineTo(x+100, y+350);
LineTo(x, y+255);
LineTo(x-100, y+350);
LineTo(x-75, y+157);
LineTo(x-115, y+90);
LineTo(x-50, y+90);
LineTo(x, y);
i:=i+1;
Until i>100;
End.
Примечание: здесь переменная i играет роль счетчика.
Попробуйте выполнить эту программу на компьютере. Кажется, что на экране осталась одна звезда, но на самом деле их 100, но они нарисованы одна на другой.
Подставьте в цикл оператор x:=x+5 и посмотрите что изменится.
Program Zvezdy;
Uses graph, crt;.
Var err,gd,gm,x,y,i: integer;
Begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
x:=225; y:=50;
Repeat
MoveTo(x,y);
LineTo(x+50, y+90);
LineTo(x+115, y+90);
LineTo(x+75, y+157);
LineTo(x+100, y+350);
LineTo(x, y+255);
LineTo(x-100, y+350);
LineTo(x-75, y+157);
LineTo(x-115, y+90);
LineTo(x-50, y+90);
LineTo(x, y);
x:=x+5;
i:=i+1;
Until i>100;
End.
Функция случайного числа.
На небе звезды «разбросаны» в «беспорядке». Попробуем изобразить нечто подобное, а для этого воспользуемся функцией случайного числа.
На языке Pascal она выглядит так:
Randomize:
Вставим эту функцию в программу и будем задавать начальные координаты с её помощью (напомню, что размер графического окна 640480 точек). Заодно уменьшим координаты на 10. Получим:
Program Zvezdy;
Uses graph, crt;.
Var err,gd,gm,x,y,i: integer;
Begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
randomize;
x:=random(600); y:=random(450);
Repeat
MoveTo(x,y);
LineTo(x+5, y+9);
LineTo(x+11, y+9);
LineTo(x+7, y+15);
LineTo(x+10, y+35);
LineTo(x, y+25);
LineTo(x-10, y+35);
LineTo(x-7, y+15);
LineTo(x-11, y+9);
LineTo(x-5, y+9);
LineTo(x, y);
i:=i+1;
Until i>100;
End.
Попробуйте выполнить эту программу на компьютере и посмотрите, что получилось.
Если посмотреть на звезды в телескоп, видно, что они светятся разными цветами.
Сделаем наши звезды разноцветными. Для этого воспользуемся операторами цвета языка Pascal.
Оператор SetColor(C)устанавливает текущий цвет, которым будет рисоваться звезда. Здесь C – константа или число, задающая цвет.
Чтобы закрасить всю звезду необходимо воспользоваться оператором:
Чтобы все звезды были разными, их цвет будем задавать тоже через функцию случайного числа.
Добавим все это в программу и получим:
Program Zvezdy;
Uses graph, crt;.
Var err,gd,gm,x,y,i: integer;
Begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err:=graphresult;
if err<>grok then begin writeln('Ошибка открытия графики'); halt(1); end;
randomize;
x:=random(600); y:=random(450);
Repeat
Zv:=random(256);
SetColor (zv);
MoveTo(x,y);
LineTo(x+5, y+9);
LineTo(x+11, y+9);
LineTo(x+7, y+15);
LineTo(x+10, y+35);
LineTo(x, y+25);
LineTo(x-10, y+35);
LineTo(x-7, y+15);
LineTo(x-11, y+9);
LineTo(x-5, y+9);
LineTo(x, y);
i:=i+1;
Until i>100;
End.
Попробуйте выполнить эту программу на компьютере и посмотрите, что получилось.
Поздравляю! Это ваше звездное небо.
ЗАНЯТИЕ 3.
Самостоятельная работа: воспроизведите орнаменты.
По теме: методические разработки, презентации и конспекты
Элективный курс « Занимательное программирование на языке Pascal»
Курс включает в себя практическое освоение языка программирования, знакомство учащихся с ролью программного обеспечения и его видами; нацелен на формирование целостного представления об организа...
Вводный курс в программирование 11 класс 2012-2013
Программирование на языке Паскаль...
Элективный курс "Основы программирования на языке Pascal" 10 класс
Данный элективный курс расчитан на изучение в 10 классе. Предполагается расширение базового курса информатики за счет введения электива, который расширяет программу. Элективный курс направлен на изуче...
Программа курса «Основы программирования»
Составленная мною, программа рассчитана на 5-10 классы является сквозной программой изучения программирования. Программа содержит тематическое планирование....
Элективный курс "Занимательное программирование"
Рабочая программа элективного курса в 7 классе "Занимательное программирование"....
Рабочая программа внеурочной деятельности по информатики "Занимательное программирование"
Данная программа разработана для организации внеурочной деятельности учащихся 6 классов.Курс построен таким образом, чтобы помочь учащимся заинтересоваться программированием вообще и найти ответы на в...
Учебная практика по информатике 7 класс "Занимательное программирование"
Данная практика расчитана на учащихся 7 класса для привлечения интереса к языку программированию....