Перейти к содержимому

Разбиение задачи на подзадачи как называется

  • автор:

Разложение задачи на подзадачи

Разложение задачи в последовательность разнородных подзадач иногда называют методом «разделяй и властвуй».

В этом методе обычно выделяется относительно небольшое число подзадач. Например: задача – выполнить программу на компьютере; подзадачи – ввести исходный текст программы; транслировать программу в машинные команды; подсоединить к машинному коду стандартные процедуры из библиотеки; загрузить программу

Разбиение данных в оперативную память; запустить процесс выполнения; завершить процесс выполнения программы.

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

Важный частный случай предыдущего метода – разложение задачи в последовательность однородных подзадач приобретает новое качество за счет того, что задача Р сводится к п экземплярам более простой задачи Я и к простой задаче Q, объединяющей и решений.

Пример

Вычислим скалярное произведение двух векторов –А и В:

for i:= 1 to n do

Этот алгоритм использует разбиение исходных данных на части – отдельные компоненты векторов.

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

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

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

В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет.

Получите невероятные возможности

1. Откройте доступ ко всем видеоурокам комплекта.

2. Раздавайте видеоуроки в личные кабинеты ученикам.

3. Смотрите статистику просмотра видеоуроков учениками.
Получить доступ

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

Сегодня на уроке мы вспомним:

· Что такое вспомогательный алгоритм;

· Чем отличается процедура от функции.

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

Структурный подход предполагает составление алгоритмов и программ методом «сверху вниз» (нисходящее программирование). При этом задача сначала рассматривается в целом, затем разбивается на крупные блоки, а те в свою очередь – на блоки поменьше и так далее. Эти блоки должны быть логически завершенными.

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

Алгоритмические блоки впоследствии могут быть использованы в составе других алгоритмов, при решении других задач.

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

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

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

Давайте вспомним как выглядит вспомогательный алгоритм на блок-схеме.

Этот блок называется «Предопределённый процесс», внутри него записывается название вспомогательного алгоритма, входные и выходные параметры.

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

var a: integer;

procedure reverse(n: integer);

write(n mod 10);

if (n div 10) <> 0 then

reverse(n div 10)

readln(a);

reverse(a);

writeln;

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

Подпрограммы делятся на процедуры и функции.

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

Сначала идёт служебное слово Procedure, и через пробел указывается имя процедуры. Не забудьте, что имя процедуры не должно совпадать с именем программы, названием служебных слов или переменных, остальные требования те же, что и к имени программы, то есть оно может состоять из 1 до 255 цифр, букв латинского алфавита и знаков подчёркивания, и должно начинаться с буквы латинского алфавита или знака подчёркивания. После имени процедуры в круглых скобках, как в разделе описания переменных, необходимо перечислить сначала входные параметры с указанием типа, затем после служебного слова var перечисляются выходные параметры с указанием типа. В конце строки ставится точка с запятой. Если необходимы промежуточные переменные, то строкой ниже записывается раздел описания переменных процедуры, который, как и в основной программе, начинается со слова var. Далее, между служебными словами begin и end, следует тело процедуры. В данном случае после служебного слова end ставится точка с запятой.

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

program tes;

