Дополнительные
материалы к занятию по Основам программирования на тему «Процедуры»
1. Задание
по теме «Процедуры» (предоставляется обучающемуся в электронном виде, чтобы он
смог работать с готовым текстом программы)
Посмотрите
внимательно на картинку и представьте, что Вы смотрите на сцену в театре где
нет настоящего дома, забора, дерева и всего остального. Это просто декорации,
составленные из разных элементов.
Давайте,
попробуем систематизировать декорации и в нашем импровизированном театре. Для
этого придадим программе процедурный вид (то есть разобьем ее на маленькие
подпрограммы, так называемые процедуры)
Сядьте правильно! Следите за
своей осанкой!
Приготовимся к работе:
Создайте новый файл в среде
программирования PascalABC/Net.
Воспользуйтесь готовым текстом программы
для данного рисунка: скопировав текст, вставьте его в окно данной среды
программирования. сохраните и запустите файл. Сравните, полученный результат с
рисунком на карточке. Они должны совпадать.
uses crt;
begin
textbackground(2);
clrscr;
{облако}
textcolor(1);
gotoxy(4,1);
write('ooo');
gotoxy(3,2);
write('ooooo');
gotoxy(3,3);
write('oooooo');
gotoxy(4,4);
write('oooo');
gotoxy(5,5);
write('oo');
{солнце}
textcolor(14);
gotoxy(25,1);
write('\|/');
gotoxy(25,2);
write('-O-');
gotoxy(25,3);
write('/|\');
{забор}
textcolor(4);
gotoxy(1,15);
write('xxxxxxxxxxxxxxxxxxxxxxxxxxx');
gotoxy(2,16);
write('x x x x x x x ');
gotoxy(2,17);
write('x x x x x x ');
gotoxy(2,18);
write('x x x x ');
gotoxy(2,19);
write('x x x x ');
gotoxy(2,20);
write('x x x x x x x ');
{дорога}
textcolor(0);
gotoxy(1,21);
write('xxxxxxxxxxxxxxxxxxxxxxxxxxx');
{дом}
textcolor(4);
gotoxy(6,10);
write('x');
gotoxy(5,11);
write('x x');
gotoxy(4,12);
write('x x');
gotoxy(3,13);
write('x x');
textcolor(15);
gotoxy(3,14);
write('o=====o');
gotoxy(3,15);
write('o o');
gotoxy(3,16);
write('o ooo o');
gotoxy(3,17);
write('o o o o');
gotoxy(3,18);
write('o ooo o');
gotoxy(3,19);
write('o o');
gotoxy(3,20);
write('o o');
textcolor(0);
gotoxy(8,9);
write('п');
gotoxy(8,10);
write('п');
gotoxy(8,11);
write('п');
{машина}
textcolor(13);
gotoxy(21,17);
write('xxxx');
gotoxy(17,18);
write('xxxx xx');
gotoxy(17,19);
write('xxxxxxxxxx');
textcolor(0);
gotoxy(18,20);
write('o');
gotoxy(24,20);
write('o');
{дерево}
textcolor(5);
gotoxy(20,8);
write('oo');
gotoxy(19,9);
write('oooo');
gotoxy(18,10);
write('oooooo');
gotoxy(18,11);
write('oooooo');
gotoxy(19,12);
write('oooo');
textcolor(12);
gotoxy(20,13);
write('xx');
gotoxy(20,14);
write('xx');
readkey;
end.
Сохраните
файл (Файл – Сохранить как (в имени файла указываем дату - класс, литер
класса - номер задания, например, 280915-5a-1.pas));
Запустите
файл (SHIFT+F9).
Сравните, полученный результат с рисунком на карточке. Они должны совпадать.
1)
Преобразуем текст файла так, чтобы в нем появились следующие
блоки:
uses crt;
{===облако===}
Procedure
oblako:
begin
{тело
процедуры oblako, то есть это все строки, необходимые для
вывода облака на экран}
end;
{===солнце===}
Procedure solnce:
begin
{тело
процедуры solnce, - все строки, необходимые для вывода солнца
на экран}
end;
{===забор===}
Procedure
zabor:
begin
{тело
процедуры zabor }
end;
{===дорога===}
Procedure
doroga:
begin
{тело
процедуры doroga }
end;
{===дом===}
Procedure
dom:
begin
{тело
процедуры dom}
end;
{===машина===}
Procedure
mashina:
begin
{тело
процедуры mashina }
end;
{===дерево===}
Procedure
derevo:
begin
{тело
процедуры derevo }
end;
{===тело
основной программы===}
begin
textbackground(2);
clrscr;
derevo:
mashina;
dom;
doroga;
zabor;
solnce;
zabor;
readkey;
end.
ВНИМАНИЕ: Получилась запись программы
по процедурам, причем каждая процедура представляет собой маленькую
подпрограмму, которая имеет имя. По имени можно вызвать любую из созданных
процедур из тела основной программы. Будем считать, что полученный комплект процедур
- это комплект декораций в нашем театре.
Удалив имя процедуры из тела основной программы, мы уберем команду
вывода этой процедуры на экран, а написав ее – просим компьютер вывести
процедуру на экран тогда, когда это будет нужно. Делать это можно
неоднократно, только обязательно нужно помнить, что процедуры данного вида
будут выполнять вывод изображение дома, дерева или машины по заданному шаблону,
строго одной и той же формы, в одни и те же координаты, одним и тем же цветом,
так, как это зафиксировано внутри каждой из процедур в данной программе.
Иными словами, декорации будут жестко закреплены в определенном
месте сцены. И цвет их меняться не может. Может меняться только количество их
разновидностей на сцене.
Сохраните
файл: CTRL+S - Запустите: SHIFT+F9
- Сравните, полученный результат с рисунком на карточке. Они должны
совпадать.
Результат
работы предъявите учителю
2) Разминка
Выполнить нужно разминку для рук, чтоб не
испытывать боли и мук,
Также, зарядку для глаз не забудем! Ими
вращать мы усиленно будем,
Смотрим и вдаль и на кончик у носа, в стороны,
вверх, ну и вниз – без вопросов
Спину ссутулим… и… снова расправим, сядем
красиво, и… вновь продолжаем
3)
Продолжите программу, создайте в ней процедуру, изображающую
человечка (актера театра), для этого необходимо поставить курсор сразу после первой
строки программы: (uses crt;),
Написать
имя процедуры, например, boy
procedure boy;
begin
textcolor(15);
gotoxy(34,18);
write('o');
gotoxy(33,19);
write('/0\');
gotoxy(34,20);
write('П');
end;
в
теле основной программы вписываем после всех имен процедур имя процедуры boy;
{===тело
основной программы===}
begin
textbackground(2);
clrscr;
derevo:
mashina;
dom;
doroga;
zabor;
solnce;
zabor;
boy;
readkey;
end.
Сохраните
программу – Запустите – Проверьте результат (При необходимости исправьте
ошибки).
Результат
работы предъявите учителю
uses crt;
{===актер===}
procedure
boy;
begin
textcolor(15);
gotoxy(34,18);
write('o');
gotoxy(33,19);
write('/0\');
gotoxy(34,20);
write('П');
end;
{===облако===}
Procedure oblako:
begin
textcolor(1);
gotoxy(4,1);
write('ooo');
gotoxy(3,2);
write('ooooo');
gotoxy(3,3);
write('oooooo');
gotoxy(4,4);
write('oooo');
gotoxy(5,5);
write('oo');
end;
{===солнце===}
Procedure solnce:
begin
textcolor(14);
gotoxy(25,1);
write('\|/');
gotoxy(25,2);
write('-O-');
gotoxy(25,3);
write('/|\');
end;
{===забор===}
Procedure zabor:
begin
textcolor(4);
gotoxy(1,15);
write('xxxxxxxxxxxxxxxxxxxxxxxxxxx');
gotoxy(2,16);
write('x x
x x x x x ');
gotoxy(2,17);
write('x x
x x x x ');
gotoxy(2,18);
write('x x
x x ');
gotoxy(2,19);
write('x x
x x ');
gotoxy(2,20);
write('x x
x x x x x ');
end;
{===дорога===}
Procedure doroga:
begin
textcolor(0);
gotoxy(1,21);
write('xxxxxxxxxxxxxxxxxxxxxxxxxxx');
end;
{===дом===}
Procedure dom:
begin
textcolor(4);
gotoxy(6,10);
write('x');
gotoxy(5,11);
write('x x');
gotoxy(4,12);
write('x x');
gotoxy(3,13);
write('x x');
textcolor(15);
gotoxy(3,14);
write('o=====o');
gotoxy(3,15);
write('o o');
gotoxy(3,16);
write('o ooo o');
gotoxy(3,17);
write('o o o o');
gotoxy(3,18);
write('o ooo o');
gotoxy(3,19);
write('o o');
gotoxy(3,20);
write('o o');
textcolor(0);
gotoxy(8,9);
write('п');
gotoxy(8,10);
write('п');
gotoxy(8,11);
write('п');
end;
{===машина===}
Procedure mashina:
begin
textcolor(13);
gotoxy(21,17);
write('xxxx');
gotoxy(17,18);
write('xxxx
xx');
gotoxy(17,19);
write('xxxxxxxxxx');
textcolor(0);
gotoxy(18,20);
write('o');
gotoxy(24,20);
write('o');
end;
{===дерево===}
Procedure derevo:
begin
textcolor(5);
gotoxy(20,8);
write('oo');
gotoxy(19,9);
write('oooo');
gotoxy(18,10);
write('oooooo');
gotoxy(18,11);
write('oooooo');
gotoxy(19,12);
write('oooo');
textcolor(12);
gotoxy(20,13);
write('xx');
gotoxy(20,14);
write('xx');
end;
{===тело
основной программы===}
begin
textbackground(2);
clrscr;
derevo:
mashina;
dom;
doroga;
zabor;
solnce;
zabor;
boy;
readkey;
end.
Итак,
подведем итоги!!!
Сегодня
нам удалось
1)
навести порядок в импровизированном театре, разложив все декорации по полочкам
(процедурам)
2)
создать актера и вывести его на сцену.
На
следующем занятии мы превратим некоторые из наших процедур в гибкие, чтобы
выстроить улицу разноцветных домов, посадить больше деревьев, заставить сиять
солнышко и позволить актеру и машине перемещаться по сцене.
Чтобы
учитель мог оценить насколько полезна была сегодняшняя тема, как Вы работали на
занятии, какие возникали проблемы, смогли ли мы вместе их решить и насколько
сложно было работать, заполните пожалуйста анкету, пройдя по ссылке: https://docs.google.com/forms/d/1Rbbmt2ZqW5PfXfv7UWZuEeCwEIjTl3-Za-uZp2Ns-VY/viewform
СПАСИБО
за активность на уроке J
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.