Способов можно составить алгоритма

Способов можно составить алгоритма

Различают следующие виды алгоритмов :

линейный – список команд (указаний), выполняемых последовательно друг за другом;

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

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

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

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

1. определить температуру воздуха

2. если температура ниже 0, то надеть шубу, иначе надеть куртку

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

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

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

Источник

Алгоритмы

Алгоритмы. Способы записи алгоритмов

Выделяют три наиболее распространенные на практике способа записи алгоритмов:

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

Словесный способ записи алгоритмов

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

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

где S – площадь прямоугольника; а, b – длины его сторон.

Очевидно, что a, b должны быть заданы заранее, иначе задачу решить невозможно.

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

  • Начало алгоритма.
  • Задать численное значение стороны a.
  • Задать численное значение стороны b.
  • Вычислить площадь S прямоугольника по формуле S=a*b.
  • Вывести результат вычислений.
  • Конец алгоритма.
Читайте также:  Криминальные ситуации способы борьбы с ней

Графический способ описания алгоритмов

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

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

Название символа Обозначение
и пример заполнения
Пояснения
Пуск-останов Начало, завершение алгоритма или подпрограммы
Ввод-вывод данных Ввод исходных данных или вывод результатов
Процесс Внутри прямоугольника записывается действие, например, расчетная формула
Решение b» width=»219″ height=»65″/> Проверка условия, в зависимости от которого меняется направление выполнения алгоритма
Модификация Организация цикла
Предопределенный процесс Использование ранее созданных подпрограмм
Комментарий Пояснения
  • блок Процесс обозначает вычислительный процесс и применяется для обозначения действия или последовательности действий, изменяющих значения переменных или данных

  • блок Решение обозначает проверку условия

Если условие выполняется, то есть a>b, то следующим выполняется действие по стрелке «Да». Если условие не выполняется, то осуществляется переход по стрелке «Нет».

  • блок Модификация используется для организации циклических (повторяющихся) действий.

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

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

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

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

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

Программный способ записи алгоритмов

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

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

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

Запись алгоритма на языке программирования называется компьютерной программой.

Источник

Двадцать вопросов, которые помогают разработать алгоритм

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

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

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

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

Вопрос №2. Для чего?
Спросите себя несколько раз: «Почему я хочу решить эту задачу? Для чего это нужно?» Часто оказывается, что решение задачи A необходимо для того, чтобы решить задачу B, но при этом задачу B можно решить и другим путем. В этом случае, начиная думать над исходной задачей А, мы лишь теряем время.

Вопрос №3. Как?
Какими методами я буду руководствоваться, решая данную задачу? Как будет структурирован процесс ее решения? Есть ли готовые методологии, которые можно использовать?

Вопрос №4. Что?
Какие объекты присутствуют или подразумеваются в данной задаче? Нарисуйте их на бумаге и обозначьте стрелками всевозможные отношения между ними, связанные с данной задачей. Есть ли неучтенные или лишние объекты?
В каждый объект должны приходить и из каждого объекта должны исходить примерно одинаковое количество стрелок. В противном случае, как правило, мы либо упускаем важные связи между объектами, либо придаем неоправданно большое значение некоторым связям.

Вопрос №5. Когда?
Посмотрите на задачу с точки зрения времени. Выясните:
— как быстро должны работать отдельные блоки алгоритма?
— какие внешние факторы, связанные со временем, могут повлиять на их работу?
— сколько времени есть у вас на разработку, программирование и тестирование алгоритма?

Вопрос №6. Где?
Посмотрите на задачу с точки географической точки зрения. Ответьте на вопросы:
— где, в каких странах, городах, районах будет использоваться ваше решение?
— на каких компьютерных платформах оно будет работать?
— какие еще вопросы, связанные с месторасположением и географией, имеют отношение к данной задаче?

Вопрос №7. Что было?
Какие решения данной задачи существовали год, два, десять, сто лет назад? Ни одна задача не возникает на пустом месте – скорее всего, люди уже справлялись с этой проблемой в прошлом. Интересно и полезно бывает узнать, как именно это происходило.

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

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

Вопрос №10. Частью чего является?
Частью какой более масштабной задачи (или системы) является данная задача? А частью чего является эта более масштабная система?

Вопрос №11. Из чего состоит?
Какие более мелкие подзадачи являются частью исходной задачи? На какие части можно разбить исходную задачу? А на какие еще более мелкие части можно разбить подзадачи?

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

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

Вопрос №14. Что слышу?
Это очень сложный и полезный вопрос, поскольку та мощнейшая часть мозга, которая отвечает за обработку звуковой информации, у большинства современных людей слаборазвита. При этом я знаю гениальных ученых и инженеров, которые именно «слышат» решение той или иной задачи.
Итак, постарайтесь «услышать» взаимодействие всех элементов задачи (для этого удобным бывает закрыть глаза), услышать характерные звучания ее элементов. Услышьте разговоры и тембры голосов людей, применяющих решение вашей задачи на практике.

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

Вопрос №16. Каким может быть идеальное решение?
Пофантазируйте, как можно решить эту задачу в идеале; придумайте что-то совершенно невероятное — чем невероятнее, тем лучше. На этом принципе построен метод «мозгового штурма», когда предлагаются любые, даже самые неожиданные решения.
Представьте себе, что у вас нет границ, а условия работы самые благоприятные. Что бы вы могли сделать в этой ситуации?
Как можно было бы сделать решение этой задачи совершенно великолепным?

Вопрос №17. Почему все закончится неудачей?
Побудьте брюзгой и пессимистом-критиком. Найдите все причины, из-за которых у вас не получится решить эту задачу; а также все организационные проблемы, которые приведут к провалу этого проекта. Тщательно их запишите — чем больше, тем лучше.
Когда вы выйдете из состояния критики, записанное станет бесценной информацией о тех опасностях, которые поджидают вас на пути решения задачи, и от которых следует уклониться.

Вопрос №18. В чем польза для меня?
Какие выгоды лично вы извлечете из решения данной задачи? Чему научитесь? Сколько заработаете? Какие важные связи и контакты приобретете? Как улучшите свою репутацию?

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

Вопрос №20. В чем польза для общества?
Как повлияет решение вашей задачи на все общество, в котором мы живем? Будет ли она общественно-значимой? Чем и как она поможет всему человечеству в целом?

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

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

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

Источник

Читайте также:  Счетчик электроэнергии способы крепления
Оцените статью
Разные способы