procedure nomer (x: real, k: integer;

nomer (b, a, c);

nomer (3.9, 5, b);

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

Ещё одним видом подпрограмм, кроме процедур, являются функции.

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

Запись функции в программе похожа на запись процедуры. Функции записываются между разделом описания переменных и телом основной программы в том порядке, который более удобен.

В начале, записывается служебное слово function, а после него идёт имя функции. Оно, также как и имя процедуры не должно совпадать с именем программы или переменных. В имени может быть несколько цифр, букв латинского алфавита или знаков подчёркивания. Имя может начинаться с буквы латинского алфавита или знака подчёркивания. Далее в круглых скобках, идёт перечисление входных параметров с указанием типов. После скобок следует двоеточие и тип возвращаемого значения, после которого ставится точка с запятой. После, если в процессе работы функции нужны промежуточные переменные, как и при записи процедуры, следует раздел описания переменных функции. Названия переменных и параметров функции могут совпадать с именами переменных в основной программе или других функциях, поэтому их стоит выбирать для решения данной подзадачи.

Затем между служебными словами begin и end следует тело функции. Так как значение возвращаемое функцией сохраняется в переменную, название которой совпадает с её названием, тело функции должно содержать хотя бы одну команду присваивания переменной с этим названием какого либо значения. Как и при записи процедуры после служебного слова end следует точка с запятой.

Вызов функции отличается от вызова процедуры. Если процедура вызывается как отдельная команда в составе основного алгоритма, то вызов функции происходит в составе другой команды или оператора. При этом функция записывается как один из параметров оператора.

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

program tes;

a, c: integer;

function nomer (x: real, k: integer): integer;

a := nomer (b, b) + 10;

Writeln (nomer(3.1, 5))

Выполним несколько заданий.

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

Запишем решение на алгоритмическом языке. Итак, длина отрезка может быть рассчитана по следующей формуле:, где (x1, y1) и (x2, y2) – координаты концов этого отрезка.

У алгоритма будет 5 параметров: из них четыре это координаты точек и один параметр – это переменная для будущего результата.

В заголовке алгоритма перечисляем все 5 параметров, указав для них тип данных. Далее перечисляем отдельно входные параметры (аргументы, служебное слово арг) и выходной параметр (результат, служебное слово рез). В теле алгоритма запишем одну команду — расчет длины отрезка.

алг Dlina (вещ a1, b1,a2,b2,l)

арг a1, a2, b1, b2

рез l

l := ((a1 – a2)2 + (a1 – a2)2)1/2

В получившемся вспомогательном алгоритме нет команды ввода исходных и вывода результирующих данных, так как это будет организовано в основном алгоритме. Например, для расчёта длины отрезка d с координатами вершин (0, 0) и (2, 5) в основной программе надо будет указать команду Dlina (0, 0, 2, 5, d).

Составляем основной алгоритм расчёта периметра треугольника P с вершинами (k1, m1), (k2, m2) и (k3, m3). Для этого нужно будет вычислить длины отрезков (l1, l2, l3) три раза. Таким образом в основном алгоритме будет трижды вызывать созданный вспомогательный алгоритм Dlina. Каждый раз при вызове будут указываться координаты вершин очередного отрезка и переменная для сохранения его длины.

алг Perimetr

вещ k1, k2, k3, m1, m2, m3

вещ l1, l2, l3

ввод k1, k2, k3, m1, m2, m3

Dlina (k1, m1, k2, m2, l1)

Dlina (k1, m1, k3, m3, l2)

Dlina (k2, m2, k3, m3, l3)

P := l1 + l2 + l3

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

Теперь решим задачу на Паскале.

В программе создадим функцию average, которая имеет два вещественных параметра (c и d) и возвращает также вещественное число. В теле функции вычисляется среднее арифметическое аргументов, оно присваивается имени (идентификатору) функции. В языке программирования Pascal это означает, что присвоенное имени функции значение будет передано в основную ветку программы.

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

function average(c, d: real): real;

average := (c + d) / 2;

writeln(average(a, b):5:2);

Ну что же, попробуйте ответить на следующие вопросы:

Что такое вспомогательный алгоритм?

Какие подпрограммы выделяют?

Как называется подпрограмма, которая возвращает всего одно значение?

Внимательно посмотрев урок, вам не составит труда ответить на вопросы.

Декомпозиция

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

«IT-специалист с нуля» наш лучший курс для старта в IT

IT-специалист с нуля

Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

картинка - 2023-03-14T191232.869

Профессия / 8 месяцев
IT-специалист с нуля

Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

vsrat_7 1 (2)

Зачем нужна декомпозиция?

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

  • Оценить реалистичность всего проекта. Например, в ходе декомпозиции можно увидеть, что цель сформулирована слишком широко и для ее выполнения нужно решить массу мелких задач, что в данных условиях слишком долго или требует больших ресурсов. Также этот прием может показать, что цель вообще задана некорректно и в нынешней формулировке нереализуема в принципе.
  • Осознать задачи. Разбивая большую цель на отдельные задачи, вы сможете понять, что именно необходимо выполнить для ее достижения. Зачастую в плане работ появляются пункты, которых изначально не было. Также декомпозиция позволяет найти дополнительные способы и средства достижения цели.
  • Расставить приоритеты. Разделение общей цели на отдельные задачи позволяет понять, какие из них более важные, и направить на них основные ресурсы. Также метод декомпозиции помогает составить иерархию задач, тем самым упорядочить их выполнение.
  • Оценить сроки и риски. Оценка общей цели, как правило, затруднена тем, что она находится в перспективе. Понимая, что необходимо сделать на каждом из этапов, легче оценить реалистичные сроки и затраты ресурсов для выполнения задач, а также связанные с ними препятствия.
  • Оценить достижения. Имея подробный поэтапный план, легче определить, на какой стадии достижения цели вы находитесь, сколько времени и ресурсов уже потрачено и будет необходимо потратить в будущем, а также какой результат достигнут на данный момент. Это позволяет постоянно корректировать порядок работ в сторону большей реалистичности.

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

Кому нужна декомпозиция?

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

Сознательно декомпозиция целей как управленческий метод применяется в бизнесе и менеджменте:

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

Может показаться, что декомпозицией пользуются только руководство больших компаний при работе над крупными проектами. На практике этот метод управления применяют и небольшие стартапы, и одиночки. Особенно это проявляется в IT-сфере, где программные продукты (десктопные и мобильные приложения, игры и т.д.) часто разрабатываются небольшими группами энтузиастов и отдельными специалистами. При этом декомпозируются не только технические задачи, но и управленческие, маркетинговые.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить

Принципы декомпозиции

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

Четкое определение цели. Она должна быть конкретной, в идеале — исчислимой, чтобы ее можно было измерить. Например, вариант «больше заработать» не подходит, потому что он лишен конкретики. Непонятно, какие ресурсы и мероприятия для этого нужны. А цель, сформулированная как «в конце года войти в ТОП-3 поисковика Яндекса», вполне точно определена и измеряема, что упрощает и определение частных задач, необходимых для ее достижения.

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

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

Совпадение суммы частей с целым. Целое — это конечная цель, заложенная в проект. Она должна быть достигнута на все 100%. После ее декомпозиции нужно подсчитать, соответствует ли ей сумма результатов, достигаемых на каждом из этапов. Если нет — это признак ошибки планирования, упущенной задачи, которая не позволит достичь конечного результата в полной мере.

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

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

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

Виды декомпозиции

Под ними подразумеваются способы разбивки целого на части. Условно их все можно разделить на две общие категории:

  • Поэтапное деление. Оно заключается в создании списка последовательных этапов, выполнив которые, можно достичь основной цели. При этом перейти к новой стадии можно только тогда, когда завершена предыдущая. Эта последовательность ограничивает применение данной модели декомпозицией работ, процессов и, в некоторых случаях, целей.
  • Дерево зависимостей. Это иерархическая структура, в которой задачи не обязательно последовательно связаны друг с другом и могут выполняться параллельно. Структурная декомпозиция сложнее, чем поэтапное деление, и больше подходит для осуществления масштабных проектов и задач.

Чтобы в процессе разделения на части всего проекта не упустить важные моменты, применяют различные средства визуализации. Особенно это распространено в IT-сфере, где часто используются следующие инструменты:

  • Диаграмма Ганта. Это график работ, представляющий собой полосы, соответствующие каждой задаче и протянутые вдоль временной шкалы. Длина каждой полосы соответствует сроку выполнения, а их расположение — приоритетности или логике выполнения.
  • Диаграмма PERT. Она напоминает диаграмму Ганта, но учитывает не только хронологию, последовательность и приоритет задач, но и взаимосвязь между ними. Ключевые этапы обозначаются кругами или прямоугольниками, а задачи, образующие зависимости между ними, — линиями или стрелками.

Визуально декомпозировать проект можно в любом графическом редакторе. Но есть и более удобные инструменты — например, в том же Microsoft Excel или Google Таблицах присутствует отдельная функция для построения диаграмм. С ее помощью можно настроить визуализацию Ганта. Для построения диаграмм PERT, деревьев зависимостей и других схем декомпозиции подходит программа XMind, изначально «заточенная» под создание «ментальных карт» (мэйндмапов). Есть и более специализированные под менеджмент приложения (например, «ЛидерТаск»), в которых можно не только визуально декомпозировать задачи, но и назначить ответственных, подробно расписать план работ, контролировать их выполнение и т.д.

Преимущества декомпозиции

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

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

Распределение ответственности. При работе над большим проектом все команду придется разбивать на отдельные подгруппы, каждая из которых будет заниматься своей частью. В противном случае достижение общей цели будет трудным, а командная деятельность — неэффективной. Но и при параллельной работе возникает необходимость контролировать их. Декомпозиция позволяет сразу распределить задачи по подгруппам, назначить ответственных за их выполнение, тем самым повысив общую эффективность команды.

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

Недостатки декомпозиции

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

Игнорирование человеческого фактора. Декомпозиция — это формальный метод планирования. Он работает в первую очередь с содержанием самих задач, но не с их исполнителями. Как и в случае форс-мажоров, нельзя заранее предусмотреть на 100%, как назначенные сотрудники будут выполнять свою работу, сколько времени и ресурсов им для этого понадобится, какого результата они достигнут и т.д. Особенно это касается творческих проектов, в которых очень многое зависит непосредственно от команды.

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

Как сделать декомпозицию?

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

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

  • Сначала нужно четко определить основную цель. Без ее понимания будет невозможно адекватно выделить более частные задачи, нужные для ее выполнения.
  • Далее основную цель необходимо разбить на несколько задач. Причем они не должны логически пересекаться друг с другом.
  • Затем основные задачи дробятся, если в этом есть необходимость, на более мелкие. Они, в свою очередь, также разбиваются на подзадачи — так появляются уровни декомпозиции.
  • Все подзадачи на каждом уровне подвергаются анализу. Нужна ли данная конкретная задача для достижения общей цели? Сколько на нее расходовать ресурсов и времени? И т.д.
  • Задачи, которые не нужны для выполнения проекта, отсекаются, а оставшаяся структура переносится на новый лист.
  • Далее по оптимизированной структуре выполняется уже сам проект.

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

Другая стратегия основана не на логическом разделении общего на частные элементы, а на числовом подходе. Работает она только с проектами и целями, которые можно измерить, — например, «увеличить за год количество подписчиков с 200 тысяч до 1 миллиона» и т.д. Здесь за общую цель берется конкретный числовой показатель, который хронологически разделяется на несколько частей, каждая из которых должна быть достигнута за определенный срок.

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

  • Основная цель формулируется в общем виде и подвергается анализу.
  • Из нее выделяется одна приоритетная задача, которая уже разбивается на небольшие этапы.
  • Эта задача фиксируется в плане и выполняется по выделенным этапам.
  • Затем цикл повторяется — из основной цели выделяется другая приоритетная задача и т.д.

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

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

Разбиение задачи на подзадачи

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

1.Организационный момент

Здравствуйте ребята, присаживайтесь.

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

Работа с текстом 13.2

3.Подготовка к основному этапу занятия

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

4. Усвоение новых знаний и способов действия

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

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

На первом шаге достаточно определить исходные данные и результаты алгоритма, а сам алгоритм представить в виде единого предписания – постановки задачи.

Если исполнитель не обучен исполнять заданное предписание, то необходимо представить это предписание в виде совокупности более простых предписаний (команд).

Давайте запишем, что нужно сделать для последовательного построения алгоритма. (Слайд2. Учащиеся записывают этапы построения алгоритма, учитель объясняет каждый этап).

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

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

Посмотрите на доску и запишите определение вспомогательного алгоритма (слайд 3).

Команда вызова вспомогательного алгоритма исполняется следующим образом (Учащиеся смотрят на доску (слайд 4), в это время учитель объясняет).

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

2) Для заданных входных данных исполняются команды вспомогательного алгоритма;

