Алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульно-словесный, графический, язык операторных схем, программа (алгоритмический язык).
Словесный способ представления несложен, но имеет недостатки. Главный недостаток состоит в том, что при таком способе допускается некоторая произвольность изложения, нет четких стандартов описания. Сложные задачи с анализом условий, с повторяющимися действиями и возвратами к предыдущим пунктам трудно представляются в словесном и словесно-формульном виде.
Наибольшее распространение благодаря своей наглядности получил графический способ записи алгоритмов. Одной из форм такого представления являются рисунки, но более строгая формализованная форма – это схемы или графы.
Наиболее распространенной формой представления алгоритма является блок-схема.
Блок-схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций.
Формы записи алгоритма
Блок ввода – вывода
- Условный (логический)
блок — проверка условия
- Блок начала – конца
- Соединитель – для соединения
Любой, даже самый сложный алгоритм, можно представить с помощью трех основных конструкций (структур): последовательности, ветвления и цикла. Каждая структура имеет один вход и один выход.
- В структуре «последовательность» действия выполняются последовательно, сверху вниз, без возвратов (рис. 1, а);
- В структуре «ветвление» выполняется либо одна, либо другая группа действий в зависимости от истинности (выполнения) или ложности (невыполнения) условия (рис. 1, б);
- В структуре «цикл» действия повторяются до тех пор, пока выполняется заданное условие (рис. 1, в).
Рис. 1 – Выполнение заданных условий
В зависимости от того, какие базовые структуры использованы при составлении алгоритмов, различают три основные разновидности алгоритмов:
- линейный;
- ветвящийся;
- циклический.
Линейным называется такой алгоритм, в котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.
Ветвящимся называется такой алгоритм, в котором выбор направления обработки информации зависит от исходных или промежуточных данных (от результатов проверки выполнения какого-либо логического условия).
Различают полную и неполную форму ветвления.
При полной форме ветвления действия выполняются в обоих случаях: и при истинности и при ложности условия. Ей соответствует следующее выражение: если , то , иначе .
Неполной форме ветвления соответствует выражение: если , то .
Самый подробный урок про Блок-схемы, Понимание, Чтение и Создание блок-схем
Циклом называется многократно повторяемый участок вычислений. Алгоритм, содержащий один или несколько циклов, называется циклическим.
Основные понятия циклического алгоритма:
- счетчик цикла – переменная, которая изменяет свое значение при переходе от цикла к циклу;
- тело цикла – действия, которые повторяются;
- начальное значение счетчика цикла – значение, от которого начинает изменяться счетчик цикла;
- конечное значение счетчика цикла – значение, до которого изменяется счетчик цикла;
- шаг – значение, на которое изменяется счетчик цикла.
По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием.
Вспомогательный алгоритм — это блок последовательных действий в основном алгоритме, который выделен в качестве самостоятельного алгоритма, имеющего свое имя. [3]
Вспомогательные алгоритмы выступают в качестве сменных блоков алгоритма, которые могут быть составлены заранее и использованы в разных блок-схемах. Чем крупнее блоки, тем легче проходит сборка алгоритма. Вспомогательный алгоритм всегда является вложенным, если он включается в другой алгоритм. Но вложенная конструкция не является вспомогательным алгоритмом до тех пор, пока ей не дано имя.
К вспомогательным алгоритмам можно отнести процедуры, которые описываются перед выполнением основной программы и служат для выполнения одинаковых действий с различными параметрами.
При разработке алгоритма необходимо пройти минимум две стадии – сначала алгоритм должен быть понятен тому, кто его разрабатывает, а затем его следует преобразовать с учетом специфики среды. В том случае, если эти действия станет выполнять сам разработчик алгоритма, вторая стадия будет отсутствовать.
Источник: algoritmkgu.wordpress.com
Пример различных форм алгоритма
Шаг 1. Сравнить значения чисел А1 и А2; если |А1|>=|А2|, то числу Аmax присвоить значение |А1|, иначе числу Аmax присвоить значение |А2|.
Шаг 2. Сравнить значения чисел А3 и Аmax. Если |А3|>=|Аmax|, то числу Аmax присвоить значение |А3|.
Шаг 3. Конец алгоритма.
Приведенное описание алгоритма является достаточно строгим и позволяет однозначно решить поставленную задачу. Однако, для достаточно сложных алгоритмов описание становится слишком громоздким и ненаглядным. Поэтому содержательную форму используют на начальных стадиях разработки алгоритмов, когда определяются основные этапы решения поставленной задачи.
Графическая форма представления алгоритма
Программная форма представления алгоритма
Writeln(‘Введите три числа’);
if A1>=A2 then Amax:=A1
if A3>=Amax then Amax:=A3;
Writeln(‘Максимальное число ‘,Amax);
Программирование решения задачи
Алгоритм и его программная реализация тесно взаимосвязаны.
Программа– упорядоченная последовательность инструкций компьютера (команд) для решения задачи.
Программное обеспечение– совокупность программ обработки данных и необходимых для их эксплуатации документов.
Программирование– теоретическая и практическая деятельность, связанная с созданием программ.
Программирование является собирательным понятием и может рассматриваться и как наука, и как искусство; на этом основан научно-практический подход к разработке программ.
Программа – результат интеллектуального труда, для которого характерно творчество, поэтому в любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.
Программирование базируется на комплексе научных дисциплин, направленных на исследование, разработку и применение методов и средств разработки программ. При разработке программ используются ресурсоемкие и наукоемкие технологии, высококвалифицированный интеллектуальный труд. По некоторым данным в середине 90-х годов в мире было занято программированием » 2% трудоспособного населения. Совокупный оборот в сфере создания программных средств достигает нескольких сот миллиардов долларов в год. В связи с этим весьма актуальным становится вопрос о разработке и применении эффективных технологий программирования.
Стадии разработки программного продукта
Этот этап представляет собой выполнение четырех взаимосвязанных задач:
- реализация алгоритма на языке программирования;
- отладка программы;
- тестирование программы;
- модификация и сопровождение программы.
· Написание программы -запись разработанного алгоритма на каком-либо языке программирования. ·Отладка.На этом этапе с помощью специальной программы (транслятора) в программе устраняются синтаксические ошибки (связанные с неправильной записью или употреблением языковых конструкций). ·Тестирование. На этом этапе устраняются семантические (смысловые) ошибки. Необходимо проводить тестирование в два этапа: на заведомо правильных, а затем на заведомо неправильных данных. В любом случае программа должна выдавать соответствующие результаты. Как правило, в программе должны быть отражены все особые случаи. Для сложных алгоритмов такая информация, как правило, неизвестна. · Модификация. Программа постоянно модифицируется как на этапе разработки, так и в период опытной эксплуатации. Программы, рассчитанные на долгий срок применения, требуют периодического усовершенствования. Это может быть связано с дополнительными требованиями к ее возможностям, сменой оборудования и т.п. Поэтому необходимо, чтобы программа предоставляла возможность свой модификации без полной повторной реализации. · Сопровождение программного продукта — исправление обнаруженных ошибок, а также поддержка работоспособности программного продукта при переходе на новые версии и внесении изменений. Схема взаимодействия специалистов, связанных с созданием и эксплуатацией программ Основная категория специалистов, занятых разработкой программ – это программисты. Программисты неоднородны по уровню квалификации, а также по характеру своей деятельности. Наиболее часто программисты делятся на системных и прикладных. Системный программистзанимается разработкой, эксплуатацией и сопровождениемсистемногопрограммного обеспечения, поддерживающего работоспособность компьютера и создающего сферу для выполнения программ, обеспечивающих реализацию функциональных задач. Прикладной программистосуществляет разработку и отладку программ для решения функциональных задач. В процессе создания программ на начальной стадии работ участвуют и специалисты – постановщики задач. При создании больших по масштабам и функциям обработки программ (например, операционных систем) – нуженпрограммист-аналитикдля анализа и проектирования комплекса взаимосвязанных программ. Большинство информационных систем основано на работе с базами данных (БД). Если база данных является сложной и используется многими программистами, то возникает проблема организационной поддержки БД, которая выполняется администратором БД. Основным потребителем программ служит конечный пользователь, который относится к категории пользователей-непрограммистов. Он должен иметь элементарные знания и навыки работы с компьютером.
Источник: studfile.net
Способы представления алгоритмов
На практике наиболее распространены следующие способы представления алгоритмов: словесный, формульно-словесный, псевдокод, операторный, графический, программа на алгоритмическом языке.
Самый простой способ представления алгоритма — словесный, который содержит описание алгоритма на естественном языке (например, на русском). Выполнение предписаний алгоритма предполагается в естественной последовательности (в порядке записи), изменение порядка выполнения операций необходимо указать в явном виде, например, «перейти к шагу 3», в этом случае шаги алгоритма должны быть пронумерованы.
В формульно-словесном способе к словесному описанию добавляются формулы для определения значений переменных, при этом каждая переменная должна иметь уникальное имя — идентификатор.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Алгоритмы на псевдокоде могут записываться и читаться как обычный текст.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Псевдокод удобен для пошаговой разработки алгоритма.
Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Примером псевдокода является школьный алгоритмический язык в русской нотации — «Школьный АЯ».
Порядковый номер оператора, независимо от его типа, обозначается индексом. Операторы записываются в строку, для пояснения схемы переходов после логических операторов ставятся сверху или снизу горизонтальные стрелки, указывающие место перехода. Если операторы выполняются в естественном порядке, между ними не ставится разделитель, если после i-ro оператора (1+1)-й не выполняется, между ними ставится разделитель — точка с запятой. Для логических операторов возможно указание условия, по которому программа разветвляется на ветви.
Операторный метод дает наглядное логическое представление алгоритма, однако он был вытеснен графическим способом, который оказался более компактным и наглядным.
При графическом способе представления алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий и т. п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. Приведем символы, используемые для построения блок-схем (таблица 3.1).
Схемы алгоритмов, программ, данных и систем________
Источник: ozlib.com