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

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

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

Само слово «алгоритм» происходит от имени хорезмского учёного Абу Абдуллах Мухаммеда ибн Муса аль-Хорезми. Около 825 года он написал сочинение, в котором впервые дал описание придуманной в Индии позиционной десятичной системы счисления.

Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, первые использовал цифр 0 для обозначения пропущенной позиции в записи числа. В первой половине XII века книга аль-Хрезми в латинском переводе попала в Европу. Ей было дано название «Алгоритмы о счёте индийском». По-арабски книга называлась «Китаб аль-джебрваль-мукабала» («Книга о сложении и вычитании»).

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

Именно в таком значении оно вошло во многие европейские языки. Постепенно значение слова расширялось. Учёные начинали применять его не только к сугубо вычислительным, но и к другим математическим процедурам (степени, дробные показатели, логарифмы)

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

 Этапы появления алгоритма

  • Как пишут авторы книги «Алгоритмы. Построение и анализ» (Томас Кармен, Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн):
  • алгоритмизация  включает в себя разработку, оптимизацию и описание алгоритма решения задачи, запись конечного алгоритма в соответствие с принятыми стандартами, документирование полученного результата. В наиболее общем случае процесс алгоритмизации состоит из следующих основных этапов
  • 1. Краткая содержательная формулировка задачи, решаемой на ЭВМ;
  • 2. Построение математической модели рассматриваемого в задаче объекта или процесса (проверка исполнимости/реализуемости данной задачи, математическая модель – это один из методов этой проверки);
  • 3. Разработка эффективного алгоритма решения задачи;
  • 4. Создание продукта по разработанному алгоритму;
  • 5. Проверка работоспособности («отладка», прорабатывание всех возможных вариантов входных данных и проверка правильности результата в каждом из случаев);
  • 6. Оформление документации (запись нового алгоритма в соответствие с принятыми стандартами)
  • Ряд общих требований для каждого алгоритма:
  1.  Дискретность – алгоритм должен представлять процесс решения задачи как последовательное выполнение некоторых простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, то есть преобразование исходных данных в результат осуществляется во времени дискретно.
  2.  Детерминированность (или определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит формальный характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
  3.  Понятность – алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд. Алгоритм должен быть понятным!
  4.  Результативность (или конечность). Это свойство состоит в том, что при корректно заданных исходных данных алгоритм должен завершать работу (приводить к решению задачи) и выдавать результат за конечное число шагов.
  5.  Массовость – универсальность. Это означает, что алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применения алгоритма. Но это правило не всегда действует, в основном разрабатывается один или несколько алгоритмов для решения одной задачи. Например можно решить задачу с помощью if-then-else или с использованием switch-case.

2) Эффективность алгоритмов

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

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

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

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

Обычно временную эффективность не связывают с конкретной вычислительной установкой,  а  оперируют  только «шагами».  Любой шаг алгоритма реализуется некоторым числом элементарных  инструкций  исполнителя.  Например, найти  сумму  натуральных  чисел  от 1 до  заданного n.

Если воспользоваться  известной  формулой  для суммы  арифметической  прогрессии, то вычисления потребуют лишь 3 шага: сложение, умножение и деление. Если  же  реализовать  вычислительный  процесс  как  циклический:  цикл  с параметром, управляющая переменная «пробежит» значения от 1 до n, – то придется  выполнить n шагов  алгоритма.

Сомнений,  какой  из  алгоритмов более  эффективен,  кажется,  не  возникает.  Однако  вспомните  о «худших случаях»:  при  небольших  значениях n (скажем,  от 2 до 4), «медленный» алгоритм, вероятно, предпочтительнее.

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

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

При  этом  используется  обозначение g(n)=O(f(n)), – читается:  О-большое, – которое  мы  будем относить к интересующим нас дискретным функциям f(n) натурального n и  ко  всем  функциям g(n),  растущим  не  быстрее f(n).  Формулировка  «растущим  не  быстрее»  означает,  что  существует  такая  пара  положительных значений M и n0, что |g(n)|≤ M |f(n0)| для n≥n0.  Еще говорят, что функция g(n) – «порядка f(n) для больших n».  Такая O–нотация дает нам верхнюю оценку временно́й трудоемкости алгоритма  –  его асимптотическую  сложность.  Обратите  внимание,  что  использование констант M и n0,  фигурирующих  в  определении,  фактически  связано  с «большими»  значениями  аргумента n,  и  мало  что  дает  при  его  малых значениях.

  1. Укажем несколько важных свойств O-операций:
  2. (a) f(n)=O(f(n))
  3. (b) c*O(f(n))=O(f(n)), где c – некоторая константа
  4. (c) O(f(n))+O(f(n))=O(f(n))
  5. (d) O(O(f(n)))=O(f(n))
  6. (e) O(f(n))*O(g(n))=O(f(n)*g(n))