3) Полученные результаты присваиваются переменным с именами фактических результатов;

4) Осуществляется переход к следующей команде основного алгоритма.

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

Построим блок-схему этого алгоритма (Ребята совместно с учителем строят блок-схему, учитель на доске, учащиеся в тетради).

Давайте проверим, правильно ли у нас получилось (слайд 6).

5. Первичная проверка понимания (самостоятельная работа)

Сейчас ребята, мы с вами проведем небольшую самостоятельную работу.

6. Подведение итогов занятия

7. Информация о домашнем задании, инструктаж по его выполнению.

Просмотрено: 0%
Просмотрено: 0%

Рабочие листы к Вашему уроку:

  • Рабочий лист по информатике. Базы данных.
  • Рабочий лист по информатике. Языки программирования.
  • Рабочий лист по информатике. Информационная безопасность.
  • Рабочий лист по информатике
  • Рабочий лист по информатике
  • Рабочий лист по информатике
  • Рабочий лист по информатике на тему
  • Логические операции. Оформление кабинета информатики. Памятки для обучающихся.
  • Рабочий лист для информатики что такое компьютер
  • Памятка по информатике ОГЭ
  • Памятка. Правила перевода единиц измерения информации.
  • Рабочий лист по информатике 9 класс
  • Python. Углублённый уровень. Графика. Модуль Tkinter
  • Рабочий лист для информатики по теме:
  • Рабочий лист

