Алгоритмизация задач что это за программа

Этапы решения задач на компьютере. Понятие алгоритма. Свойства алгоритма

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

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

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

Как БЫСТРО изучить АЛГОРИТМЫ и научиться решать задачи? Книги, сайты, инструменты

Третий этап — алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения задачи.

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

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

Шестой этап — тестирование и отладка программы. На этом этапе происходят исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок.

При этом программисту приходится выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы. Отладка программы — сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на контрольных примерах. Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклиться (т. е. бесконечно повторять одно и то же действие); на другом — дать явно неверный или бессмысленный результат и т. д. Сложные программы отлаживают отдельными фрагментами. Для повышения качества выполнения этого этапа используются специальные программы — отладчики, которые позволяют исполнить программу “по шагам” с наблюдением за изменением значений переменных, выражений и других объектов программы, с отслеживанием выполняемых операторов.

АЛГОРИТМЫ в ПРОГРАММИРОВАНИИ для новичков | Левенштейн, Фибоначчи, Факториал и т.д.

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

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

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

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

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

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

Дискретность

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

Понятность

Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, которые умеет делать исполнитель алгоритма, и назовем его системой команд исполнителя (СКИ). Тогда понятными будут являться только те команды, которые попадают в этот список. Именно из такой формулировки становится ясно, почему компьютер такой «привередливый» при приеме введенных в него команд: даже если неверно написана всего одна буква, команда уже не может быть обнаружена в СКИ.

Источник: cyberpedia.su

Алгоритмизация и программирование

Алгоpитм – это точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Название «алгоритм» произошло от латинской формы имени среднеазиатского математика аль-Хорезми — Algorithmi.

Исполнитель алгоритма — это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Исполнителя характеризуют: среда, элементарные действия, система команд, отказы. Среда (или обстановка) — это «место обитания» исполнителя.

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

В информатике универсальным исполнителем алгоритмов является компьютер.

2. Свойства алгоритмов

Можно выделить следующие основные свойства алгоритмов:

1) Понятность для исполнителя — т.е. исполнитель алгоритма должен знать, как его выполнять.

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

3) Определенность — т.е. каждое правило алгоритма должно быть четким, однозначным и не оставлять места для разночтений.

4) Результативность (или конечность). Это свойство состоит в том, что алгоритм должен приводить к решению задачи за конечное число шагов.

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

3. Формы представления алгоритмов

Наиболее распространенными формами представления алгоритмов являются: словесная, графическая, псевдокоды и программная.

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

Пример. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.

Алгоритм: 1) задать два числа; 2) если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; 3) определить большее из чисел; 4) заменить большее из чисел разностью большего и меньшего из чисел; 5) повторить алгоритм с шага 2.

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

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

а) строго не формализуемы;

б) страдают многословностью записей;

в) допускают неоднозначность толкования отдельных предписаний.

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

Подробнее об этом ниже…

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

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

Читайте также:
Скелет программы что это

Пример. 1) задать два числа x и y; 2) ЕСЛИ x=y, ТО НОД=x и КОНЕЦ; 3) ЕСЛИ x>y, ТО x=x-y, ИНАЧЕ y=y-x; 4) ПЕРЕЙТИ в пункт 2.

4) Программная форма представляет собой тексты программ, написанных на различных языках программирования.

Ниже приведены графические обозначения на блок-схемах.

Структура “следование”

Полная развилка

Неполная развилка

Цикл с предусловие

Цикл с постусловием (цикл ДО)

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

На схемах СЕРИЯ обозначает один или несколько любых операторов; УСЛОВИЕ есть логическое выражение (ЛВ) (если его значение ИСТИНА, переход происходит по ветви ДА, иначе — по НЕТ). На схеме цикла с параметром использованы обозначения: ПЦ — параметр цикла, НЗ — начальное значение параметра цикла, КЗ — конечное значение параметра цикла, Ш — шаг изменения параметра цикла.

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

Источник: studfile.net

Алгоритмизация — это процесс построения алгоритма решения задачи. Алгоритм и алгоритмизация в информатике

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

