Как строить блок схемы. Алгоритмы

17.09.2019

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

На территории Российской Федерации действует единая система программной документации (ЕСПД) , частью которой является Государственный стандарт — ГОСТ 19.701-90 «Схемы алгоритмов программ, данных и систем» . Не смотря на то, что описанные в стандарте обозначения могут использоваться для изображения схем ресурсов системы, схем взаимодействия программ и т.п., в настоящей статье описана лишь разработка схем алгоритмов программ.

Рассматриваемый ГОСТ практически полностью соответствует международному стандарту ISO 5807:1985 .

Элементы блок-схем алгоритмов

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

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

Терминатор начала и конца работы функции

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

Операции ввода и вывода данных

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

Выполнение операций над данными

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

Блок, иллюстрирующий ветвление алгоритма

Блок в виде ромба имеет один вход и несколько подписанных выходов. В случае, если блок имеет 2 выхода (соответствует оператору ветвления), на них подписывается результат сравнения — «да/нет». Если из блока выходит большее число линий (оператор выбора), внутри него записывается имя переменной, а на выходящих дугах — значения этой переменной.

Вызов внешней процедуры

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

Начало и конец цикла

Символы начала и конца цикла содержат имя и условие. Условие может отсутствовать в одном из символов пары. Расположение условия, определяет тип оператора, соответствующего символам на языке высокого уровня — оператор с предусловием (while) или постусловием (do … while).

Подготовка данных

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

Соединитель

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

Комментарий

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

Примеры блок-схем

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

Сортировка вставками

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

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


Блок-схема алгоритма сортировки вставками

В приведенной блок-схеме для организации цикла используется символ ветвления. В главном цикле (i < n) перебираются элементы необработанной части массива. Если все элементы обработаны — алгоритм завершает работу, в противном случае выполняется поиск позиции для вставки i-того элемента. Искомая позиция будет сохранена в переменной j в результате выполнения внутреннего цикла, осуществляющем сдвиг элементов до тех пор, пока не будет найден элемент, значение которого меньше i-того .

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

Сортировка пузырьком

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


Блок-схема алгоритма сортировки пузырьком

На блок-схеме показано использование символов начала и конца цикла. Условие внешнего цикла (А) проверяется в конце (с постусловием ), он работает до тех пор, пока переменная hasSwapped имеет значение true. Внутренний цикл использует предусловие для перебора пар сравниваемых элементов. В случае, если элементы расположены в неправильном порядке, выполняется их перестановка посредством вызова внешней процедуры (swap ). Для того, чтобы было понятно назначение внешней процедуры и порядок следования ее аргументов, необходимо писать комментарии. В случае, если функция возвращает значение, комментарий может быть написан к символу терминатору конца.

Сортировка выбором

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


Блок-схема сортировки выбором

На блок-схеме приведен пример использования блока «подготовка», а также показано, что в ряде случаев можно описывать алгоритм более «укрупнённо» (не вдаваясь в детали). К сортировке выбором не имеют отношения детали реализации поиска индекса минимального элемента массива , поэтому они могут быть описаны символом вызова внешней процедуры. Если блок-схема алгоритма внешней процедуры отсутствует, не помешает написать к символу вызова комментарий, исключением могут быть функции с говорящими названиями типа swap, sort , … .








Назад Вперёд

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

Цели урока.

Образовательная - систематизация знаний, умений и навыков работы по теме “Алгоритмы и исполнители”; отработка навыков составления алгоритмов и представление их в виде блок-схем.

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

Развивающая – развитие образного, логического мышления учащихся; умения анализировать и синтезировать знания; формирование у учащихся информационной культуры.

Оборудование: компьютер, проектор, экран, презентация.

ХОД УРОКА

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

