Открытый урок "Разбиение задачи на подзадачи, вспомогательный алгоритм"

Разделы: Информатика


Тема. Разбиение задачи на подзадачи, вспомогательный алгоритм.

Тип: комбинированный урок

ХОД УРОКА

I. Организационный момент (Приложение 1, слайд 1)

II. Устный опрос

– Какие алгоритмические структуры мы изучили? (Мы  прошли  такие алгоритмические структуры, как линейный алгоритм, ветвление (полное и неполное), циклы.)
– Ребята, изо дня в день мы делаем одно и тоже: приходим в школу, учимся. В течение дня  мы выполняем одно действие за другим? КАК НАЗЫВАЕТСЯ ЭТА АЛГОРИТМИЧЕСКАЯ СТРУКТУРА? (Это следование (линейный алгоритм)).
– Если возникает какое-то условие  причина, в зависимости от которой мы можем поступить так или иначе.  КАК НАЗЫВАЕТСЯ ЭТА АЛГОРИТМИЧЕСКАЯ СТРУКТУРА? (Ветвление.)
– В течение 6 дней это все  повторяется . Как называется эта алгоритмическая структура?  (Цикл.)
– На уроках истории и обществознания  вы изучаете истории многих народов и знаете, что практически все проходят  по следующей цепочке (слайд 2)

– Если рассмотреть любое литературное произведение, то его сюжет выстроен по алгоритму

III. Проверка домашнего задания

– Домашним заданием для вас было по данной блок-схеме (слайд 3).

 

– Команда программистов – найдет стихотворение, которое отражает эту конструкцию, команда поэтов – должна сочинить стихотворение, раскрывающее суть алгоритма.

От каждой группы по два представителя представляют свое стихотворение.

Подгруппа «Программисты»

Если жизнь тебя обманет,
Не  печалься, не сердись!
В день уныния смирись:
День веселья, верь, настанет!

Подгруппа «ПОЭТЫ»

Если двойку получил,
Во дворе – стекло разбил ,
То скорей всего сегодня ,
ты про улицу забудь.

IV. Разминка

а)  Тест

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

  • Собрать информацию;
  • Принять решение;
  • Впоследствии проанализировать удачное или неудачное было решение

Для того, чтобы нам легче было освоить новые знания, нам надо разобраться в том, что вы знаете. Я предлагаю вам 10 тестовых вопросов в качестве разминки (Приложение 2)
Каждый самостоятельно ответит на поставленные вопросы – выберет  правильный ответ (он может быть только один). И ответы занесет в  таблицу ответов. В  таблицу с ответами занесите свою фамилию.  На эту работу вам дается 10  минут. По моему сигналу работа должна быть прекращена. (Приложение  3)

ФАМИЛИЯ ___________________ ИМЯ __________________ КЛАСС ______________

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Слайд 4) Теперь разберем  вместе тест. Сверьте  свои ответы с правильными ответами. За каждый правильный ответ 2 балла. Занесите число баллов в таблицу с ответами.

Зачастую в жизни вас окружает  разнообразная информация. При решении задач нужно вычленять нужную информацию. Успешен тот, кто умеет  вычленять зерна от плевел.
Итак, мы только что провели теорию, а сейчас проверим фактически как вы умеете  составлять блок-схемы.

б) Задачи.

– Разобьемся на пары. Каждой группе необходимо решить  несколько задач (какие задачи решать данной паре мини – группа выбирает сама) за 7 минут. Вы должны составить блок-схемы решения задач. Каждая задача за правильное решение дает определенное количество баллов. По итогам решения задач будет оценена работа учащихся  в мини-группе.
Задачи раздаются на отдельных листочках. (Приложение 4)
(Слайды 5, 6,7)

– Время вышло! Заканчиваем, совещаться. Посчитайте количество баллов, которое вы набрали. Теперь посмотрите критерии оценивания. (Слайд 8)

Критерии оценивания:

«5» – 34–40 баллов
«4» – 24–33  балла
«3» – 16–23 баллов
«2» – меньше 16 баллов.

– Оцените сами себя. Поставьте себе отметку ту, которую вы считаете, что заслужили,  на карточке. Поднимите руки, кто ответил:

на «5» –
на «4» –
на «3» –  

– Молодцы!

V.  Знакомство с новой темой. Вспомогательные конструкции