Классический подход

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

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

Возможные определения

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

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

Процессы и этапы

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

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

  • Какие системы информационной обработки будут эффективными в конкретном случае?
  • Каковы математические методики функционирования применительны к крупным системам?

Особенности вопроса

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

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

Как это работает?

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

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

Кому и как?

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

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

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

Зачем это нужно?

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

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

Информация и алгоритмы

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

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

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

  • линейные;
  • циклические;
  • ветвления;
  • смешанные.

А если поподробнее?

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

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

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

Продолжая тему

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

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

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

Инструкции и алгоритмы

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

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

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

Алгоритмизация: подход расширенный и специализированный

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

Объект алгоритмизации

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

Читайте также:
Reporting services service что это за программа

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

Алгоритмизация применительно к реальности

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

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

А что с обучением?

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

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

Источник: fb.ru

Основы алгоритмизации задач

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

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

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

• в понятии алгоритма не конкретизируется исполнитель, поэтому

им может быть как техническое (кибернетическое) устройство,

так и человек или коллектив;

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

Понятие алгоритма не детализирует характер выполняемых в его рамках операций (действий). Эти операции могут проводиться как над материальными объектами, так и над имеющимися данными (информацией). Алгоритмы последнего типа составляют основу информационных технологий и являются предметом последующего рассмотрения.

Приведем примеры алгоритмов.

В качестве первого примера представим алгоритм действий пешехода при переходе улицы. Данный алгоритм ориентирован на выполнение его человеком и предусматривает выполнение как информационных операций, так и действий материальных объектов. Итак, алгоритм перехода улицы.

П. 1. Определить, является ли переход управляемым (т.е. установлен ли на нем светофор). Если светофор имеется, перейти к п. 3, если отсутствует — к п. 2.

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

П. 3. Если переход является управляемым, следует убедиться, «горит» ли зеленый сигнал светофора. Если «да», перейти улицу; если «нет» — ждать его появления, после чего перейти улицу. После этого перейти к п. 4.

П. 4. После перехода продолжить запланированные действия (алгоритм завершен).

Заметим, что приведенный алгоритм пригоден, вообще говоря, лишь при выполнении нескольких условий. Во-первых, при использовании «в районе операции по переходу» правостороннего дорожного движения (см. п. 2).

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

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

Рис. 1.8. Табличная форма записи алгоритма вычисления арифметического выражения

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

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

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

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

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

Примеры записи алгоритмов с использованием блок-схем представлены на рис. 1.4 и 1.5.

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

Запись алгоритма в операторной форме производится с соблюдением следующих правил:

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

Пример записи в операторной форме алгоритма определения корней квадратного уравнения представлен на рис. 1.9.

П, — оператор ввода исходных данных (а, Ь, с);

П2 — оператор печати исходных данных;

А3 — оператор расчета величины Д=Ь г -4ас

Р4 — оператор проверки условия Д >=0;

А5 — оператор расчета действительных корней;

А6 — оператор расчета мнимых корней;

П7 — оператор вывода на печать значений корней;

Я8 — оператор останова.

Рис. 1.9. Операторная форма записи алгоритма вычисления корней квадратного уравнения

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

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

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

Читайте также:
Lynx что за программа

Пример записи с использованием псевдокода алгоритма, реализующего подсчет числа символов в кодограмме, приведен на рис. 1.10.

запись в счетчик слов 0;

установить указатель на первую запись текста;

ПОКА символ не есть «.» ПОВТОРЯТЬ

ЕСЛИ символ есть пробел

ТО счетчик слов увеличить на 1;

перевести указатель на следующий символ;

Взять число в счетчике слов в качестве результата

Рис. 1.10. Запись алгоритма с использованием псевдокода

В настоящее время для записи сравнительно несложных алгоритмов довольно часто используют языки программирования (как правило, высокого уровня). Очевидны по крайней мере два недостатка такой формы записи: исключительно низкая наглядность (кроме тривиально простых алгоритмов) и необходимость знания используемого языка программирования. Приведем простейший пример фрагмента программы перевода долларов в рубли, созданной в среде программирования Borland Builder C++ (язык — C++):

