Пример графического способа представления алгоритма
Формы записи алгоритмов
На практике наиболее распространены следующие формы представления алгоритмов:
- словесная (запись на естественном языке);
- графическая (изображения из графических символов);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.;
- программная (тексты на языках программирования).
1. Словесный способ записи алгоритма
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида).
Словесный способ не имеет широкого распространения, так как такие описания:
страдают многословностью записей;
2. Наибольшее распространение благодаря своей наглядности получил графический способ записи алгоритмов. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок «модификация» используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок «предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Источник
Пример графического способа представления алгоритма
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. |
Такое графическое представление называется схемой алгоритма или блок-схемой . В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа . Блочные символы соединяются линиями переходов , определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
Название символа | Обозначение и пример заполнения | Пояснение |
Процесс | Вычислительное действие или последовательность действий | |
Решение | Проверка условий | |
Модификация | Начало цикла | |
Предопределенный процесс | Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод | Ввод-вывод в общем виде | |
Пуск-останов | Начало, конец алгоритма, вход и выход в подпрограмму | |
Документ | Вывод результатов на печать |
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок «модификация» используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок «предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
Источник
Графический способ представления алгоритмов
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
Терминатора (пуск – останов). Элемент отображает вход из внешней среды или выход из нее (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие.
Процесс. Выполнение одной или нескольких операций, обработка данных любого вида. Внутри фигуры записывают непосредственно сами операции, например, a:= a+SQRT(C).
Решение. Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). В программировании данный блок соответствует условному оператору if (два выхода: true, false) и case (множество выходов).
Предопределенный процесс. Символ отображает выполнение процесса, состоящего из одной или нескольких операций, который определен в другом месте программы (в подпрограмме, модуле). Внутри символа записывается название процесса и передаваемые в него данные. В программировании это вызов процедуры или функции
Данные (ввод-вывод). Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы).
Порядок выполнения действий задается путем соединения вершин дугами, что позволяет рассматривать блок-схемы не только как наглядную интерпретацию алгоритма, удобную для восприятия человеком, но и как взвешенный ориентированный граф. Однако не любой ориентированный граф, составленный из вершин указанных выше типов, является корректным алгоритмом. Например, из операторной вершины не может выходить более одной дуги. Поэтому на практике обычно ограничиваются рассмотрением подкласса граф-схем алгоритмов, удовлетворяющих свойствам безопасности, живости и устойчивости
Источник
Графический способ записи алгоритмов
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Внутри блока дается описание соответствующего действия.
Такое графическое представление называется схемой алгоритма или блок-схемой.
Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, т.к. зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.
Можно встретить даже такое утверждение: “Внешне алгоритм представляет собой схему – набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации“. Здесь форма представления алгоритма смешивается с самим алгоритмом.
Принцип программирования “сверху вниз” требует, чтобы блок-схема поэтапно конкретизировалась и каждый блок “расписывался” до элементарных операций. Но такой подход можно осуществить при решении несложных задач. При решении сколько-нибудь серьезной задачи блок-схема “расползется” до такой степени, что ее невозможно будет охватить одним взглядом.
Блок-схемы алгоритмов удобно использовать для объяснения работы уже готового алгоритма, при этом в качестве блоков берутся действительно блоки алгоритма, работа которых не требует пояснений. Блок-схема алгоритма должна служить для упрощения изображения алгоритма, а не для усложнения.
При решении задач на компьютере необходимо не столько умение составлять алгоритмы, сколько знание методов решения задач (как и вообще в математике). Поэтому изучать нужно не программирование как таковое (и не алгоритмизацию), а методы решения математических задач на компьютере. Задачи следует классифицировать не по типам данных, как это обычно делается (задачи на массивы, на символьные переменные и т. д.), а по разделу “Требуется”.
Схема — это графическое представление алгоритма, дополненное элементами словесной записи. Каждый пункт алгоритма отображается на схеме некоторой геометрической фигурой-блоком (блочным символом), причем различным по типу выполняемых действий блокам соответствуют различные геометрические фигуры, изображаемые по ГОСТу.
ГОСТ 19.701-90 (обозначение символов соответствует международному стандарту ИСО 5807-85) распространяется на условные обозначения (символы) в схемах алгоритмов, программ, данных и систем и устанавливает правила выполнения схем, используемых для отображения различных видов задач обработки данных и средств их решения.
В таблице 1 приведены наиболее часто употребляемые блоки и даны пояснения к ним [1,2].
Графические символы на схеме соединяются линиями потока информации. Основное направление потока информации идет сверху вниз и слева на право (стрелки на линиях могут не указываться). В других случаях применение стрелок обязательно. По отношению к блоку линии потока могут быть входящими или выходящими. Количество входящих линий для блока принципиально не ограничено. Выходящая линия может быть только одна. Исключение оставляют логические блоки, имеющие не менее двух выходящих линий потока, каждая из которых соответствует одному из возможных исходов проверки логического условия, а также блоки модификации.
Блок вычислительный процесс применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок.
Таблица 1. Условные графические обозначения, применяемые при составлении схем алгоритмов
№ п/п | Название символа | Символ | Отображаемая функция |
1 | Блок вычислений | | Вычислительное действие или последовательность вычислительных действий |
2 | Логический блок | | Выбор направления выполнения алгоритма в зависимости от некоторых условий |
| Общее обозначение ввода или вывода данных | ||
| Вывод данных, носителем которых служит документ | ||
4 | Начало-конец | | Начало или конец программы, останов, вход или выход в подпрограммах |
5 | Предопределенный процесс | | Вычисления по стандартной подпрограмме или подпрограмме пользователя |
6 | Блок модификации | | Выполнение действий, изменяющих пункты алгоритма |
7 | Соединитель | | Указание связи между прерванными линиями потока информации в пределах одной страницы |
8 | Межстраничный соединитель | | Указание связи между частями схемы, расположенными на разных листах |
9 | Магнитный диск | | Ввод-вывод данных, носителем которых служит магнитный диск |
Логический блок используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок предопределенный процесс используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
Блок модификация используется для организации циклических конструкций. Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
При большом количестве пересекающихся линий, большой их длине и многократных изменениях направления схемы становится малонаглядной. В этих случаях допускается разрывать линии потока информации, размещая на обоих концах разрыва специальный символ «соединитель» (рис. 1). Внутри поля соединителей, отмечающих разрыв одной и той же линии, ставится одинаковая маркировка отдельной буквой или буквенно-цифровой координатой блока, к которому подходит линия потока.
Рис. 1. Соединитель
Если схема располагается на нескольких листах, переход линий потока с одного листа на другой обозначается с помощью символа «межстраничный соединитель» (рис. 2). При этом на листе с блоком – источником соединитель содержит номер листа и координаты блока-приемника, а на листе с блоком–приемником – номер листа и координаты блока – источника.
Рис. 2. Межстраничный соединитель
Внутри блоков и рядом с ними делают записи и обозначения (для уточнения выполняемых ими функций) так, чтобы их можно было читать слева направо и сверху вниз независимо от направления потока. Например, на (рис. 3) вид 1 и вид 2 читаются идентично.
Порядковые номера блоков проставляют в верхней части графического символа в разрыве его контура (рис. 1 и 4).
При выполнении схем алгоритмов необходимо выдерживать минимальное расстояние 3 мм между параллельными линиями потоков и 5 мм между остальными символами. В блоках приняты размеры: =10, 15, 20 мм;
=1.5
(рис.3). Если необходимо увеличить размер схемы, то допускается увеличивать
на число кратное пяти.
Схема является исключительно наглядным и простым способом представления алгоритма. При этом не накладывается никаких ограничений на степень детализации в изображении алгоритма. Выбор ее целиком зависит от программиста. Но, нужно иметь ввиду, что излишне общий характер схемы нежелателен из-за малой информативности, а очень детальная схема проигрывает в наглядности. Для особенно сложных и больших алгоритмов, целесообразно составлять несколько схем различных уровней детализации. Схема 1-го уровня отображает весь алгоритм целиком. Схемы 2-го уровня раскрывают логику отдельных блоков схемы 1-го уровня. При необходимости могут быть составлены схемы последующих уровней с еще большей степенью детализации. Такое пошаговое уточнение схемы алгоритма составляет сущность метода нисходящего проектирования, который, в свою очередь, является основой структурного программирования.
Псевдокод
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками [7].
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. В псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В псевдокоде как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных конструкций.
Источник