II. Актуализация опорных знаний (слайды 3, 4, 5).Что такое алгоритм?

  • Перечислите свойства алгоритма.
  • Назовите виды алгоритмов.
  • Что такое линейный алгоритм.
  • Что такое разветвляющийся алгоритм?
  • Что такое циклический алгоритм?
  • Какие виды циклического алгоритма вы знаете?
  • Назовите способы представления алгоритма.
  • Какие из приведенных фигур используются в блок-схемах?
  • 10. По данным блок-схемам назовите вид алгоритма.

    линейный

    цикл с предусловием

    разветвляющийся (полная форма)

    цикл с постусловием

    разветвляющийся (неполная форма)

    цикл с параметром

    III. Решение задач

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

    Задача 1. Определить расстояние, пройденное человеком, если известно время, скорость движения, и движение было равномерным. (Cлайд 6)

  • Ребята, что нам известно из условия задачи? (Cкорость, время, движение было равномерным, значит расстояние вычисляем по формуле S=v*t )
  • Что мы с вами должны сделать прежде, чем строить блок-схему? (Cоставить алгоритм)
  • Давайте устно составим словесный алгоритм.
  • Алгоритм

    1. Ввод v, t.

    2. Вычисление s.

    3. Вывод s.

    • Скажите, какой мы получили с вами алгоритм? (Линейный алгоритм)
    • Теперь переходим к построению блок-схемы. Какие элементы блок-схемы нам понадобятся? (Начало, конец, ввод данных, вычисление расстояния, вывод результата) на экране все элементы.
    • Ребята, расставьте все элементы в нужном порядке. (На экране результат )

    Вычислить(слайд 7).

    • С чего мы начинаем? (Составляем словесный алгоритм)
    • На что в данной задаче надо обратить внимание? (Вычисляем значение дроби, в знаменателе стоит разность 7-у, которая в зависимости от значения у может быть равна нулю, в этом случае не будет решения)

    Алгоритм

    1. Ввод a, y.

    2. Если 7-у=0, то нет решения.

    4. Вывод s.

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

    Задача 3. Постройте блок-схему алгоритма подписи 10 новогодних открыток. (Слайд 8)

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

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

    V. Домашнее задание

    Для задачи 3 составить блок-схемы с использованием цикла с предусловием и постусловием.

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

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

    6 инструментов для работы с блок-схемами:

    draw.io

    Этот сервис позволит создавать не только блок-схемы, но и UML, диаграммы сущность-связь, сетевые диаграммы, электрические схемы, каркасные схемы и модели. Интуитивный интерфейс и большая библиотека элементов позволят работать легко и комфортно. Важно также и то, что над одним проектом могут работать сразу несколько человек. Результат можно сохранить в форматах PNG/JPG/XML/SVG/PDF. Имеется интеграция с Google Drive.

    gliffy.com

    Gliffy предоставляет схожий набор инструментов и возможностей: большая библиотека элементов, удобный интерфейс, возможность коллективной работы, интеграция с Google Drive, работа с документами Visio, готовые цветовые темы для проектов.

    gomockingbird.com

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

    lucidchart.com

    Онлайн-сервис, который облегчит создание скетчей и диаграмм. Совместим с G Suite и документами Microsoft Visio. После окончания работы можно экспортировать файл в различных форматах, либо отправить на публикацию.

    Balsamiq mockups

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

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

    Инструкция

    Как правило, вначале алгоритма производится ввод исходных данных для решения поставленной задачи. Нарисуйте параллелограмм ниже линии так, чтобы он непрерывным продолжением схемы. В параллелограмме напишите производимое действие, обычно это операции данных с экрана (Read nInp) или других устройств. Важно, что введенные вами переменных в данном шаге будут использоваться в дальнейшем во всем теле блок-схемы.

    Выполнение одной или группы операций, любая обработка данных (изменение значения или формы представления) обозначается в виде прямоугольника. Нарисуйте данную фигуру в нужном месте алгоритма при составлении блок-схемы. Внутри прямоугольника запишите производимые действия , например, операция присваивания записывается следующим образом: mOut = 10*nInp b + 5. Далее также для продолжения блок-схемы нарисуйте линию вниз.

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

    Для задания оператора условия нарисуйте от данной линии ромб. Внутри фигуры укажите само условие и проведите линии, указывающие дальнейший переход в зависимости от его выполнения. Условие задается в общем случае операциями сравнения (>, <, =). Переход по линии вниз осуществляется при истинном условии, назад – при ложном. Укажите около выходных линий фигуры результаты условия (true, false). Невыполнение условия (false) возвращает к определенному шагу выше по телу алгоритма. Проведите линии под прямым углом от выхода с условия и до нужного оператора.

    8.2. Блок-схемы алгоритмов

    При описании алгоритмов давно и успешно используются блок-схемы (Basic Flowchart). Построение блок-схем алгоритмов регламентируется ГОСТ 19.701-90 (ИСО 5807-85) "Единая система программной документации. Схемы алгоритмов программ, данных и систем. Условные обозначения и правила выполнения" . Данный государственный стандарт составлен на основе международного стандарта "ISO 5807-85. Information processing – Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts".

    Согласно ГОСТ 19.701-90 под схемой понимается графическое представление определения, анализа или метода решения задачи. С помощью схем можно отобразить как статические, так и динамические аспекты системы. Символы, приведенные в государственном стандарте, могут использоваться в следующих типах схем :

    Схемы данных – определяют последовательность обработки данных и их носители;

    Схемы программ – отображают последовательность операций в программе (по сути, это и есть блок-схемы алгоритмов в традиционном понимании);

    Схемы работы системы – отображают управление операциями и потоки данных в системе;

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

    Схемы ресурсов системы – отображают конфигурацию блоков данных и обрабатывающих блоков.

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

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

    На схемах могут присутствовать следующие элементы графической нотации :

    Символы данных – указывают на наличие данных, вид носителя или способ ввода-вывода данных;

    Символы процесса – указывают операции, которые следует выполнить над данными;

    Символы линий – указывают потоки данных между процессами и/или носителями данных, а также потоки управления между процессами;

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

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

    Таблица 8.1. Условные обозначения на блок-схемах

    № п/п Символ Наименование Примечания
    1. СИМВОЛЫ ДАННЫХ
    Основные
    1.1 Данные Данные, носитель которых не определен
    1.2 Запоминающее устройство (ЗУ) Данные, хранимые в виде, пригодном для автоматической обработки, носитель не определен
    Специфические
    1.3 ОЗУ Данные, хранящиеся в ОЗУ (оперативная память)
    1.4 ЗУ с последовательным доступом Данные, хранящиеся на магнитной ленте (магнитная лента, магнитофонная кассета)
    1.5 ЗУ с прямым доступом Данные, хранящиеся на жестких или гибких магнитных дисках, CD, DVD, ZIP и т.д.
    1.6 Документ Данные, представляемые не в компьютерном виде (на бумаге, на пленках и т.д.)
    1.7 Ручной ввод Данные, вводимые вручную с помощью клавиатуры, мыши, светового пера и т. д.
    1.8 Карта Данные на перфокартах, магнитных картах, картах со считываемыми метками и т.д.
    1.9 Бумажная лента Данные на бумажной ленте
    1.10 Дисплей Данные, отображаемые на экране монитора, сигнальные индикаторы и т.д.
    2. СИМВОЛЫ ПРОЦЕССА
    Основной
    2.1 Процесс Элементарная (атомарная) операция по обработке данных (например, n:=n+1)
    Специфические
    2.2 Предопределенный процесс (процедура) Процесс, состоящий из операций, описанных в другом месте (на другой схеме)
    2.3 Ручная операция Операция, выполняемая вручную
    2.4 Подготовка Подготовительные операции, выполняемые с целью модификации последующих операций (цикл с параметром )
    2.5 Решение Операция с одним входом и несколькими альтернативными выходами, один из которых активизируется после проверки условия, записываемого внутри символа (операторы If-Then-Else или Case)
    2.6 Параллельные действия Параллельное выполнения двух и более операций
    2.7 Границы цикла Начало и конец цикла. Особенности работы цикла (инициализация, приращение, условие) записывается в начале или конце, в зависимости от того, где осуществляется его проверка (циклы с пред- или постусловием)
    3. СИМВОЛЫ ЛИНИЙ
    Основной
    3.1 Линия Поток данных или управления
    Специфические
    3.2 Канал связи Передача данных по каналу связи
    3.3 Пунктирная линия Альтернативная связь между двумя и более символами или для обводки комментируемого участка схемы
    4. СПЕЦИАЛЬНЫЕ СИМВОЛЫ
    4.1 ГОСТ Соединитель Используется для обрыва линий и их продолжения в другом месте.
    Обычно используется для обозначения взаимосвязанных частей схемы на разных листах. Внутри соединителя пишется номер соединения
    ИСО
    4.2 Терминатор Выход во внешнюю среду или вход из внешней среды (начало и конец процесса обработки данных [в этом случае внутри пишут "начало" или "конец"], источник или пункт назначения данных, начало и конец работы предопределенного процесса)
    4.3 Получатель – отправитель По функциональному назначению аналогичен символу "Терминатор"
    4.4
    Похожие статьи