Рабочие листы
к вашим урокам

Краткое описание документа:

Тема: Разбиение задачи на подзадачи Цели: учащиеся имеют представление о методе последовательной детализации как об одном из основных методов структурирования алгоритма, знают назначение вспомогательного алгоритма и умеют его применять. Ход урока: 1.Организационный момент Здравствуйте ребята, присаживайтесь. 2. Проверка домашнего задания Граф Работа с текстом 13.2 3.Подготовка к основному этапу занятия Сегодня и научимся, а также познакомимся с новым видом алгоритма, который называется вспомогательным. Разбиение задачи на подзадачи. 4. Усвоение новых знаний и способов действия Существуют различные методы конструирования алгоритмов. Одним из них является – метод последовательного построения алгоритма. Процесс последовательного построения алгоритма выглядит следующим образом. На первом шаге достаточно определить исходные данные и результаты алгоритма, а сам алгоритм представить в виде единого предписания – постановки задачи. Если исполнитель не обучен исполнять заданное предписание, то необходимо представить это предписание в виде совокупности более простых предписаний (команд). Давайте запишем, что нужно сделать для последовательного построения алгоритма. (Слайд2. Учащиеся записывают этапы построения алгоритма, учитель объясняет каждый этап). Этот процесс продолжается до тех пор, пока все предписания не будут понятны исполнителю. Объединяя полученные команды в единую совокупность выполняемых в определенной последовательности команд, получаем требуемый алгоритм решения исходной задачи. При построении алгоритмов нередко возникают ситуации, когда в разных местах алгоритма необходимо выполнение одной и той же последовательности шагов обработки данных. Для такой последовательности шагов создают отдельный алгоритм, называемый вспомогательным. В качестве вспомогательных могут использоваться алгоритмы, ранее разработанные для решения других задач. Посмотрите на доску и запишите определение вспомогательного алгоритма (слайд 3). Команда вызова вспомогательного алгоритма исполняется следующим образом (Учащиеся смотрят на доску (слайд 4), в это время учитель объясняет). Формальные входные данные вспомогательного алгоритма заменяются значениями фактических входных данных, указанных в команде вызова вспомогательного алгоритма; Для заданных входных данных исполняются команды вспомогательного алгоритма;Полученные результаты присваиваются переменным с именами фактических результатов; Осуществляется переход к следующей команде основного алгоритма. Ребята, давайте рассмотрим пример построения алгоритма, в котором используется вспомогательный алгоритм (слайд 5).

Доступно для всех учеников
1-11 классов и дошкольников

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

Подать заявку

Оплата после прохождения

Как учителю увеличить свой доход?

Стать автором рабочих листов

2 000 учителей заработали с нами более 6 000 000 рублей за последние пол года!

Видеолекции для
профессионалов

  • Свидетельства для портфолио
  • Вечный доступ за 99 рублей
  • 4 300+ видеолекции для каждого

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *