Сборочный метод. План-конспект урока по информатике и икт (9 класс) на тему: Тема урока: Вспомогательные алгоритмы. Метод последовательной детализации и сборочный метод

Суть метода была описана выше. Сначала анализируется исходная задача. В ней выделяются подзадачи. Строится иерархия таких подзадач (рис. 48).
Затем составляются алгоритмы (или программы), начиная с основного алгоритма (основной программы), далее - вспомогательные алгоритмы (подпрограммы) с последовательным углублением уровня, пока не получим алгоритмы, состоящие из простых команд.Вернемся к задаче «Интерпретатор», которая рассматривалась в разд. 3.16. Напомним условие: дана исходная символьная строка, имеющая следующий вид:а
b=На месте а и b стоят десятичные цифры; значком
обозначен один из знаков операций: +, -, *. Нужно, чтобы машина вычислила это выражение и после знака = вывела результат. Операция деления не рассматривается для того, чтобы иметь дело только с целыми числами.Сформулируем требования к программе Interpretator, которые сделают ее более универсальной, чем вариант, рассмотренный в разд. 3.16:1. Операнды а и b могут быть многозначными целыми положительными числами в пределах MaxInt.2. Между элементами строки, а также в начале и в конце могут стоять пробелы.3. Программа осуществляет синтаксический контроль текста. Ограничимся простейшим вариантом контроля: строка должна состоять только из цифр, знаков операций, знака = и пробелов.4. Проводится семантический контроль: строка должна быть построена по схеме а
b =. Ошибка, если какой-то элемент отсутствует или нарушен их порядок.5. Осуществляется контроль диапазона значений операндов и результата (не должны выходить за пределы MaxInt).Уже из перечня требований становится ясно, что программа будет непростой. Составлять ее мы будем, используя метод последовательной детализации. Начнем с того, что представим в самом общем виде алгоритм как линейную последовательность этапов решения задачи:1. Ввод строки.2. Синтаксический контроль (нет ли недопустимых символов?).3. Семантический контроль (правильно ли построено выражение?).4. Выделение операндов. Проверка операндов на допустимый диапазон значений. Перевод в целые числа.5. Выполнение операции. Проверка результата на допустимый диапазон.6. Вывод результата.Этапы 2, 3, 4, 5 будем рассматривать как подзадачи первого уровня, назвав их (и будущие подпрограммы) соответственно Sintax, Semantika, Operand, Calc

Функции пользователя

ü познакомиться с приемами построения алгоритмов;

ü получить представление о пользовательских функциях, освоить методику их написания.

I. Приёмы построения алгоритмов

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

проектирование – построение алгоритма решения поставленной задачи;

кодирование – перевод алгоритма на язык программирования;

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

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

Одним из приемов структурного программирования является разбиение (декомпозиция ) решаемой задачи на логически завершенные подзадачи. Для каждой подзадачи строится так называемый вспомогательный алгоритм . В связи с этим можно представить два способа построения алгоритмов:

метод последовательной детализации;

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

Метод последовательной детализации можно разбить на три этапа:

1. Строится основной алгоритм решения общей задачи, т.е. исходная задача разбивается на логически завершённые подзадачи.

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

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

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

Метод последовательной детализации.

Информатика 11 класс

МОУ «Школа-лицей №1»

г Алушта

Учитель: Литвинович В.П.


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

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

подзадач.


Суть метода:

  • Анализируется исходная задача.
  • Выделяются подзадачи.
  • Строится иерархия подзадач
  • Составляется алгоритм (программа) основной задачи
  • Составляется вспомогательный алгоритм (подпрограммы) с последовательным углублением уровня.


Пример 1 Вычислить площадь выпуклого N- угольника, заданного координатами своих вершин.

Найти площадь выпуклого многоугольника:

Площадь многоугольника

определяется, как сумма

площадей N-2 треугольников.

S- треугольника определяется:

по формуле Герона

