Конспект на тему Процедуры

Раздел Информатика
Класс -
Тип Конспекты
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Дата _________

10 кл.

Тема. Процедуры.

Цели. Познакомить учащихся с процедурами, особенностями работы с ними;

развивать умение работать процедурами;

воспитывать информационную культуру школьников.

Оборудование: операционная система Windows, исполнитель Паркетчик


План урока.

  1. Организационное начало. (1,5 мин.)

    1. Приветствие.

    2. Проверка присутствующих.

2. Сообщение темы урока. (0,5 мин.)

3. Объяснение нового материала. (25 мин.)

3.1. Необходимость использования подпрограмм.

3.2. Принцип работы подпрограмм.

3.3. Способ записи подпрограмм.

4 Закрепление. (15 мин.)

5. Подведение итогов. (1 мин.)

6. Домашнее задание. (1 мин.)

Ход урока.

1. Организационное начало. (1,5 мин.)

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

3. Вспомним наши первые занятия, посвященные Бездумным Исполнителям. На них мы узнали, что не имеет смысла говорить о БИ, не определив его Систему Команд и операционную среду. Система Команд конкретного БИ называется языком БИ. Возникает вопрос: можно ли обогатить этот язык новыми словами, и если да, то каким образом?

Одна и та же задача - сходить в булочную и купить хлеба - приводит к совершенно различным алгоритмам. Для вас достаточно написать:

Сходить в булочную за хлебом;

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

Иными словами, несколько команд для БИ могут быть иногда "свернуты" в одну, более емкую. При этом в Системе Команд БИ (в нашем случае у младшего братика) появляется новая команда. Однако так бывает не всегда. Например, команда

Приготовить торт "Птичье молоко";

для большинства хозяек требует расшифровки, даже если команда выполняется и не в первый раз. Более емкая команда здесь не встраивается в Систему Команд БИ, а просто вызывает ссылку на подробную расшифровку в книге кулинарных рецептов. Расшифровка, разумеется, должна содержать только команды из прежней Системы Команд БИ.

Таким образом, существует два пути расширения Системы Команд БИ.

Первый путь, "путь младшего брата":

Программа, содержащая команды из старой Системы Команд, объявляется новой командой и намертво встраивается в уже новую Систему Команд.

Типичный пример такого пути - обучение езде на велосипеде. Поначалу вам подробно объясняют, как сидеть в седле, а самое главное - убеждают поворачивать руль в сторону предполагаемого падения. А затем вы просто забываете об этом: ваши руки делают все уже чисто автоматически.

Второй путь, "путь кулинарной книги". В этом случае Система Команд на самом деле не меняется:

Создается как бы новая команда, которая является просто ссылкой на уже существующую программу, записанную в исходной Системе Команд БИ.

Первый путь называется определением нового оператора.

Второй - созданием вспомогательного алгоритма.

Вспомогательный алгоритм, написанный с использованием исключительно Системы Команд конкретного БИ, называется подпрограммой.

Может возникнуть подозрение, что вспомогательный алгоритм нужен только потому, что человек не в силах запомнить наизусть книгу кулинарных рецептов, разнообразные пособия "Сделай сам" и тому подобное. Однако это не всегда так.

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

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

Облегчится не только написание, но и чтение программы. И мы с вами в этом очень скоро убедимся.

Но сначала ненадолго вернемся к нашим тушеным баранам.

Встретив в рецепте фразу "Приготовить 200 граммов белого соуса", хозяйка, как истинная БИ, бросится его готовить, быть может, даже забыв в предпраздничной суете, зачем этот соус нужен. Ничего страшного не случится. Главное - чтобы она помнила количество: 200 граммов. В лучшем случае она даже может перепоручить это дело кому-нибудь другому, написав на бумажке заветное число: "200 г".

Мы тоже будем считать, что БИ напрочь забывает все из основной программы, приступая к выполнению подпрограммы.

Единственное, что следует помнить, - это количество белого соуса, которое надо приготовить. Иначе говоря, в подпрограмме должна быть заранее подготовлена коробочка для необходимой ей информации. Дело БИ - эту коробочку заполнить, прежде чем по уши уходить в подпрограмму. БИ уподобляется при этом рассеянному профессору, который сам себе писал письма с напоминанием, что требуется сделать. Ну что ж, хоть и бездумный, а все же чем-то смахивает на профессора...

Но вот белый соус приготовлен. Пора вспомнить, зачем же это делалось, и продолжить приготовление праздничного ужина. Как же объяснить БИ, что подпрограмма закончилась и надо возвращаться в программу?

И здесь нам самое время вспомнить о фигурных скобках. Они окаймляют несколько операторов, например, в операторе Делать пока (и за одно это достойны называться операторными), и показывают, что все операторы в теле цикла могут рассматриваться как один большой оператор, состоящий из нескольких операторов.

Точно так же и операторы подпрограммы заключаются в такие же скобки, объединяющие их в единое целое. А называется эта совокупность операторов подпрограммы телом подпрограммы.

При написании программы для БИ подпрограмма в отличие от оператора цикла выносится за пределы главной программы. Этим, в частности, и объясняются не совсем вам понятные фигурные скобки, окаймляющие тело самой главной программы.

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