– Алгоритм – это организованная  последовательность  конечного числа точных и понятных действий, необходимых для решения  любой задачи  данного класса.
Эффектным методом построения алгоритмов является метод пошаговой детализации. При этом сложная задача разбивается на ряд более простых .
(Слайд 9)
Вот посмотрите, какая у нас  конкретная задача: Необходимо для сдачи жилого дома выполнить ремонт квартир этого дома.  Для того чтобы выполнить ремонт в одной квартире, надо провести определенный набор действий – алгоритм:
Разбиваем  дом на  квартиры: первую, вторую, третью.

  • В первой квартире выполнить:  выравнивание стен, покрасить стены и окна, положить на пол паркет, установить евророзетки.
  • В второй квартире выполнить:  выравнивание стен, покрасить стены и окна, положить на пол паркет, установить евророзетки.
  • В третьей квартире выполнить:  выравнивание стен, покрасить стены и окна, положить на пол паркет, установить евророзетки.
  •  …

– А если у нас 10 квартир? Как будет выглядеть наш алгоритм? А если у нас 100 квартир? Какое отдельное действие  повторяется?
Для каждой подзадачи составляется  свой, относительно решения     основной задачи, вспомогательный алгоритм. Требования к ним продиктованы  необходимостью, как решения подзадачи, так и последующей их «стыковки» в основном алгоритме. Эти подзадачи могут, в свою очередь, потребовать разбиения на еще более простые задачи, и т. д. В результате некоторые вспомогательные алгоритмы могут стать основными по отношению к вспомогательным алгоритмам более низкого уровня.
На слайде видно, как выглядит задача с использованием этого вспомогательного алгоритма. Вы можете сравнить.
Процесс пошаговой детализации заканчивается, когда задачи очередного уровня окажутся совсем простыми. Метод пошаговой детализации универсален. Он применим для решения задач из разных областей жизни.
Запись в тетрадь: Тема урока. Определение  вспомогательного алгоритма. (Слайд 10)
Следовательно, вспомогательные алгоритмы создаются, когда возникает необходимость разбиения задачи на ряд более простых задач или когда есть необходимость многократного использования одного и того же набора действий в одном или разных алгоритмах. Вспомогательные алгоритмы, как уже отмечалось, должны быть состыкованы между собой в процессе "сборки" основного алгоритма. Для этого используют заголовки вспомогательных алгоритмов; с их помощью вызывают этот алгоритм (обращаются к его работе) из других вспомогательных или основного алгоритмов.
При составлении и использовании вспомогательных алгоритмов важно знать, что является для них исходными данными (аргументами) и результатами. Иногда команды вызова вспомогательного алгоритма содержат указание на имена тех переменных, которые вносят в него исходные значения, а также переменных, в которые перед выходом из него попадут значения результата для дальнейшего использования вне вспомогательного алгоритма. Иногда результатом работы вспомогательного алгоритма может стать значение некоторой сигнальной переменной ("флажка"), сообщающее об истинности какого-то условия или о наличии какого-либо факта, например о возможности вычислить действительные корни квадратного уравнения ввиду отличного от нуля дискриминанта (значение флажка может быть равно 1 или 0).

Записывая программу для компьютера на "понятном" ему языке программирования, вспомогательные алгоритмы можно организовать, например, как подпрограммы. Правила обращения к ним и возврата из них в основную программу определяются конкретным языком программирования. Подпрограммы общего назначения могут объединяться в библиотеки подпрограмм, а иногда образовывать набор стандартных функций (слайд 11).

 
символ, которым заменяют  одну или несколько  команд,  
определенных  в другом месте (во вспомогательном  алгоритме)

Вопросы для самоконтроля:

– В каких  случаях возникает необходимость  во вспомогательном алгоритме?
– Как вы понимаете термины «Формальный» и «фактический» параметры по отношению к вспомогательному алгоритму?
– В чем вы видите рациональность  использования  вспомогательных алгоритмов  и подпрограмм?

– В результате выполнения фрагмента основного алгоритма:

Х:=3
У:=5
ФУНК (Х,У,Z)

и вспомогательного алгоритма ФУНК (А, В, С) с формальными параметрами  исходных для него данных А, В и результата С:

Если А>В , то
С:=А*А
иначе
С:=В*В
Конец ветвления
Возврат

переменная Z примет значение:

а) 3;
б) 25;
в) 5;
г) 15.

VI.  Домашнее задание (cлайды 12, 13) (Приложение 5)

– Для команды программистов составить программу, имеющую вспомогательный алгоритм.
– Для команды поэтов , составить стихи, имеющие вспомогательный алгоритм.

VII. Подведение итогов урока

– Ребята, большое спасибо за урок.  (Слайд 14)