Курс"Занимательное программирование".
элективный курс по информатике и икт (7 класс) на тему

Курс "Занимательное программирование", состоящий из трех занятий, рассчитан на обучающихся7-8 классов. Основная цель курса в том, чтобы мотивировать интерес ребят к занятиям программированием. Занятия курса построены таким образом, чтобы познакомить их с основными структурами языка Pascal с использованием графики этого языка. Знакомтсво начинается с рисования одной звезды, затем в программу вносятся изменения для построения множества звезд и т.д. В конце должно получиться много-много звездочек разного размера и цвета.

Примечание: примеры программ, приведенные в курсе, работают в TP7. Для других компиляторов необходимо адаптировать часть программы, активируюущую графический экран языка.

Данный курс может быть использован в курсе изучения школьного предмета "Информатика и ИКТ", для внеурочных занятий и для самостоятельного изучения языка программирования Pascal.

Скачать:

ВложениеРазмер
Microsoft Office document icon zanimatelnoe_programmirovanie_na_paskale.doc95 КБ

Предварительный просмотр:

Курс «Занимательное программирование»

Цель курса: показать учащимся основы графического программирования, возможности программирования на языке 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.

Самостоятельная работа: воспроизведите орнаменты.

http://tvd-home.ru/images/prog/p13_t_1.gif


По теме: методические разработки, презентации и конспекты

Элективный курс « Занимательное программирование на языке Pascal»

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

Вводный курс в программирование 11 класс 2012-2013

Программирование на языке Паскаль...

Элективный курс "Основы программирования на языке Pascal" 10 класс

Данный элективный курс расчитан на изучение в 10 классе. Предполагается расширение базового курса информатики за счет введения электива, который расширяет программу. Элективный курс направлен на изуче...

Элективный курс "Занимательное программирование"

Рабочая программа элективного курса в 7 классе "Занимательное программирование"....

Рабочая программа внеурочной деятельности по информатики "Занимательное программирование"

Данная программа разработана для организации внеурочной деятельности учащихся 6 классов.Курс построен таким образом, чтобы помочь учащимся заинтересоваться программированием вообще и найти ответы на в...

Учебная практика по информатике 7 класс "Занимательное программирование"

Данная практика расчитана на учащихся 7 класса для привлечения интереса к языку программированию....

Рабочая программа элективного курса "Основы программирования" (объектно-ориентированное программирование)

Представлена рабочая программа на элективный курс "Основы программирования" (объектно-ориентированное программирование) на 2019-2020 г....