|
|
(3 промежуточные версии не показаны) |
Строка 1: |
Строка 1: |
| + | <metakeywords>Информатика, класc, урок, на тему, 9 класc, Вспомогательные алгоритмы, подпрограммы, программа, программирования</metakeywords> |
| + | |
| '''[[Гипермаркет знаний - первый в мире!|Гипермаркет знаний]]>>[[Информатика|Информатика]]>>[[Информатика 9 класс|Информатика 9 класс]]>>Информатика: Вспомогательные алгоритмы и подпрограммы''' | | '''[[Гипермаркет знаний - первый в мире!|Гипермаркет знаний]]>>[[Информатика|Информатика]]>>[[Информатика 9 класс|Информатика 9 класс]]>>Информатика: Вспомогательные алгоритмы и подпрограммы''' |
| | | |
- | <br> | + | <br> <br> |
| | | |
- | <metakeywords>Информатика, класc, урок, на тему, 9 класc, Вспомогательные алгоритмы и подпрограммы.</metakeywords>ВСПОМОГАТЕЛЬНЫЕ АЛГОРИТМЫ И ПОДПРОГРАММЫ
| + | '''§ 29. Вспомогательные алгоритмы и подпрограммы ''' |
| | | |
- | <br>
| |
- |
| |
- | <u>§ 29. Вспомогательные алгоритмы и подпрограммы </u>
| |
| | | |
| Основные темы параграфа: | | Основные темы параграфа: |
| | | |
- | ♦ что такое вспомогательный алгоритм;<br>♦ обращение к вспомогательному алгоритму (процедуре);<br>♦ описание вспомогательного алгоритма (процедуры);<br>♦ метод последовательной детализации;<br>♦ сборочный метод. | + | ♦ что такое вспомогательный '''[[Алгоритм — модель деятельности исполнителя алгоритмов|алгоритм]]''';<br>♦ обращение к вспомогательному алгоритму (процедуре);<br>♦ описание вспомогательного алгоритма (процедуры);<br>♦ метод последовательной детализации;<br>♦ сборочный метод. |
| + | |
| + | |
| | | |
- | ''Что такое вспомогательный алгоритм'' | + | '''Что такое вспомогательный алгоритм''' |
| | | |
| А сейчас решим следующую задачу. | | А сейчас решим следующую задачу. |
| | | |
- | Задача 2. Пусть требуется составить программу, по которой ГРИС напишет на экране четырехзначное число 1919 (рис. 5.6). | + | Задача 2. Пусть требуется составить [http://xvatit.com/it/fishki-ot-itshki/ '''программу'''], по которой ГРИС напишет на экране четырехзначное число 1919 (рис. 5.6). |
| | | |
- | [[Image:Informatika 9 168z.jpg]]<br> | + | [[Image:Informatika 9 168z.jpg|360px|Рисование числа 1919]]<br> |
| | | |
- | Конечно, можно поступить так, как в предыдущей задаче, написав одну длинную программу, по которой исполнитель шаг за шагом нарисует эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программу рисования той и другой цифры только один раз? Это действительно можно сделать. | + | Конечно, можно поступить так, как в предыдущей задаче, написав одну длинную программу, по которой исполнитель шаг за шагом нарисует эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав '''[[Что такое программирование|программу]]''' рисования той и другой цифры только один раз? Это действительно можно сделать. |
| | | |
| ''Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно, называется вспомогательным алгоритмом.'' | | ''Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно, называется вспомогательным алгоритмом.'' |
Строка 27: |
Строка 28: |
| Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой. | | Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой. |
| | | |
- | ''Обращение к вспомогательному алгоритму (процедуре)'' | + | |
| + | |
| + | '''Обращение к вспомогательному алгоритму (процедуре)''' |
| | | |
| В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующими: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими: | | В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующими: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими: |
Строка 41: |
Строка 44: |
| Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, т. е. общий вид, следующий: | | Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, т. е. общий вид, следующий: |
| | | |
- | сделай <имя процедуры> | + | сделай имя процедуры> |
| | | |
- | ''Описание вспомогательного алгоритма (процедуры)''
| |
| | | |
- | Вот и все! Так просто! Но теперь надо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения — по столбцам):
| |
| | | |
- | процедура ЕДИНИЦА процедура ДЕВЯТЬ
| + | '''Описание вспомогательного алгоритма (процедуры)''' |
| | | |
- | нач нач
| + | Вот и все! Так просто! Но теперь надо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения — по столбцам): |
- | | + | |
- | поворот шаг поворот
| + | |
- | | + | |
- | шаг поворот поворот
| + | |
- | | + | |
- | шаг шаг поворот
| + | |
- | | + | |
- | шаг шаг прыжок
| + | |
- | | + | |
- | шаг шаг прыжок
| + | |
- | | + | |
- | поворот шаг поворот
| + | |
- | | + | |
- | поворот поворот кон
| + | |
- | | + | |
- | прыжок шаг
| + | |
| | | |
- | прыжок поворот
| |
| | | |
- | прыжок шаг
| |
| | | |
- | прыжок шаг
| + | [[Image:Informatika 9 169l.jpg|480px|Описание вспомогательного алгоритма]]<br> |
- | | + | |
- | поворот поворот
| + | |
- | | + | |
- | кон шаг
| + | |
| | | |
| Определение процедуры в программе называется ее описанием. Формат описания процедуры: | | Определение процедуры в программе называется ее описанием. Формат описания процедуры: |
Строка 85: |
Строка 64: |
| Добавив к программе описание процедуры, мы тем самым расширили систему команд исполнителя. В данной программе стало возможным использование команды обращения к этой процедуре. | | Добавив к программе описание процедуры, мы тем самым расширили систему команд исполнителя. В данной программе стало возможным использование команды обращения к этой процедуре. |
| | | |
- | ''Метод последовательной детализации'' | + | |
| + | |
| + | '''Метод последовательной детализации''' |
| | | |
| Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними. | | Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними. |
| | | |
- | Метод программирования, при котором сначала пишется основная программа, в ней записываются обращения к пока еще не составленным подпрограммам, а потом описываются эти подпрограммы, называется методом последовательной (пошаговой) детализации. Причем количество шагов детализации может быть гораздо большим, чем в нашем примере, поскольку сами подпрограммы могут содержать внутри себя обращения к другим подпрограммам. | + | Метод '''[[О системном ПО и системах программирования|программирования]]''', при котором сначала пишется основная программа, в ней записываются обращения к пока еще не составленным подпрограммам, а потом описываются эти подпрограммы, называется методом последовательной (пошаговой) детализации. Причем количество шагов детализации может быть гораздо большим, чем в нашем примере, поскольку сами подпрограммы могут содержать внутри себя обращения к другим подпрограммам. |
| | | |
- | ''Сборочный метод'' | + | |
| + | |
| + | '''Сборочный метод''' |
| | | |
| Возможен и другой подход к построению сложных программ: первоначально составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами. | | Возможен и другой подход к построению сложных программ: первоначально составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами. |
Строка 99: |
Строка 82: |
| Описанный метод называется сборочным программированием. Часто в литературе по программированию используется такая терминология: метод последовательной детализации называют программированием сверху вниз, а сборочный метод — программированием снизу вверх. | | Описанный метод называется сборочным программированием. Часто в литературе по программированию используется такая терминология: метод последовательной детализации называют программированием сверху вниз, а сборочный метод — программированием снизу вверх. |
| | | |
- | <u>''Коротко о главном''</u>
| + | |
| + | |
| + | '''Коротко о главном''' |
| | | |
| Для упрощения программирования сложных задач используются вспомогательные алгоритмы. | | Для упрощения программирования сложных задач используются вспомогательные алгоритмы. |
Строка 111: |
Строка 96: |
| Метод программирования, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы, называется методом последовательной детализации или программированием сверху вниз. Обратный порядок программирования называется программированием снизу вверх. | | Метод программирования, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы, называется методом последовательной детализации или программированием сверху вниз. Обратный порядок программирования называется программированием снизу вверх. |
| | | |
- | <u>''Вопросы и задания''</u>
| + | |
| + | |
| + | '''Вопросы и задания''' |
| | | |
| 1. Что такое основной алгоритм; вспомогательный алгоритм?<br>2. Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?<br>3. Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?<br>4. Как записывается команда обращения к процедуре в языке исполнителя ГРИС?<br>5. В чем суть метода последовательной детализации?<br>6. Что такое программирование снизу вверх; сверху вниз?<br>7. Используя вспомогательные алгоритмы, запрограммируйте рисование следующих фигур:<br> | | 1. Что такое основной алгоритм; вспомогательный алгоритм?<br>2. Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?<br>3. Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?<br>4. Как записывается команда обращения к процедуре в языке исполнителя ГРИС?<br>5. В чем суть метода последовательной детализации?<br>6. Что такое программирование снизу вверх; сверху вниз?<br>7. Используя вспомогательные алгоритмы, запрограммируйте рисование следующих фигур:<br> |
| | | |
- | [[Image:Informatika 9 172.jpg]]<br> | + | |
| + | |
| + | [[Image:Informatika 9 172.jpg|480px|Фигуры]]<br> |
| + | |
| + | |
| | | |
| <br> ''И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс<br>Отослано читателями из интернет-сайтов'' | | <br> ''И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс<br>Отослано читателями из интернет-сайтов'' |
Строка 124: |
Строка 115: |
| | | |
| '''<u>Содержание урока</u>''' | | '''<u>Содержание урока</u>''' |
- | '''[[Image:1236084776 kr.jpg|10x10px]] конспект урока ''' | + | '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] конспект урока ''' |
- | [[Image:1236084776 kr.jpg|10x10px]] опорный каркас | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] опорный каркас |
- | [[Image:1236084776 kr.jpg|10x10px]] презентация урока | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] презентация урока |
- | [[Image:1236084776 kr.jpg|10x10px]] акселеративные методы | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] акселеративные методы |
- | [[Image:1236084776 kr.jpg|10x10px]] интерактивные технологии | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] интерактивные технологии |
| | | |
| '''<u>Практика</u>''' | | '''<u>Практика</u>''' |
- | [[Image:1236084776 kr.jpg|10x10px]] задачи и упражнения | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] задачи и упражнения |
- | [[Image:1236084776 kr.jpg|10x10px]] самопроверка | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] самопроверка |
- | [[Image:1236084776 kr.jpg|10x10px]] практикумы, тренинги, кейсы, квесты | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] практикумы, тренинги, кейсы, квесты |
- | [[Image:1236084776 kr.jpg|10x10px]] домашние задания | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] домашние задания |
- | [[Image:1236084776 kr.jpg|10x10px]] дискуссионные вопросы | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] дискуссионные вопросы |
- | [[Image:1236084776 kr.jpg|10x10px]] риторические вопросы от учеников | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] риторические вопросы от учеников |
- |
| + | |
| '''<u>Иллюстрации</u>''' | | '''<u>Иллюстрации</u>''' |
- | '''[[Image:1236084776 kr.jpg|10x10px]] аудио-, видеоклипы и мультимедиа ''' | + | '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] аудио-, видеоклипы и мультимедиа ''' |
- | [[Image:1236084776 kr.jpg|10x10px]] фотографии, картинки | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] фотографии, картинки |
- | [[Image:1236084776 kr.jpg|10x10px]] графики, таблицы, схемы | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] графики, таблицы, схемы |
- | [[Image:1236084776 kr.jpg|10x10px]] юмор, анекдоты, приколы, комиксы | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] юмор, анекдоты, приколы, комиксы |
- | [[Image:1236084776 kr.jpg|10x10px]] притчи, поговорки, кроссворды, цитаты | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] притчи, поговорки, кроссворды, цитаты |
| | | |
| '''<u>Дополнения</u>''' | | '''<u>Дополнения</u>''' |
- | '''[[Image:1236084776 kr.jpg|10x10px]] рефераты''' | + | '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] рефераты''' |
- | [[Image:1236084776 kr.jpg|10x10px]] статьи | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] статьи |
- | [[Image:1236084776 kr.jpg|10x10px]] фишки для любознательных | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] фишки для любознательных |
- | [[Image:1236084776 kr.jpg|10x10px]] шпаргалки | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] шпаргалки |
- | [[Image:1236084776 kr.jpg|10x10px]] учебники основные и дополнительные | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] учебники основные и дополнительные |
- | [[Image:1236084776 kr.jpg|10x10px]] словарь терминов | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] словарь терминов |
- | [[Image:1236084776 kr.jpg|10x10px]] прочие | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] прочие |
| | | |
| <u>Совершенствование учебников и уроков | | <u>Совершенствование учебников и уроков |
- | </u>'''[[Image:1236084776 kr.jpg|10x10px]] исправление ошибок в учебнике''' | + | </u>'''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] исправление ошибок в учебнике''' |
- | [[Image:1236084776 kr.jpg|10x10px]] обновление фрагмента в учебнике | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] обновление фрагмента в учебнике |
- | [[Image:1236084776 kr.jpg|10x10px]] элементы новаторства на уроке | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] элементы новаторства на уроке |
- | [[Image:1236084776 kr.jpg|10x10px]] замена устаревших знаний новыми | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] замена устаревших знаний новыми |
- |
| + | |
| '''<u>Только для учителей</u>''' | | '''<u>Только для учителей</u>''' |
- | '''[[Image:1236084776 kr.jpg|10x10px]] идеальные уроки ''' | + | '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] идеальные уроки ''' |
- | [[Image:1236084776 kr.jpg|10x10px]] календарный план на год | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] календарный план на год |
- | [[Image:1236084776 kr.jpg|10x10px]] методические рекомендации | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] методические рекомендации |
- | [[Image:1236084776 kr.jpg|10x10px]] программы | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] программы |
- | [[Image:1236084776 kr.jpg|10x10px]] обсуждения | + | [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] обсуждения |
| | | |
| | | |
А сейчас решим следующую задачу.
Конечно, можно поступить так, как в предыдущей задаче, написав одну длинную программу, по которой исполнитель шаг за шагом нарисует эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программу рисования той и другой цифры только один раз? Это действительно можно сделать.
Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой.
В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующими: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими:
По этим командам управление передается соответствующим процедурам, и после их выполнения управление вернется к следующей команде основной программы.
Договоримся, что начальное и конечное состояния ГРИС при вычерчивании каждой цифры будут такими, как показано стрелками на рис. 5.6 (внизу, на восток). У единицы начальное и конечное состояния совпадают. Основная программа:
Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, т. е. общий вид, следующий:
Вот и все! Так просто! Но теперь надо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения — по столбцам):
Определение процедуры в программе называется ее описанием. Формат описания процедуры:
Имя в описании и имя в обращении должны точно совпадать (никаких склонений по падежам!). Описание процедур располагается после основной программы.
Добавив к программе описание процедуры, мы тем самым расширили систему команд исполнителя. В данной программе стало возможным использование команды обращения к этой процедуре.
Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними.
Возможен и другой подход к построению сложных программ: первоначально составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами.
Например, если для управления графическим исполнителем создать библиотеку процедур рисования всех букв и цифр, то программа получения любого текста будет состоять из команд обращения к библиотечным процедурам.
Описанный метод называется сборочным программированием. Часто в литературе по программированию используется такая терминология: метод последовательной детализации называют программированием сверху вниз, а сборочный метод — программированием снизу вверх.
Для упрощения программирования сложных задач используются вспомогательные алгоритмы.
Вспомогательный алгоритм — это алгоритм решения некоторой подзадачи из исходной (основной) задачи.
Вспомогательный алгоритм, записанный на языке программирования, называется процедурой.
Вспомогательный алгоритм должен быть описан. После этого в основном алгоритме можно использовать команду обращения к этому вспомогательному алгоритму.
Метод программирования, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы, называется методом последовательной детализации или программированием сверху вниз. Обратный порядок программирования называется программированием снизу вверх.
1. Что такое основной алгоритм; вспомогательный алгоритм?
2. Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?
3. Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?
4. Как записывается команда обращения к процедуре в языке исполнителя ГРИС?
5. В чем суть метода последовательной детализации?
6. Что такое программирование снизу вверх; сверху вниз?
7. Используя вспомогательные алгоритмы, запрограммируйте рисование следующих фигур:
Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.