Кроме введенной терминологии, полезна и другая, т.н. o–нотация («о-малое»). Обозначение o(f(n)) относится к функциям, которые растут быстрее f(n).

Вновь  обращаясь  к  примеру  с  суммой  арифметической  прогрессии,  можем сказать,  что  асимптотическая  эффективность  алгоритма  непосредственного суммирования n элементов соответствует линейной сложности, поскольку его быстродействие, то есть число шагов, согласно свойству (a), есть O(n).

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

Более  эффективным,  чем  алгоритм  с линейной  трудоемкостью,  является  его  конкурент,  чье  поведение  оценивается как O(log2n). Еще быстрее работает алгоритм с постоянной трудоемкостью – O(1),  с  одним  из  них  мы  уже  имели  дело – это  алгоритм  обмена. Соответственно, «между» O(n) и O(n2) находится место для O(n*log2n).

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

Структура «ветвление» предполагает выполнение одной из двух групп действий в зависимости от выполнения условия в блоке ветвления. Часто используется неполная команда ветвления, когда один из блоков действия отсутствует.

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

Цикл – последовательность команд, которая повторяется до тех пор, пока не будет выполнено заданное условие.

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

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

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

Алгоритмы, включающие в себя два и более различных вида структур

  1.  Способы записи алгоритмов
  2.  Словесная форма

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

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

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

Единственная цель псевдокода – формализовать описание алгоритма.

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

Читайте также:  Бульдозер - студенческий портал

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

  1.  Стандартизация алгоритмов

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

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

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

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

  • Вот примеры стандартов записи некоторых структурных элементов алгоритмов:

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий порталТерминатор: начало и конец процесса обработки данных

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

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий порталПроцесс: элементарная операция по обработке данных

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

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий порталГраницы цикла: начало и конец цикла. Особенности работы цикла записываются в начале или конце, в завсимости от того где осуществляется их проверка (циклы while, until)

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

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий порталРешение: операция с одним входом и несколькими альтернативными выходами, один из которых активизируется после проверки условия, записанного внитри символа (конструкция if — else)

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

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

  1.  Вывод об алгоритмизации как части (этапа) программирования

Алгоритмизация необходима перед самим процессом программирования, так как является процессом преобразования исходной информации к алгоритмическому виду. В ходе программирования и после отладки она необходима для документирования.

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

Формальное следование существующим стандартам документирования алгоритмов, особенно при «не автоматизированном (ручном) исполнении» может существенно замедлить процесс документирования.

Источник: http://5fan.ru/wievjob.php?id=84442

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

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

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

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

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

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

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

Непосредственно же программная среда, в качестве которой выбрана среда ЛОГО, будет изучаться в практикуме.

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

Алгоритмы

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

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

Например, с утра вас призывает радио «На зарядку становись!» Вам предлагается выполнить одно из упражнений в следующей последовательности:

1. Потянитесь, лежа в постели. 2. Сядьте на кровати, поставив ноги на пол. 3. Нагнитесь вперед, пытаясь достать руками пальцы ног. 4. Выгните спину дугой. 5. Сосчитайте до 10.

6. Вернитесь в исходное положение.

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

1. Наберите номер квартиры. 2. Нажмите кнопку «Вызов». 3. Услышав прерывистый сигнал, ждите ответа. 4. Услышав ответ, говорите.

Источник: https://xn—-7sbbfb7a7aej.xn--p1ai/informatika_08/informatika_materialy_zanytii_08_10.html

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

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

Алгоритм в информатике

В настоящее время используются разные способы описания алгоритмов в информатике. Они считаются в данной области основополагающим понятием. Своим названием они обязаны арабскому математику аль-Хорезми.

В одном из произведений он сформулировал особенности операций над числами, производимыми при делении столбиком.

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

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

Особенности алгоритмических действий

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

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

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

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

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

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

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

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

Определенность

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

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

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

Результативность

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

Массовость

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

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

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

Разновидности алгоритмов

В зависимости от того, для какой цели он разрабатывается, существует несколько видов алгоритмов:

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

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

Алгоритмизация

Разнообразные алгоритмы, свойства алгоритмов, способы описания алгоритмов — все это рассматривается в отдельном разделе информатики.

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

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

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

Требования

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

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

Третье – это дискретность: алгоритм составлен из команд, в которых конечно число данных. Четвертое правило предполагает детерминированность, пятое – результативность.

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

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

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

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

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

Общее описание алгоритма

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

Читайте также:  Основные термы атомов - студенческий портал

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

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

Вычислительная основа

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

Макроструктура алгоритма

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

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

Схема реализации

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

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

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

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

Заключение

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

Источник: https://www.syl.ru/article/317917/sposobyi-opisaniya-algoritmov-osobennosti-i-rekomendatsii

Алгоритмизация, алгоритмы, языки и программы

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

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

Изобразительные средства для описания (представление) алгоритма

Для записи алгоритма решения задачи применяются следующие изобразительные способы их представления:

  1. Словесно- формульное описание.
  2. Блок-схема (схема графических символов).
  3. Алгоритмические языки.
  4. Операторные схемы.
  5. Псевдокод.
  • Для записи алгоритма существует общая методика:
  1. Каждый алгоритм должен иметь имя, которое раскрывает его смысл.
  2. Необходимо обозначить начало и конец алгоритма.
  3. Описать входные и выходные данные.
  4. Указать команды, которые позволяют выполнять определенные действия над выделенными данными.
  1. Общий вид алгоритма:
  • название алгоритма;
  • описание данных;
  • начало;
  • команды;
  • конец.

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

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

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

Схемы алгоритмов:

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

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

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

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

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

Принципы разработки алгоритмов и программ

  • Типы алгоритмических процессов
  • По структуре выполнения алгоритмы и программы делятся на три вида:
  • линейные;
  • ветвящиеся;
  • циклические;

Линейные вычислительные процессы

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

Алгоритмы разветвляющейся структуры

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

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

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий портал Рис. 2.

Циклические вычислительные процессы

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

Цикл – последовательность команд, которая повторяется до тех пор, пока не будет выполнено заданное условие.

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

Существуют две схемы циклических вычислительных процессов.

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий портал Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов. - Студенческий портал Рис. 3.

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

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

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

Языки программирования

Языки программирования – это искусственные языки записи алгоритмов для исполнения их на ЭВМ. Программирование (кодирование) — составление программы по заданному алгоритму.

Классификация языков программирования. В общем, языки программирования делятся на две группы: операторные и функциональные. К функциональным относятся ЛИСП, ПРОЛОГ и т.д.

Операторные языки делятся на процедурные и непроцедурные (Smalltalk, QBE). Процедурные делятся на машино — ориентированные и машино – независимые.

  1. К машино – ориентированным языкам относятся: машинные языки, автокоды, языки символического кодирования, ассемблеры.
  2. К машино – независимым языкам относятся:
  1. Процедурно – ориентированные (Паскаль, Фортран и др.).
  2. Проблемно – ориентированные (ЛИСП и др.).
  3. Объектно-ориентированные (Си++, Visual Basic, Java и др.).

Источник: https://www.lessons-tva.info/edu/e-inf1/e-inf1-4-2.html

Способы описания алгоритмов

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

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

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

Целью реферата является раскрытие базовых знаний об элементах  теории алгоритмов.

Для решения поставленной цели необходимо выполнить следующие
задачи:

    • Изучить и проанализировать литературу;
    • Раскрыть базовые понятия элементов теории алгоритмов;
    • Рассмотреть свойства и виды алгоритмов;
    • Сформировать представление о способах записи алгоритмов.

Я выбрал данную тему из-за ее актуальности.

Знакомство с понятием алгоритма я предлагаю начать с рассмотрения примера.

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

  1. Изучить образ дракона по имеющейся картинке.
  2. Вылепить голову.
  3. Вылепить туловище.
  4. Вылепить хвост.
  5. Вылепить четыре ноги.
    1. Сравнивая с картинкой, уточнить детали каждой вылепленной части дракона.

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

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

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

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

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

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

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

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

Читайте также:  Тип кольчатые черви: общая характеристика и системы органов

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

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

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

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

    1. Достать ключ из кармана.
    2. Вставить ключ в замочную скважину.
    3. Повернуть ключ два раза против часовой стрелки.
    4. Вынуть ключ.

Представьте, что вас
пригласили в гости и подробно объяснили, как добраться:

    1. Выйти из дома.
    2. Повернуть направо.
    3. Пройти два квартала до остановки.
    4. Сесть в автобус №5, идущий к центру города.
    5. Проехать три остановки.
    6. Выйти из автобуса.
    7. Найти по указанному адресу дом и квартиру.

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

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

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

А если поменять местами, предположим, пятое и второе действия во втором примере, алгоритм станет не выполнимым.

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

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

Кроме того, необходимо указать точное количество остановок, которое надо проехать, — скажем, три.

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

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

    1. Отрезать ломтик хлеба.
    2. Намазать его маслом.
    3. Отрезать кусок любого другого пищевого продукта (колбасы, сыра).
    4. Наложить отрезанный кусок на ломоть хлеба.

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

    1. Из числа А вычесть число В.
    2. Если получилось отрицательное значение, то сообщить, что число B больше.
    3. Если получилось положительное значение, то сообщить, что число А больше.

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

    1. Из числа А вычесть число В.
    2. Если получилось отрицательное значение, то сообщить, что число B больше.
    3. Если получилось положительное значение, то сообщить, что число А больше.
    4. Если получилось ноль, то сообщить, что числа равны.

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

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

Хочется заметить, что в 1969 году Эдсгер В. Дийкстра в статье «Структуры данных и алгоритмы» доказал, что для записи любого алгоритма достаточно трех основных алгоритмических конструкций: линейных, ветвящихся, циклических. Рассмотрим эти конструкции.

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

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

  1. Циклический алгоритм –
    описание действий, которые должны повторяться указанное число
    раз или пока не выполнено заданное условие.
  2. Перечень повторяющихся
    действий называется телом цикла.
  3. Разветвляющийся алгоритм – алгоритм, в котором в зависимости
    от условия выполняется либо одна, либо другая последовательность действий.
  4. Вспомним сюжет из русской сказки. Царевич останавливается у развилки дороги и видит камень с надписью: «Направо пойдешь – коня потеряешь, налево пойдешь – сам пропадешь…»
  5. Подобная ситуация, заставляющая принимать решение в зависимости
    от некоторого условия, постоянно встречается в повседневной жизни.
    • Если пошел дождь, то надо открыть зонт.
    • Если болит горло, то прогулку следует отменить.
    • Если прозвенел будильник, то надо вставать и идти в школу и т.д.

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

Логика учит правильно
формулировать условие, под которым
понимается предложение, начинающееся со слова «если» и заканчивающееся
перед словом «то». Условие может
принимать значение «истина», когда оно выполнено, или «ложь», когда оно не выполнено. От значения условия зависит наше дальнейшее действие.

Источник: https://www.stud24.ru/mathematic/sposoby-opisaniya-algoritmov/484900-1884265-page1.html

Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов

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

Алгоритмизация техникой разработки алгоритма решения задач на ЭВМ.

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

Алгоритм представляет собой точное описание определенного процесса, инструкцию по ᴇᴦο выполнению.

Процесс разработки алгоритма — достаточно сложный и трудоемкий.

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

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

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

В качестве примера алгоритма можно вспомнить известный всœем со школы арифметический метод сложения двух положительных чисел ʼʼстолбикомʼʼ. Алгоритм даннои̌ задачи представим в виде системы следующих действий:

  • выделим в слагаемых разряды единиц и сложим единицы;
  • при получении суммы меньшей 10 запишем её в разряде единиц под нижним числом;
  • при получении суммы большей или равнои̌ 10 запишем в разряде единиц только количество единиц, заᴛᴇᴍ выделим в слагаемых разряд десятков и запишем полученный при сложении единиц десяток над разрядом десятков первого (верхнего) слагаемого;
  • сложим десятки и т. д.

Понятие алгоритма в теорию и практику обучения вошло в конце 50 -х годов прошлого столетия в связи с развитием программированного обучения и применением обучающимися машин.

Способы описания алгоритмов

Существуют различные методы описания алгоритмов. Приведем главные ᴎɜ них:

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

Алгоритмический язык формальным языком, предназначенным записи алгоритма. В ᴇᴦο состав входят набор основных символов (алфавит), система точных правил построения текстов (синтаксис) и система соответствия синтаксически допустимых текстов языка описываемым действиям и объектам (семантика).

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

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

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

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

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

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

  1. Наличие ввода исходных данных.
  2. Наличие вывода результата выполнения.
  3. Однозначность, так как компьютеру понятны лишь однозначные инструкции.
  4. Общность, исходя из которой алгоритм может использоваться не только решения однои̌ задачи, но и целого класса задач.
  5. Корректность, согласно которой при выполнении алгоритма должно быть всœегда правильное решение задачи.
  6. Конечность означает, что решение задачи необходимо получить за конечное число шагов.
  7. Эффективность означает, что решения задачи нужно использовать ограниченные ресурсы компьютера (объем оперативнои̌ памяти, процессорное время и т. д.).

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

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

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

Блок-схемы

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

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

Обязательными блоками являются блоки начала и конца алгоритма. Между ними размещаются остальные блоки алгоритма.

  • Операторный блок (блок действия) содержит команды обработки данных.
  • Блок проверки условия предполагает 2 варианта дальнейшᴇᴦο развития решения задачи, в зависимости от того или иного выполнения поставленного условия.
  • Блоки ввода или вывода данныхВажно сказать, что для выполнения алгоритма необходимы не только команды, но и данные, поступающие ᴎɜ вне
  • Важно сказать, что для получения данных используется блок ввода
  • Ни на рисунке представлены графические изображения основных блоков алгоритма.

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

Источник: http://referatwork.ru/info-lections-55/tech/view/1376_algoritmizaciya_ponyatie_algoritma_svoystva_i_sposoby_opisaniya_algoritmov

Ссылка на основную публикацию
Adblock
detector