Задача (выращиваем лютики-цветочки)

На поле произвольных размеров достаточно далеко друг от друга и от стен располагаются зеленые плитки. Требуется из каждой зеленой плитки вырастить цветочек так, как это показано на рис. 19.

Конспект на тему Процедуры

Рис. 19

Конечно, вы уже достаточно опытные "паркет-программисты", чтобы с ходу понять, как решать такую задачу. Напишем проект решения:

Обежать все поле;
В процессе обегания
Если (з) то {Нарисовать цветочек;}

На следующем этапе нам придется переводить все операторы проекта в команды из СК Паркетчика. И, как вы уже поняли, не самая сложная, но самая кропотливая часть работы - это рисование самого цветочка.

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

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

Программа {

Делать пока (НЕ сверху стена)
{

Шаг вверх; (* Первую строку можно не обегать *)

(* Обегание строки, на которой стоишь *)
Делать пока (НЕ справа стена)
{ Шаг вправо;

Если (З) то {Нарисовать цветочек}

}
(* Конец обегания строки, на которой стоишь *)
Вернуться на ту плитку, с которой начинал;

}

}

Вместо оператора

Вернуться на ту плитку, с которой начинал;

надо будет вставить простенький цикл, а вот оператор Нарисовать цветочек можно оставить практически в том же виде, в каком он и есть.

Естественно, Паркетчику как-то надо сообщить о том, что описание нового оператора необходимо найти в подпрограмме с соответствующим именем:

Программа {
Делать пока (НЕ сверху стена)
{ Шаг вверх; (* первую строку можно не обегать *)

(* Обегание строки, на которой стоишь; *)
Делать пока (НЕ справа стена)
{ Шаг вправо;

Если (З) то {Вызвать Цветочек;}

} (* конец обегания строки, на которой стоишь *)
(* Вернуться на ту плитку, с которой начинал*)
Делать пока (НЕ слева стена)
{ Шаг влево;
}

}

}

Подпрограмма Цветочек

{
...........
}

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

Работая с Паркетчиком, вы, наверное, неоднократно сталкивались с тем, что он отказывается воспринимать команды, отсутствующие в его СК. Именно для того, чтобы он с ходу не отметал непривычные команды, и существует оператор Вызвать. Он отсылает Паркетчика на поиск подпрограммы, где незнакомый оператор расшифровывается известными ему операторами.

6. Вопросы и задания

1. Напишите подпрограмму Цветочек, нарисовав его, быть может, по собственному вкусу, и запустите получившуюся программу.

2. Для того чтобы не загромождать основную программу второстепенными деталями, организуйте еще две подпрограммы:

СТРОКА (обегание строки, на которой стоишь) и

НАЗАД (вернуться на ту плитку, с которой начинал).

Запустите на выполнение и эту программу. Не правда ли, структура главной программы, да и всего нашего творения, стала не в пример понятнее и нагляднее?

3. Как вы думаете, почему возникли именно такие названия: "вспомогательный алгоритм" и "подпрограмма"?

4. Приведите примеры определений новых операторов и создания вспомогательных алгоритмов для известных вам БИ.

5. а) Ниже приведена программа мытья посуды (чашек, блюдец, ложек) после чаепития:

Программа

{ВызватьМыть (чашки);
Вызвать Мыть (блюдца);
Вызвать Мыть (ложки);
} (* конец программы *)

Составьте подпрограмму Мыть(коробочка:посуда), если исполнитель понимает такие команды:

  • открыть кран;

  • закрыть кран;

  • взять посуду (по этой команде исполнитель берет со стола 1 предмет посуды);

  • вымыть посуду под краном (по этой команде исполнитель моет имеющийся у него предмет);

  • положить посуду в сушку (исполнитель кладет имеющийся у него предмет в сушку).

Совет: чтобы исполнитель наверняка перемыл всю посуду, вспомните о циклической форме организации действий.

б) Составьте программу мытья посуды после обеда, использующую подпрограмму Мыть(коробочка: посуда).

в) Программы, составленные в пунктах а и б, вполне годятся для домашнего робота БИ-001, о котором мы как-то упоминали. Составьте еще две-три программы для БИ-001, в которых использовалась бы циклическая форма организации действий и/или подпрограммы.

5. Подведем итоги

Система команд конкретного БИ называется языком БИ.

Этот язык можно пополнить новыми словами двумя способами.

Первый способ: определить новый оператор, заставив БИ на веки вечные его запомнить.

Второй способ: создать подпрограмму, которая сообщается БИ вместе с основной программой.

В жизни встречаются различные БИ. Некоторые допускают оба пути пополнения своего языка, некоторые - только первый, некоторые - только второй. Автоматическая стиральная машина вообще не допускает изменения своего языка.

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

Переход к исполнению подпрограммы осуществляется командой Вызвать подпрограмму (по ее имени). По окончании подпрограммы происходит возврат в главную программу или подпрограмму, откуда произошел переход в выполненную подпрограмму.

Вся последовательность команд, из которой состоит программа или подпрограмма, заключается в операторные скобки и называется телом программы (подпрограммы).

6. Выучить записи в тетради.

5

© 2010-2022