/* Программа перевода долларов в рубли */

int DollarsNum Rate Value ; // Исходные данные

int Result; // Результат

Dollars N um = StrToInt (Dollars->Text) ;

Rate Value = StrToInt (Rate->Text) ;

Result = Dollars N urn * Rate Value ;

Labell->Caption = IntToStr(Result) ;

В результате выполнения такой программы в поле надписи Labeil появится сумма в рублях — результат перевода значения поля ввода EditI Dollars (суммы в долларах) по курсу, заданному в поле ввода Edit2 Rate.

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

Простая команда соответствует одному элементарному шагу алгоритма. Применительно к алгоритму рис. 1.5 такими элементарными командами являются команды У = А+ ВиУ = А— В. Простые команды в блок-схемах изображаются в виде блока, имеющего один вход и один выход.

Из совокупности простых команд образуются составные команды, которые имеют сложную структуру. Их всех сложных команд целесообразно выделить три основных типа:

  • • команда следования;
  • • команда ветвления;
  • • команда повторения (цикла).

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

Рис. 1.11. Блок-схема команды следования

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

На рис. 1.12 представлена блок-схема команд ветвления в полной (а) и сокращенной (б) форме.

Рис. 1.12. Команды ветвления в полной (а) и сокращенной (б) форме

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

  • • команда повторения с предусловием;
  • • команда повторения с постусловием.

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

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

Блок-схемы команд повторения с предусловием (а) и постусловием (б) представлены на рис. 1.13.

Рис. 1.13. Команды повторения (цикла) с предусловием (а) и постусловием (б)

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

В заключение отметим три важных обстоятельства. Во-первых, при создании информационных и расчетных задач, как правило, сначала разрабатываются обобщенные, а затем детальные алгоритмы, по которым и осуществляется собственно программирование (кодирование). При этом для записи обобщенных и детальных алгоритмов по нормативно закрепленным правилам [5] могут использоваться различные формы. Во-вторых, перечисленные типовые конструкции алгоритмов стали основой одной из довольно широко применяемых технологий создания программ — структурного программирования, позволяющего разрабатывать весьма наглядные древовидные архитектуры программ, которые легко читаются и при необходимости модифицируются. В-третьих, существуют более современные средства алгоритмизации задач (САБЕ-средства), в которых для записи алгоритмов используются специальные диаграммы различного вида (см. п. Ю.З).

Источник: studref.com

Алгоритмизация задач и процессов

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

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

Решим твою учебную задачу всего за 30 минут
Попробовать прямо сейчас

Определение термина алгоритм

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

Определение 2

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

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

«Алгоритмизация задач и процессов»
Готовые курсовые работы и рефераты
Консультации эксперта по предмету
Помощь в написании учебной работы

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

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

Замечание 1

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

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

Пример алгоритма

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

  1. Необходимо выяснить тип пешеходного перехода, то есть, имеется ли светофор или он отсутствует. Если светофор установлен, то переходим к пункту 4, если его нет, то переходим к пункту 2.
  2. При отсутствии светофора необходимо убедиться, что есть знак и разметка на дороге «пешеходный переход».
  3. Остановиться в начале пешеходного перехода и убедиться, что автотранспорт остановился или отсутствует, после чего начать движение по переходу, завершить переход и затем перейти к пункту 5.
  4. Поскольку движение управляется светофором, необходимо определить цвет сигнала пешеходного светофора. Если горит красный, надо ждать зелёного и затем начать движение по переходу. По завершению перехода улицы, перейти к пункту 5.
  5. Алгоритм завершен, можно продолжить намеченные ранее действия.

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

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

Формы записи алгоритма

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

  • Представление в виде таблицы.
  • Представление в словесной форме.
  • Представление алгоритма в формате блок-схемы.
  • Представление алгоритма в виде набора операторов.
  • Представление алгоритмов в формате псевдокодов.
  • Представление алгоритма на выбранном языке программирования.

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

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

Источник: spravochnick.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru