Виды алгоритмов в информатике: примеры. Под каждым алгоритмом запиши свойство растений
Основные свойства алгоритма
11
Элементы теории алгоритмов
Алгоритм— понятие, относящееся к фундаментальным основам информатики. Оно возникло задолго до появления компьютеров и является одним из основных понятий математики.
Слово «алгоритм»произошло от имени выдающегося средневекового ученогоМухамеда ибн Муса Ал-Хорезми(IXвек н.э.), сокращенноАл-Хорезми. В латинском переводе одного из трудов Ал-Хорезми правила выполнения действий начинались словамиDIXIT ALGORIZMI(Алгоризми сказал), в других латинских переводах автор именовалсяALGORITHMUS(Алгоритмус).
У понятия «алгоритм»нет четкого, однозначногоопределенияв математическом смысле. Можно дать толькоописание(пояснение) этого понятия. Для пояснения понятия«алгоритм»большое значение имеет определение понятия«исполнитель алгоритма». Алгоритм формулируется в расчете на конкретного исполнителя.
Алгоритм— руководство к действию для исполнителя, поэтому значение слова «алгоритм» близко по смыслу к значению слов «указание» или «предписание».
Алгоритм— понятное и точноепредписание(указание) исполнителю совершить определенную последовательность действий для достижения указанной цели или решения поставленной задачи.
Алгоритм— точное предписание, которое задает вычислительный процесс, начинающийся с произвольного исходного данного из некоторой совокупности возможных для этого процесса данных, направленный на получение полностью определяемого этими исходными данными результата.
Понятно, что сказанное не является определением в математическом смысле, а лишь отражает интуитивное понимание алгоритма (в математике нет понятия «предписание», неясно, какова должна быть точность, что такое «понятность» и т.д.).
Массовость.
Алгоритм имеет некоторое число входных величин — аргументов, задаваемых до начала исполнения. Цель выполнения алгоритма — получение результата (результатов), имеющего вполне определенное отношение к исходным данным. Алгоритм указывает последовательность действий по переработке исходных данных в результаты. Для алгоритма можно выбирать различные наборы входных данных из множества допустимых для этого процесса данных, т.е. можно применять алгоритм для решения целого класса задач одного типа, различающихся исходными данными. Это свойство алгоритма обычно называют массовостью. Однако существуют алгоритмы, применимые только к единственному набору данных. Можно сказать, что для каждого алгоритма существует свой класс объектов, допустимых в качестве исходных данных. Тогда свойствомассовости означает применимость алгоритма ко всем объектам этого класса.
Понятность.
Чтобы алгоритм можно было выполнить, он должен быть понятен исполнителю. Понятность алгоритмаозначает знание исполнителя о том, что надо делать для исполнения этого алгоритма.
Дискретность.
Алгоритм представляется в виде конечной последовательности шагов (алгоритм имеет дискретнуюструктуру) и его исполнение расчленяется на выполнение отдельных шагов (выполнение очередного шага начинается после завершения предыдущего).
Конечность.
Выполнение алгоритма заканчивается после выполнения конечного числа шагов. При выполнении алгоритма некоторые его шаги могут повторяться многократно. В математике существуют вычислительные процедуры, имеющие алгоритмический характер, нонеобладающие свойствомконечности.
Определенность.
Каждый шаг алгоритма должен быть четко и недвусмысленно определени не должен допускать произвольной трактовки исполнителем. Следовательно, алгоритм рассчитан начисто механическое исполнение.Именноопределенность алгоритма дает возможность поручить его исполнениеавтомату.
Эффективность.
Каждый шаг алгоритма должен быть выполнен точно и за конечное время. В этом смысле говорят, что алгоритм должен быть эффективным, т.е. действия исполнителя на каждом шаге исполнения алгоритма должны быть достаточно простыми, чтобы их можно было выполнить точно и за конечное время. Обычно отдельные указания исполнителю, содержащиеся в каждом шаге алгоритма, называюткомандами. Таким образом, эффективность алгоритма связана с возможностью выполнения каждой команды за конечное время. Совокупность команд, которые могут быть выполнены конкретным исполнителем, называетсясистемой команд исполнителя. Следовательно, алгоритм должен быть сформулирован так, чтобы содержать только те команды, которые входят в систему команд исполнителя. Кроме того, эффективность означает, что алгоритм может быть выполнен не просто за конечное, а за разумно конечное время.
Приведенные выше комментарии поясняют интуитивное понятие алгоритма, но само это понятие не становится от этого более четким и строгим. Тем не менее, в математике долгое время использовали это понятие. Лишь с выявлением алгоритмически неразрешимых задач, т.е. задач, для решения которых невозможно построить алгоритм, появилась настоятельная потребность в построении формального определения алгоритма, соответствующего известному интуитивному понятию. Интуитивное понятие алгоритма в силу своей неопределенности не может быть объектом математического изучения, поэтому для доказательства существования или несуществования алгоритма решения задачи было необходимо строгое формальное определение алгоритма.
Построение такого формального определения было начато с формализации объектов (операндов) алгоритма, так как в интуитивном понятии алгоритма его объекты могут иметь произвольную природу. Ими могут быть, например, числа, показания датчиков, фиксирующих параметры производственного процесса, шахматные фигуры и позиции и т.п. Однако предполагая, что алгоритм имеет дело не с самими реальными объектами, а с их изображениями, можно считать, что операнды алгоритма— слова в произвольном алфавите. Тогда получается, что алгоритм преобразует слова в произвольном алфавите в слова того же алфавита. Дальнейшая формализация понятия алгоритма связана с формализацией действий над операндами и порядка этих действий. Одна из таких формализаций была предложена в 1936 году английским математиком А.Тьюрингом, который формально описал конструкцию некоторой абстрактной машины (машины Тьюринга) как исполнителя алгоритма и высказал основной тезис о том, что всякий алгоритм может быть реализован соответствующей машиной Тьюринга. Примерно в это же время американским математиком Э.Постом была предложена другая алгоритмическая схема —машина Поста, а в 1954 году советским математиком А.А.Марковым была разработана теория классов алгоритмов, названных имнормальными алгорифмами, и высказан основной тезис о том, что всякий алгоритм нормализуем.
Эти алгоритмические схемы эквиваленты в том смысле, что алгоритмы, описываемые в одной из схем, могут быть также описаны и в другой. В последнее время эти теории алгоритмов объединяют под названием логические.
Логические теории алгоритмов вполне пригодны для решения теоретических вопросов о существовании или несуществовании алгоритма, но они никак не помогают в случаях, когда требуется получить хороший алгоритм, годный для практических применений. Дело в том, что с точки зрения логических теорий алгоритмы, предназначенные для практических применений, являются алгоритмами в интуитивном смысле. Поэтому при решении проблем, возникающих в связи с созданием и анализом таких алгоритмов, нередко приходится руководствоваться лишь интуицией, а не строгой математической теорией. Таким образом, практика поставила задачу создания содержательной теории, предметом которой были бы алгоритмы, как таковые, и которая позволяла бы оценивать их качество, давала бы практически пригодные методы их построения, эквивалентного преобразования, доказательства правильности и т.п.
Содержательная (аналитическая) теория алгоритмов стала возможной лишь благодаря фундаментальным работам математиков в области логических теорий алгоритмов. Развитие такой теории связано с дальнейшим и расширением формального понятия алгоритма, которое слишком сужено в рамках логических теорий. Формальный характер понятия позволит применять к нему математические методы исследования, а его широта должна обеспечить возможность охвата всех типов алгоритмов, с которыми приходиться иметь дело на практике.
studfiles.net
Свойства и способы записи алгоритмов
В информатике понятие алгоритмов считается базовым. Именно этот метод является общим в программировании и моделировании. Для того чтобы понять структуру инструкций, необходимо узнать их свойства и то, для чего они применяются. В статье опишем способы записи алгоритмов в информатике, их варианты создания, также постараемся разобраться, почему они так важны для программирования.
Общие сведения
Алгоритмы считаются объектом изучения дисциплины, которая тесно переплетается с математикой и информатикой. Больше того, эти способы записи примыкают к такой науке, как логика. Данные инструкции позволяют разрабатывать методы для реализации задач, а на практике помогают также работать с информационными технологиями. Таким образом, алгоритмизация выступает в качестве набора определенных приемов, которые способны при помощи особых навыков функционировать с языковыми средствами.
Само слово «алгоритм» происходит от латинской формы имени математика IX века аль-Хорезми. Он стал первым, кто смог составить особенности работы с арифметическими действиями. Изначально инструкциями считались обычные правила выполнения сложения, вычитания, умножения, деления. Сейчас же алгоритм – это определенный способ действия, который при помощи установленного количества шагов приводит к полному решению поставленной задачи.
Свойства алгоритмов
Алгоритм должен быть составлен таким образом, чтобы пользователь или другое выполняющее устройство полностью его понимали. Все шаги должны быть поняты однозначно, только в таком случае, следуя всем командам, можно получить эффективный результат. Поэтому на алгоритмы и их запись вводятся определенные требования. Их суть в том, чтобы все действия были истолкованы верно. Именно эти требования называются свойствами.
Свойство № 1
Первоначальное требование к алгоритму заключается в том, что каждый шаг должен выполняться отдельно и последовательно. Такая запись должна быть полностью разбита на блоки, представлять собой упорядоченную совокупность предписаний, команд и операторов. Инструкция должна образовывать дискретную структуру. Это делается для того, чтобы каждый отдельный шаг выполнялся строго после завершения предыдущего. Такое свойство называется дискретностью. Как правило, на письме все шаги записываются при помощи сквозной нумерации, однако это требование не обязательно.
Свойство № 2
Все алгоритмы, которые используются на практике, ориентированы на определенного исполнителя. Именно поэтому инструкция должна составляться конкретно для него самого. Соответственно нужно примерно представлять, какие команды будут понятны тому, для кого алгоритм написан, а какие для него неоднозначны. Каждый исполнитель (им может быть человек, компьютер и другая техника) обладает своей системой команд. Соответственно необходимо использовать только те операторы, которые имеются в его памяти. Это свойство называется понятностью.
Свойство № 3
Каждый шаг должен быть полностью понятным, не восприниматься неоднозначно. Таким образом, каждая из записей алгоритма должна правильно пониматься любым исполнителем. Соответственно после совершения каждой из них и выполнения предписанной инструкции различной техникой результат не должен изменяться. В данном пункте речь идет о том, что запись алгоритма – максимально точный, четкий, полный и полностью детализированный шаг. Это делается для того, чтобы исполнителю не требовалось принимать какие-либо решения. Он должен правильно понимать, что от него требуется. Также при составлении алгоритма нужно продумывать все таким образом, чтобы исполнитель понимал последовательность шагов. Все должно быть предельно ясно. Это свойство называется детерминированностью.
Виды алгоритмов по способу записи
Как можно записывать алгоритмы? Есть наиболее популярные способы. Речь идет о словесном, формально-словесном, блок-схемном, диаграммном методах. А также о псевдокоде и языках программирования. Рассмотрим некоторые из видов записи алгоритмов.
Словесный способ
Словесный способ является наиболее понятным для обычного человека. Благодаря алгоритму, записанному в таком виде, каждый шаг может понять любой исполнитель. Этот способ задается при помощи естественного языка в произвольной форме.
Формально-словесный способ
Это форма записи алгоритмов, которая представляет собой инструкцию. Она обязательно включает в себя математические символы. Присутствует словесное объяснение. Это позволяет увеличить спектр решаемых задач.
Блок-схемы
Блок-схемный способ представляет собой графическое изображение алгоритма. Нужно отметить, что их расшифровка является единой для всех. Каждый этап описанного процесса имеет свою фигуру либо блок, имя графического изображения поясняет, что необходимо делать исполнителю.
Языки программирования
Более трудной формой записи алгоритмов для многих людей является запись инструкции в виде программы. В данном случае используются языки программирования. Для того чтобы составить алгоритм на одном из них, необходимо знать соответствующие команды и иметь навыки.
Псевдокод
Псевдокод является системой различных обозначений, которые необходимы для единой записи всех алгоритмов. Он занимает промежуточное место между такими методами, как естественный и формальный. Он максимально близок к первому, однако в данном способе записи алгоритмов могут использоваться различные конструкции и математические обозначения. В такую форму инструкции не принято вводить синтаксические правила, которые присущи формальным методам записи. Это позволяет максимально облегчить его проектирование. В псевдокоде часто используются небольшие конструкции, которые относятся к формальным языкам. Это дает возможность переходить от записи на описываемом методе на другие варианты составления инструкции. Более того, в таком способе записи алгоритмов имеются специальные служебные слова, смысл которых используется в четко определенных ситуациях.
Понятие алгоритма и свойства алгоритма. Виды алгоритмов
Понятие алгоритма и свойства алгоритма представляют собой одни из наиболее важных понятий в информатике. Многие люди на сегодняшний день, в век компьютерных технологий, задумываются о том, что это такое, и начинают постепенно по тем или иным причинам более детально вникать в основы информатики, в то время как современное поколение проходит этот материал уже в шестом классе.
Что это такое?
Что же такое понятие алгоритма и свойства алгоритма?
Алгоритм – это определенная последовательность действий, то есть в принципе нам приходится сталкиваться с ними каждый день, хотя мы можем даже этого не осознавать.
Человек и алгоритм
К примеру, если мы просим кого-то из своих членов семьи купить что-то в магазине, мы задаем алгоритм действий, то есть подробно рассказываем, какие конкретно продукты нужно покупать, в каком количестве, а также какие требования предъявляются к каждому из них. При этом, как говорилось выше, задается четкий алгоритм действий, например:
- Зайти в определенный магазин.
- Узнать, продается ли там белый хлеб.
- Узнать, свежий ли он.
- Если ответы на вопросы 2 и 3 «да», то в таком случае покупается две буханки.
Конечно, может показаться, что процедура является достаточно обыденной, и подобное ее описание является достаточно объемным. Но на самом деле, если речь идет о том, что такое понятие алгоритма и свойства алгоритма в современной информатике, то там инструкции могут быть гораздо более объемными, так как вышеприведенный алгоритм является одним из простейших.
Алгоритмы в природе
Каждый человек постоянно решает огромнейшее количество самых разнообразных задач, имеющих разную сложность, при этом некоторые из них являются настолько простыми, что решаются полностью автоматически, даже не воспринимаясь как определенная задача. К примеру: закрыть дверь на ключ, умыться, позавтракать, покормить семью и т. д.
Но есть и другие задачи, которые являются настолько сложными, что для их решения требуются длительные размышления, а также немалое количество усилий, чтобы изначально найти решение, а уже потом достичь поставленной цели. К таким задачам можно отнести: выучить иностранный язык, заработать определенное количество денег и другие. Другими словами, для выполнения таких задач требуется гораздо больше сложных действий по сравнению с тем, сколько их требуется для выполнения задачи «купить хлеб», но на самом деле даже самые простые задачи решаются в несколько шагов.
Понятие, виды и свойства
В виде определенной последовательности действий можно описать процедуру решения огромнейшего количества задач, с которыми человек сталкивается в повседневной жизни, и именно эта последовательность представляется в информатике как понятие алгоритма и свойства алгоритма.
Одним из наиболее известных среди всех является так называемый алгоритм Эвклида, при помощи которого определяется наибольший делитель двух целых чисел.
При этом стоит отметить тот факт, что, рассматривая понятие алгоритма и его свойства, нужно правильно понимать не только сами действия, но еще и то, в каком именно порядке они выполняются. Ведь нередко случаются такие ситуации, когда при изменении порядка действий в алгоритме в конечном итоге он может оказаться неисполняемым при определенных обстоятельствах. К примеру, если вы идете в магазин, то начало алгоритма будет примерно следующим:
- Пойти в магазин.
- Выбрать хлеб.
Или:
- Выбрать хлеб.
- Пойти в магазин.
Если рассматривать последний алгоритм, то в таком случае изначально выбирается хлеб, и только потом мы уже идем с более точно определенной задачей в магазин, и если на самом деле нужного нам хлеба там не окажется, то в таком случае построенный нами алгоритм в конечном итоге окажется неисполняемым.
Виды
Виды алгоритмов могут быть следующими:
- Циклический. Алгоритм, в котором присутствует циклическая структура, то есть многократное повторение различных действий.
- Линейный. Алгоритм, использующий структуру следования, то есть действия располагаются друг за другом.
- Разветвляющийся. Алгоритм, в котором используется структура ветвления, когда действие выбирается в зависимости от того, выполнено ли определенное условие.
Свойства
Свойства же их следующие:
- Детерминированность. При задании одинаковых исходных данных несколько раз алгоритм начинает одинаково выполняться, предоставляя один и тот же сигнал.
- Массовость. При помощи алгоритма решается не какая-то одна задача, а множество задач определенного типа.
- Результативность. Использование алгоритма в любом случае приводит к решению поставленной задачи.
- Дискретность. Алгоритм включает в себя последовательность действий, выполнение которых не представляет собой никакой сложности.
- Конечность. Последовательность действий алгоритма не может быть неограниченной или бесконечной.
- Корректность. Если алгоритм формируется для выполнения определенной задачи, то он всегда должен выдавать соответствующий результат.
Алгоритм в информатике
Когда человек постепенно вникнет в информатику и будет думать о том, что представляет собой понятие алгоритма и его свойства, то он узнает, что алгоритм, имеющий ошибку, в некотором смысле будет лучше того, который функционирует, но делает это неправильно. Ведь если ошибка присутствует, то в таком случае компьютер сообщит нам об этом, и мы впоследствии уже сможем найти ее и исправить, а если же ошибка, которая заставляет работать алгоритм неправильно, проявляется только в редких случаях, то в таком случае она может появиться в самый ответственный момент.
Насколько легко его составить?
Для многих людей обработка информации кажется достаточно простой задачей, но на самом деле это не так, ведь для начала нужно хотя бы разобраться в том, что представляют собой и понятие алгоритма, и свойства алгоритма, и его исполнители. В особенности это касается составления алгоритма, который требуется для правильной обработки информации.
Наиболее простым примером можно назвать инструкцию пользователя к определенному предмету. Если ее составить непрофессионально, то в таком случае пользователь может просто-напросто сломать предмет, так как будет неправильно его эксплуатировать или не научится с ним работать, не говоря уже о том, что могут быть и определенные физические травмы, если вести речь о серьезной бытовой технике.
Многие скажут, что на самом деле нет ничего сложного в том, чтобы составить инструкцию для готового прибора, но на самом деле это не так, ведь в действительности преимущественному большинству людей гораздо легче сделать что-то самостоятельно, чем объяснить кому-нибудь еще, как это делается.
К примеру, практически каждый школьник без труда использует мобильный телефон, а также все имеющиеся в нем функции, и это кажется предельно простым и интуитивно понятным. Но на самом деле не так просто объяснить, как пользоваться мобильным телефоном тому человеку, который в жизни не держал в руках это устройство, так как у него появится огромнейшее количество вопросов, причем таких, о которых вы даже не подозреваете. Именно в этой ситуации тяжело будет объяснить все в соответствии с тем, что представляют собой понятие алгоритма и свойства алгоритма. Последовательность действий будет непонятна, и человек не сможет их выполнить так, как это нужно для нормальной работы устройства.
Какие трудности могут возникнуть?
В качестве примера рассмотрим, как сделать алгоритм заваривания чая для какого-нибудь робота, который в принципе не знает ничего, и для него полноценный источник информации о задаче - это алгоритм. Понятие, виды, свойства – все это нам известно, но для большинства людей мысленная модель такого алгоритма является примерно следующей:
- Взять чашку.
- Положить в нее чай.
- Насыпать сахар.
- Залить кипятком.
- Размешать.
Но в действительности же такой алгоритм будет практически невозможно выполнить, так как у робота нет здравого смысла, и весь этот порядок действий для него является минимальным набором информации.
Точность действий - основа алгоритма
Главное, что нужно понять, рассматривая понятие алгоритма и свойства алгоритма – точность действий, ведь робот даже не знает изначально, где ему взять чашку и какую конкретно нужно взять, при этом даже если он ее возьмет, то он будет держать ее в руках, так как у него не было команды ставить ее на стол. Теперь ему нужно будет положить чай, но это опять же можно сделать руками, а можно ложкой, при этом нужно знать количество. Таким образом появляется огромнейшее количество самых разных проблем, которые нужно решать еще на этапе построения алгоритма.
Как выглядит верно?
Конечно, рассматривая понятие алгоритма и свойства алгоритма, точное описание можно формировать практически до бесконечности, но оптимальным в этой ситуации будет примерно следующая последовательность действий:
- Взять в серванте чашку с надписью «Рабочая».
- Поставить чашку на стол на кухне дном вниз.
- Достать из шкафа, находящегося справа от холодильника, контейнеры с надписью «Сахар» и «Чай», после чего поставить их на стол рядом с чашкой.
- Из серванта достать чайную ложку.
- Насыпать в чашку одну полную чайную ложку из контейнера с надписью «Чай», а потом две чайные ложки из контейнера с надписью «Сахар».
- Включить чайник.
- Подождать, пока чайник закипит, после чего налить из него воды в чашку, пока она не будет заполнена на 2/3.
- Равномерно размешать чайной ложкой жидкость в чашке в течение 30 секунд.
Таким образом, рассматривая понятие алгоритма и свойства алгоритма, кем выполняется каждое действие, а также множество других элементов, можно будет прийти к построению оптимальной последовательности действий. Даже вышеприведенный алгоритм нельзя назвать совершенным, и он предусматривает то, что роботу известно большое количество вещей, но даже на этом примере можно понять, насколько сложно на самом деле описывать те или иные вещи, которые мы с вами прекрасно знаем еще с самого детства.
Что нужно знать?
В первую очередь перед там, как составлять алгоритм, нужно определиться с тем, какие есть начальные условия для выполнения определенной задачи, а также должно быть известно то, что нужно получить. Сам по себе алгоритм представляет собой уже конечную последовательность действий в решении определенной задачи, которая приводит от исходной информации к определенному результату. В любом случае первенство в разработке алгоритма действий принадлежит человеку, а занимаются исполнением этих действий уже различные люди или же всевозможные устройства, такие как спутники, роботы, компьютеры, продвинутая бытовая техника, а с недавнего времени даже определенные игрушки научились их выполнять.
История
Ал-Хорезми – это человек, который первым определил понятие алгоритма и свойства алгоритма. Массовость данное понятие приобрело уже через определенное время, когда оно получило уже более широкий смысл, а также стало определять любые точные правила определенного действия. На сегодняшний день уже данное понятие воспринимается многими как один из наиболее важных понятий такой науки, как информатика, без которого ее практически невозможно себе представить.
Сам Ал-Хорезми жил в IX веке нашей эры, причем стоит отметить тот факт, что первоначальный арабский оригинал, в котором излагались его арифметические труды, был утерян, однако существует перевод, с помощью которого Западная Европа смогла в конечном итоге ознакомиться с десятичной позиционной системой счисления, а также основными правилами выполнения различных арифметических действий.
Ученый стремился к тому, чтобы правила, которые были им сформулированы, были предельно понятными для любого грамотного человека. Достичь этого в веке, когда еще не было полноценной математической символики, было чрезвычайно сложно, но ученый смог в своих трудах в конечном итоге добиться четкого и при этом строгого словесного предписания, по которому читатель не имел возможности уклониться от предписанных задач или же пропустить определенные действия.
В латинском переводе труды ученого излагались в единственной книге, которая называлась «Алгоризми сказал». С течением времени люди стали постепенно забывать о том, что «Алгоризми» является автором таких правил, вследствие чего правила начали называться алгоритмами. Таким образом, постепенно «Алгоризми сказал» преобразилось и стало «алгоритм гласит».
fb.ru
Виды алгоритмов в информатике: примеры
При изучении информатики немало внимания уделяется изучению алгоритмов и их видам. Не зная основных сведений о них, нельзя написать программу или проанализировать ее работу. Изучение алгоритмов начинается еще в школьном курсе информатики. Сегодня мы рассмотрим понятие алгоритма, свойства алгоритма, виды.
Понятие
Алгоритм – это определенная последовательность действий, которая приводит к достижению того или иного результата. Составляя алгоритм, детально прописывают каждое действие исполнителя, которое в дальнейшем приведет его к решению поставленной задачи.
Довольно часто алгоритмы используют в математике для решения тех или иных задач. Так, многим известен алгоритм решения квадратных уравнений с поиском дискриминанта.
Свойства
Прежде чем рассматривать виды алгоритмов в информатике, необходимо выяснить их основные свойства.
Среди основных свойств алгоритмов необходимо выделить следующие:
- Детерминированность, то есть определенность. Заключается в том, что любой алгоритм предполагает получение определенного результата при заданных исходных.
- Результативность. Означает, что при наличии ряда исходных данных после выполнения ряда шагов будет достигнут определенный, ожидаемый результат.
- Массовость. Написанный единожды алгоритм может использоваться для решения всех задач заданного типа.
- Дискретность. Она подразумевает, что любой алгоритм можно разбить на несколько этапов, каждый из которых имеет свое назначение.
Способы записи
Вне зависимости от того, какие виды алгоритмов в информатике вы рассматриваете, существует несколько способов их записи.
- Словестный.
- Формульно-словестный.
- Графический.
- Язык алгоритма.
Наиболее часто изображают алгоритм в виде блок-схемы, используя специальные обозначения, зафиксированные ГОСТами.
Основные виды
Выделяют три основных схемы:
- Линейный алгоритм.
- Ветвящийся алгоритм, или разветвленный.
- Циклический.
Далее мы рассмотрим виды алгоритмов в информатике, примеры, которые помогут более детально понять, как они работают.
Линейный
Наиболее простым в информатике считается линейный алгоритм. Он предполагает последовательность выполнения действий. Приведем наиболее простой пример алгоритма такого вида. Назовем его «Сбор в школу».
1. Встаем, когда звенит будильник.
2. Умываемся.
3. Чистим зубы.
4. Делаем зарядку.
5. Одеваемся.
6. Кушаем.
7. Обуваемся и идем в школу.
8. Конец алгоритма.
Разветвляющийся алгоритм
Рассматривая виды алгоритмов в информатике, нельзя не вспомнить о разветвляющейся структуре. Данный вид предполагает наличие условия, при котором в случае его выполнения действия выполняются в одном порядке, а в случае невыполнения – в другом.
Например, возьмем следующую ситуацию – переход дороги пешеходом.
1. Подходим к светофору.
2. Смотрим на сигнал светофора.
3. Он должен быть зеленым (это условие).
4. Если условие выполняется, мы переходим дорогу.
4.1 Если нет – ждем, пока загорится зеленый.
4.2 Переходим дорогу.
5. Конец алгоритма.
Циклический алгоритм
Изучая виды алгоритмов в информатике, детально следует остановиться на циклическом алгоритме. Данный алгоритм предполагает участок вычислений или действий, который выполняется до выполнения определенного условия.
Возьмем простой пример. Если ряд чисел от 1 до 100. Нам необходимо найти все простые числа, то есть те, которые делятся на единицу и себя. Назовем алгоритм «Простые числа».
1. Берем число 1.
2. Проверяем, меньше ли оно 100.
3. Если да, проверяем простое ли это число.
4. Если условие выполняется, записываем его.
5. Берем число 2.
6. Проверяем, меньше ли оно 100.
7. Проверяем, простое ли оно.
…. Берем число 8.
Проверяем, меньше ли оно 100.
Проверяем, простое ли число.
Нет, пропускаем его.
Берем число 9.
Таким образом перебираем все числа, до 100.
Как видите, шаги 1 – 4 будут повторяться некоторое число раз.
Среди циклических выделяют алгоритмы с предусловием, когда условие проверяется в начале цикла, или с постусловием, когда проверка идет в конце цикла.
Другие варианты
Алгоритм может быть и смешанным. Так, он может быть циклическим и разветвленным одновременно. При этом используются разные условия на разных отрезках алгоритма. Такие сложные структуры приеняются при написании сложных программ и игр.
Обозначения в блок-схеме
Мы с вами рассмотрели, какие виды алгоритмов есть в информатике. Но мы не рассказали о том, какие обозначения используются при их графической записи.
- Начало и конец алгоритма записываются в овальной рамке.
- Каждая команда фиксируется в прямоугольнике.
- Условие прописывается в ромбе.
- Все части алгоритма соединяются при помощи стрелок.
Выводы
Мы с вами рассмотрели тему "Алгоритмы, виды, свойства". Информатика уделяет немало времени изучению алгоритмов. Их используют при написании различных программ как для решения математических задач, так и для создания игр и различного рода приложений.
fb.ru
Слово «алгоритм» происходит от латинской формы написания имени арабского математика Аль Хорезми. Известно, что он родился до 800 г., а умер после 847 г., жил и работал в Багдаде - крупном научном центре и влиятельной столице Древнего Востока. Аль Хорезми использовал индийскую позиционную систему счисления с нулём и сформировал правила четырёх арифметических действий над многозначными числами. Первоначально под алгоритмами понимали только эти правила, но в дальнейшем понятие алгоритма стали использовать более широко. Разработать алгоритм – это разбить задачу на последовательно выполняемые шаги (этапы). Примеры алгоритмов: С помощью алгоритмов решаются не только традиционные для математики вычислительные задачи, но и многие другие, возникающие в быту или на производстве. И было бы ошибкой думать, что алгоритмы могут вам пригодиться только в том случае, если вы станете программистами. Умение конструировать алгоритмы и чётко их формулировать - очень важный навык современного человека. Рассмотрим несколько алгоритмов, с которыми можно встретиться в жизни. Алгоритм пользования автоматической междугородной телефонной связью: 1.Наберите цифру 8 и дождитесь непрерывного гудка. 2.Наберите код вызываемого города. 3.Наберите номер телефона вызываемого абонента. Дети очень любят играть и иногда в своих играх используют игровые алгоритмы. Пример игрового алгоритма: 1.Загадай число. 2.Умножь на 5. 3.Прибавь 8. 4.Умножь на 2. 5.Отними 16. 6.Отбрось крайнюю правую цифру и получишь загаданное число. Вспомните, как вы переходите через проезжую часть. Вы с малых лет помните правила перехода через улицу, а ведь их можно тоже назвать алгоритмом. Вся повседневная жизнь человека - это деятельность по алгоритмам. Попробуем сравнить все рассмотренные примеры. На первый взгляд, в них нет ничего общего: один алгоритм поможет позвонить за пределы города, другой - решить квадратное уравнение, третий - отгадать задуманное число, а четвёртый - перейти улицу. Но более глубокий анализ покажет наличие последовательности действий в каждом алгоритме. Причём, каждое действие записано в виде одного или нескольких предложений, называемых предписаниями. Требуется точно исполнять все предписания, чтобы от исходных данных перейти к заранее определённому результату. Следовательно, алгоритм - это строго организованная последовательность действий (предписаний), приводящая от исходных данных к конкретному результату. Попробуем переставить местами шаги в любом из предложенных алгоритмов: 1. Загадай число. 2. Прибавь 8. 3. Умножь на 5. 4. Отними 16. 5. Умножь на 2. 6.Отбрось крайнюю правую цифру и получишь загаданное число. Исполнив этот алгоритм, вы не получите требуемого результата. Результативность - это одно из свойств алгоритма, позволяющее решить задачу за конечное число шагов. В противном случае считается, что алгоритм неприменим для решения данной задачи. Разделение выполнения решения задачи на отдельные операции - важное свойство алгоритмов, называемое дискретностью. Нельзя перейти к следующему действию, не закончив предыдущего. Снова рассмотрим один из примеров - алгоритм нахождения корней квадратного уравнения: не закончив вычислять дискриминант, вы врядли решите квадратное уравнение. Итак, исходя из этих основных свойств алгоритма, приходим к выводу: 1.Алгоритм состоит из точных предписаний. 2.Нельзя менять порядок выполнения предписаний. 3.Нельзя переходить к следующему действию, не закончив предыдущего. Рассмотрим ещё один пример алгоритма: 1. Подойти к реке. 2. Войти в реку. 3. Идти по дну, пока не выйдешь на другой берег. Выполним ли этот алгоритм, если человек подошёл к реке Волге? Ответ однозначен - нет. А в каком случае этот алгоритм будет выполнен, и кто может пройти по дну реки Волги? Оказывается, алгоритм выполнится, если по дну пойдёт человек со специальным снаряжением или робот-“подводник”. Он также будет исполнен, если человек без снаряжения подойдёт не к Волге, а к маленькой речке, глубина которой не выше шеи человека. Следовательно, один и тот же алгоритм может быть верным и неверным в зависимости от того, каковы исходные данные и кто исполнитель алгоритма. Исполнитель - это человек или автомат (в частности им может быть процессор ЭВМ), умеющий выполнять некоторый набор действий которые можно назвать командами. Исполнитель может исполнять команды из набора и ничего более. Набор команд называют допустимыми действиями исполнителя. Но управлять надо исполнителем правильно и точно. Рассмотрим пример: имеется исполнитель “Перевозчик”. Набор его допустимых действий следующий: 1. Перевези волка. 2. Перевези козу. 3. Перевези капусту. 4. Переправься обратно один. Перед нами “гипотетический” человек, который, строго руководствуясь алгоритмом, решает задачу. Про такого человека можно сказать, что он решает поставленную задачу машинально, без эмоций, без мыслей. Его и в самом деле можно заменить машиной, выполняющей те же допустимые действия. Всё, что умеет делать такой человек - это исполнять только четыре команды. Составим для данного исполнителя алгоритм решения следующей задачи: перевозчик находится на левом берегу реки с волком, козой и капустой. Требуется переправить их на правый берег, но лодка слишком мала: перевозчик может взять с собой только одного пассажира - либо волка, либо козу, либо капусту. Но если он оставит на берегу волка с козой, то “от козы останутся лишь рожки да ножки”, если он оставит козу с капустой, то коза съест капусту. Только в присутствии перевозчика они не безобразничают. Алгоритм “Перевозчик” Исходные данные: волк, коза, капуста, лодка, перевозчик на левом берегу. Результат: волк, коза, капуста, лодка, перевозчик на правом берегу. Исполнитель: перевозчик. Последовательность действий: 1. Перевези козу. 2. Переправься обратно один. 3. Перевези волка. 4. Перевези козу. 5. Перевези капусту. 6. Переправься обратно один. 7. Перевези козу. Исполнителем указанных действий является человек - перевозчик, решающий задачу по алгоритму машинально. Исполнителем может быть и какое-то устройство, в этом случае выражение “машинальное действие”, употребляемое обычно в переносном смысле, при современном уровне развития науки и техники приобретает прямой смысл. Представим себе небольшое устройство, похожее на электронную игру. На экране изображены волк, коза, капуста и перевозчик с лодкой. Рядом с экраном находятся четыре кнопки. Над первой кнопкой надпись “Перевези козу” над второй - “Перевези волка”, над третьей - “Перевези капусту”, над четвёртой - “Переправься обратно один”. Нажимая на кнопки, мы можем передвигать существа по экрану. Других способов управления ими в данном устройстве нет. Последовательность действий для решения задачи будет состоять из нажатий на кнопки в указанном порядке: 1, 4, 2, 1, 3, 4, 1. Итак, упрощённо исполнителя можно представить как устройство, состоящее из двух частей: устройства управления и набора инструментов. Команды алгоритма выполняются устройством управления с помощью набора инструментов одна за другой. Совокупность команд, которые могут быть выполнены исполнителем, называется системой команд исполнителя. Сумеет исполнитель решить предложенную задачу или нет, зависит от среды, в которой он действует, и от правильности системы команд, данных ему. Знакомство с исполнителем РОБОТ: Исполнитель не может одиннадцать раз шагнуть вправо, т.к. на 10 шаге клетчатое поле (среда, в которой он действует) закончится. А команду “Шагнуть вправо” он просто не поймёт, т.к. понимает только команду “вправо”. Используемые на практике записи алгоритмов составляются с ориентацией на определённого исполнителя. Чтобы составить для него алгоритм, нужно знать, какие предписания этот исполнитель может понять и исполнить, а какие не может. Следовательно, составляя алгоритм для определённого исполнителя, можно использовать лишь те команды, запись которых имеется в его системе команд, т.е. отдаваться они должны так, как заранее было предусмотрено. Это свойство алгоритмов будем называть понятностью. Рассмотрим и другие свойства алгоритма: детерминированность и массовость. Детерминированность (определённость) означает, что правила, образующие алгоритм, должны быть строго определенными, однозначными и непротиворечивыми. Этим обеспечивается его независимость от исполнителя, будь то человек, устройство или компьютер. Массовость - это свойство алгоритма обеспечивать решение не одной конкретной задачи, а целого множества задач данного типа. |
infolike.narod.ru
Алгоритм. Свойства алгоритма. Способы записи алгоритма
Алгоритм ( Algorithmi - от латинской формы имени математика Мухаммеда аль-Хорезми (787 – 850)) — правило действий, последовательность проведения вычислительных операций, способ нахождения искомого результата. Сейчас это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результаты.
Свойства алгоритма:
- Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи, как последовательное выполнение простых шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
- Определенность (детерминированность) – каждое правило алгоритма должно быть четким, однозначным. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
- Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.
- Массовость – алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
- Понятность — алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд.
Способы описания алгоритмов
Алгоритм представляют с помощью изобразительных средств, состав и правила употребления, которых образуют конкретные способы или формы записи.
К настоящему времени сложились пять наиболее употребительных способов записи:
- словесный,
- формульно-словесный,
- графический,
- псевдокод,
- язык программирования.
Словесное задание описывает алгоритм – инструкцию о выполнении действий в определенной последовательности с помощью слов и предложений естественного языка. Форма изложения произвольна и устанавливается разработчиком.
В формульно-словесном способе записи инструкция о действиях содержит формальные символы и выражения (формулы) в сочетании со словесными пояснениями.
Графическая запись или схема – это изображение алгоритма с помощью геометрических фигур, называемых блоками. Последовательность блоков и соединительных линий образуют схему.
Наряду со схемами для изображения алгоритмов широко используется псевдокод. Псевдокодом называется система правил записи алгоритма с использованием набора определенных конструкций для описания управляющих действий.
Псевдокод позволяет формально изображать логику алгоритма, используя стандартизированные конструкции естественного языка для изображения управления и сохраняя возможности языка для описания действий по обработке информации. Данный способ тесно связан со структурным подходом к программированию. Псевдокод занимает промежуточное положение между естественным языком и языком программирования. Его применяют преимущественно для того, чтобы подробнее объяснить работу программы, что облегчает проверку правильности программы. Кроме того, псевдокод дает программисту большую свободу в изображении алгоритма. Требуется только употреблять стандартные управляющие конструкции и правила записи.
Последним способом записи алгоритмов является язык программирования. Рассмотренные выше способы удобны для программиста, но не приемлемы для ЭВМ, поскольку они не могут быть однозначно поняты.
Язык программирования – это знаковая система, предназначенная для описания процессов решения задач и их реализации на ЭВМ. Реализация означает, что описания могут быть введены в ЭВМ и однозначно ею поняты. К языкам программирования относятся языки команд или машинные языки и языки высокого уровня.
informatikagia116.blogspot.com
Понятие алгоритма. Способы записи алгоритмов.Свойства алгоритмов. .
Слово алгоритм происходит от algorithmi – латинской формы написания имени великого математика IX в. Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали только правила выполнения четырех арифметических действий над многозначными числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению поставленной задачи. Рассмотрим пример алгоритма для нахождения середины отрезка при помощи циркуля и линейки.Алгоритм деления отрезка АВ пополам:1) поставить ножку циркуля в точку А;2) установить раствор циркуля равным длине отрезка АВ;3) провести окружность;4) поставить ножку циркуля в точку В;5) провести окружность;6) через точки пересечения окружностей провести прямую;7) отметить точку пересечения этой прямой с отрезком АВ. Анализ примеров различных алгоритмов показывает, что запись алгоритма распадается на отдельные указания исполнителю выполнить некоторое законченное действие. Каждое такое указание называется командой. Команды алгоритма выполняются одна за другой. После каждого шага исполнения алгоритма точно известно, какая команда должна выполнятся следующей. Совокупность команд, которые могут быть выполнены исполнителем, называется системой команд исполнителя. Свойства алгоритмов:
Таким образом, выполняя алгоритм, исполнитель может не вникать в смысл того, что он делает, и вместе с тем получать нужный результат. В таком случае говорят, что исполнитель действует формально, т.е. отвлекается от содержания поставленной задачи и только строго выполняет некоторые правила, инструкции. Способы задания алгоритма:
Графическая форма представления алгоритма называется блок-схемой |
infosgs.narod.ru