S =√(p(p-a)(p-b)(p-c)


Первый шаг детализации Стороны треугольника определяются по теореме Пифагора: Исходные данные, координаты вершин треугольника можно задать с помощью массива:

Организация данных


Второй шаг детализации: Запрограммируем процедуру Treugolnik. В разделе подпрограмм этой процедуры запишем лишь интерфейс подпрограммы Line, создав функцию.


Третий шаг детализации Запрограммируем функцию Line. Координаты концов отрезка задаем параметрами: x a, Y a –первая точка, x b, У b – вторая.

Собираем все проделанные шаги и составляем программу:

………………………………………………………………………………………… ..



Применение метода последовательной детализации

  • Над большим программным проектом работает несколько специалистов.
  • Руководитель группы проектирует многоуровневую структуру алгоритма и составляет основную программу, а написание подпрограмм поручает другим программистам.
  • Программистам необходимо договорится об интерфейсе подпрограмм: именах, параметрах.
  • Внутренне устройство подпрограммы работа программиста
  • Большие проекты подпрограмм объединяются в МОДУЛИ.

Домашнее задание. § 2.2.11 чит. Запомнить


Практическая работа № 6. Проверить работу программы N ugolnik

Задать N = 4

Вычислить площадь квадрата с длинами сторон равными 2 и координатами вершин:

Получить результат.

>>Информатика: Ветвление и последовательная детализация алгоритма

§ 31. Ветвление и последовательная детализация алгоритма

Основные темы параграфа:

♦ команда ветвления;
♦ неполная форма ветвления;
♦ пример задачи с двухшаговой детализацией.

Команда ветвления

Познакомимся еще с одной командой ГРИС. Она называется командой ветвления. Формат команды ветвления такой:

если <условие>
то <серия 1>
иначе <серия 2>
кв

Служебное слово кв обозначает конец ветвления.

По-прежнему ГРИС может проверять только два условия: «впереди край?» или «впереди не край?». <Серия> - это одна или несколько следующих друг за другом команд. Если <условие> справедливо, то выполняется <серия 1>, в противном случае - <серия 2>. Пример показан на рис. 5.12.

Такое ветвление называется полным.

Неполная форма ветвления

если впереди край
то поворот
кв


если <условие>
то <серия>
кв

Здесь <серия> выполняется, если <условие> справедливо.

Составим последнюю, сравнительно сложную программу для ГРИС. На этом примере вы увидите, что применение метода последовательной детализации облегчает решение некоторых «головоломных» задач.

Пример задачи с двухшаговой детализацией

Задача 6. Построить орнамент, состоящий из квадратов, расположенных по краю поля. Исходное положение ГРИС - в верхнем левом углу, направление на юг (рис. 5.14).

Процедуру, рисующую цепочку квадратов от края до края поля, назовем РЯД. Процедуру, рисующую один квадрат, назовем КВАДРАТ. Сначала напишем основную программу

программа Орнамент
нач
сделай РЯД
поворот
сделай РЯД
поворот
сделай РЯД
поворот
сделай РЯД
кон

Теперь напишем процедуры РЯД и КВАДРАТ:

В процедуре РЯД в теле цикла содержится неполное ветвление. Структуру такого алгоритма можно назвать так: цикл с вложенным ветвлением.

На рис. 5.15 приведена блок-схема процедуры РЯД.

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

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

Коротко о главном

Команда ветвления имеет следующий формат:

если <условие>
то <серия 1>
иначе <серия 2>
кв

Если <условие> истинно, то выполняются команды, составляющие <серию 1>, если ложно, то - <серию 2>.

Неполная команда ветвления имеет следующий формат:

если <условие>
то <серия>
кв

Если условие истинно, то выполняется <серия>, если ложно, то сразу происходит переход к следующей команде алгоритма.

Сложные алгоритмы удобно строить путем пошаговой детализации.

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

1. Что такое пошаговая детализация?
2. Из каких команд могут состоять вспомогательные алгоритмы последнего уровня детализации?
3. Какой формат имеет команда ветвления? Какие действия исполнителя она определяет?
4. Чем отличается полное ветвление от неполного?
5. Путем пошаговой детализации составьте программы управления графическим исполнителем для решения следующих задач:
расчертить все поле горизонтальными пунктирными линиями;
нарисовать квадраты во всех четырех углах поля;
расчертить все поле в клетку со стороной, равной шагу.

Чему вы должны научиться, изучив главу 5

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

И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс
Отослано читателями из интернет-сайтов

Вся информатика онлайн, список тем по предметам, сборник конспектов по информатике, домашняя работа , вопросы и ответы, рефераты по информатике 9 класс , планы уроков

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

Если у вас есть исправления или предложения к данному уроку,

Основные алгоритмические структуры: следование, ветвление, цикл; изображение на блок-схемах. Разбиение задачи на подзадачи. Вспомогательные алгоритмы.

Основные виды алгоритмов (алгоритмических структур):

1. Линейный алгоритм (еще называют следование);

2. Циклический алгоритм;

3. Разветвляющийся алгоритм;

4. Вспомогательный алгоритм.

Линейный алгоритм

Линейный алгоритм – описание действий, которые выполняются однократно в заданном порядке. Исполнитель выполняет действия последовательно, одно за другим в том порядке в котором они следуют.

Блок-схема линейного алгоритма:

Циклический алгоритм

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

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

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

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

Циклические алгоритмы бывают двух типов:

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

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



В общем случае схема циклического алгоритма со счетчиком будет выглядеть так:

Для счетчика от нач. значения до кон. значения выполнить действие .

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

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

В общем случае схема циклического алгоритма с условием будет выглядеть так:

Пока условие повторять действие .

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

Разветвляющийся алгоритм

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

Если пошел дождь, то надо открыть зонт.

Если прозвенел будильник, то надо вставать.

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

Эти предложения начинаются с проверки какого-либо условия: пошел дождь, прозвенел будильник, встретил Сашу… Далее в зависимости мы либо вылиняем какое-либо действие, либо не выполняем его (или выполняем какое-то другое действие).

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

В общем случае схема разветвляющегося алгоритма будет выглядеть так: «если условие , то действие 1 , иначе действие 2 » (Если встречу Сашу, то скажу ему …, иначе зайду к нему сам. ). Так же можно использовать неполную форму: «если условие , то действие » (Если встречу Сашу, то скажу ему … ). В этом случае не предусматривается действий на случай невыполнения условия.

Условие – это высказывание которое может быть либо истинно, либо ложно.

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

Вспомогательный алгоритм

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

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

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

Рассмотрим пример с графическим исполнителем ГРИС. Пусть требуется составить алгоритм рисования четырехзначного числа 1919.

Можно составить один длинный алгоритм, по которому исполнитель шаг за шагом нарисует эти цифры. Но ведь цифры 1 и 9 повторяются по два раза. Алгоритм можно сократить используя вспомогательный алгоритм.

Получится более короткий и понятный алгоритм:

Алгоритм Число «1919»
начало
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
прыжок
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
конец

Где ЕДИНИЦА и ДЕВЯТЬ вспомогательные алгоритмы:

Метод последовательной детализации

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

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

Сборочный метод

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

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

Описанный метод называется сборочным программированием .

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