Способы описания алгоритмов 4 способа
Различают следующие виды алгоритмов :
линейный – список команд (указаний), выполняемых последовательно друг за другом;
разветвляющийся – алгоритм, содержащий хотя бы одну проверку условия, в результате которой обеспечивается переход на один из возможных вариантов решения;
циклический – алгоритм, предусматривающий многократное повторение одной и той же последовательности действий. Количество повторений обусловливается исходными данными или условием задачи.
Любая алгоритмическая конструкция может содержать в себе другую конструкцию того же или иного вида, т. е. алгоритмические конструкции могут быть вложенными. Рассмотрим следующие способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.
Словесное описание представляет структуру алгоритма на естественном языке. Например, любой прибор бытовой техники (утюг,электропила, дрель и т.п.) имеет инструкцию по эксплуатации, т.е.словесное описания алгоритма, в соответствии которому данный прибор должен использоваться. Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем (под «формальным» понимается то, что описание абсолютно полное и учитывает все возможные ситуации, которые могут возникнуть в ходе решения); допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.
1. определить температуру воздуха
2. если температура ниже 0, то надеть шубу, иначе надеть куртку
Псевдокод — описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основныеэтапы решения задачи, перед точной его записью на языке программирования. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика. Строгих синтаксических правил для записи псевдокода не существует. Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слов и конструкций.
Блок-схема — описание структуры алгоритма с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения отдельных инструкций. Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость»алгоритма и явно отображает порядок выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур.
Описания алгоритма в словесной форме, на псевдокоде или в виде блок-схемы допускают некоторый произвол при изображении команд. Вместе с тем они настолько достаточны, что позволяет человеку понять суть дела и исполнить алгоритм. На практике исполнителями алгоритмов выступают компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке, такой формализованный язык называют языком программирования .
Источник
Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов.
Вы будете перенаправлены на Автор24
Решение задач с использованием компьютера основано на понятии алгоритма, который является точным описанием вычислительного процесса, ведущего от варьируемых начальных данных к конечному результату.
Алгоритмы заложены в основе каждой программы, а также они встречаются во многих сферах деятельности человека (например, рецепты, схема вязания или танца).
Алгоритмизация является техникой разработки алгоритма для решения задач на ЭВМ.
Понятие алгоритма
Алгоритм представляет собой точное описание определенного процесса, инструкцию по его выполнению.
Процесс разработки алгоритма — достаточно сложный и трудоемкий.
Можно также сказать, что алгоритм представляет собой конечную последовательность команд для исполнителя, направленную на достижение конкретной цели.
Цель же, в свою очередь, является достижением желаемого результата.
В качестве исполнителя могут выступать люди, живые существа, автоматические устройства, способные к исполнению и восприятию команд.
Перечень команд, воспринимаемых и выполняемых (по возможности) исполнителем, называют системой команд.
Каждый алгоритм предназначен для конкретного исполнителя. Исполнение алгоритма начинается с первой команды. После того, как ее исполнили, переходят к следующей команде и так до конца алгоритма.
В качестве примера алгоритма можно вспомнить известный всем со школы арифметический способ сложения двух положительных чисел «столбиком». Алгоритм данной задачи представим в виде системы следующих действий:
- выделим в слагаемых разряды единиц и сложим единицы;
- при получении суммы меньшей 10 запишем ее в разряде единиц под нижним числом;
- при получении суммы большей или равной 10 запишем в разряде единиц только количество единиц, затем выделим в слагаемых разряд десятков и запишем полученный при сложении единиц десяток над разрядом десятков первого (верхнего) слагаемого;
- сложим десятки и т. д.
Готовые работы на аналогичную тему
Аналогичные указания дают для сложения единиц других разрядов числа. Системой-исполнителем этого алгоритма может стать как ЭВМ, так и человек.
Понятие алгоритма в теорию и практику обучения вошло в конце $50$-х годов прошлого столетия в связи с развитием программированного обучения и применением обучающимися машин.
Способы описания алгоритмов
Существуют различные способы описания алгоритмов. Приведем основные из них:
- словесный (пошаговое описание);
- табличный и в виде формул;
- графический (в виде схем);
- с использованием псевдокода (алгоритмического языка).
Алгоритмический язык является формальным языком, предназначенным для записи алгоритма. В его состав входят набор основных символов (алфавит), система точных правил построения текстов (синтаксис) и система соответствия синтаксически допустимых текстов языка описываемым действиям и объектам (семантика).
Множество языков программирования, используемых при ре¬шении задач на ЭВМ, являются алгоритмическими.
Псевдокод представляет собой способ описания логики программы до начала ее программирования и занимает промежуточное положение между машинным языками и естественными.
Под схемой алгоритма понимают графическое пред¬ставление последовательности шагов алгоритма, наглядно показывающее взаимосвязь опера¬ций, которые осуществляются в алгоритме на каждом шаге, и их очередность. Другими словами, для графического изображения структуры алгоритма используется блок-схема.
В соответствии с блок-схемой последовательность действий указывается с по¬мощью стрелок, которые соединяют отдельные блоки и показывают, какой блок и за каким должен быть выполнен.
Свойства алгоритмов
Существует ряд определенных требований к алгоритмам. Перечислим семь важных свойств, которыми должен обладать каждый алгоритм:
- Наличие ввода исходных данных.
- Наличие вывода результата выполнения.
- Однозначность, так как компьютеру понятны лишь однозначные инструкции.
- Общность, в соответствии с которой алгоритм может использоваться не только для решения одной задачи, но и целого класса задач.
- Корректность, согласно которой при выполнении алгоритма должно быть всегда правильное решение задачи.
- Конечность означает, что решение задачи необходимо получить за конечное число шагов.
- Эффективность означает, что для решения задачи необходимо использовать ограниченные ресурсы компьютера (объем оперативной памяти, процессорное время и т. д.).
Эффективность алгоритма определяют с учетом потребляемых ресурсов компьютера, к которым относят быстродействие (количество выполняемых операций и затраты трудоемкости на каждую из них) и общий объем оперативной памяти, которая выделяется под данные. Приведенные показатели могут иногда быть противоречивыми: так в результате повышения быстродействия могут потребоваться дополнительные расходы памяти и наоборот. При возможности улучшения одного показателя без ущерба для другого необходимо этого добиваться. В случаях, когда возникает дилемма, рекомендуется предпочесть экономию памяти в ущерб производительности, поскольку тактовая частота процессоров растет опережающими темпами по сравнению с объемами оперативной памяти.
Специалистами предлагается ряд мер для повышения эффективности.
Блок-схемы
Основные алгоритмические структуры изображаются с помощью специальных графических символов. Все составляющие блок-схемы соединяются между собой в той последовательности, в какой они должны быть исполнены.
Кроме того, в алгоритмах используются разветвляющие и циклические блоки.
Обязательными блоками являются блоки начала и конца алгоритма. Между ними размещаются остальные блоки алгоритма.
Операторный блок (блок действия) содержит команды обработки данных.
Блок проверки условия предполагает 2 варианта дальнейшего развития решения задачи, в зависимости от того или иного выполнения поставленного условия.
Блоки ввода или вывода данных. Для выполнения алгоритма необходимы не только команды, но и данные, поступающие из вне. Для получения этих данных используется блок ввода. Для того, чтобы можно было вывести результат выполнения программы, либо какое-нибудь сообщение используют блок вывода.
Ниже на рисунке представлены графические изображения основных блоков алгоритма.
Источник
4. Способы описания алгоритмов.
Система команд исполнителя — точно описанная обстановка, включающая формулировку решаемой задачи, перечень объектов, вовлекаемых в условие задачи и в ее решение, и воз-можности исполнителя: свойства объектов, которые он может узнать и действия, которые он может совершить. Формальное исполнение алгоритма производит компилятор или интер-претатор, проверяя семантику.
2. Способы записи алгоритма
На практике наиболее распространенными являются следующие формы записи алгоритмов: 1) графическая запись (блок-схемы); 2) словесная запись (псевдокоды); 3) язык программирования. Словесная форма записи алгоритма представляет собой описание на естественном языке последовательных этапов обработки данных. Словесный способ не имеет широкого распространения, так как такие описания строго не формализуемы, допускают неоднозначность толкования отдельных предписаний. Алгоритм, записанный с помощью псевдокода, представляет собой полуформализованное описание на условном алгоритмическом языке, включающее как основные элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и другие. Графическая форма записи, называемая также схемой алгоритма, представляет собой изображение алгоритма в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Графическая запись является более компактной и наглядной по сравнению со словесной. В схеме алгоритма каждому типу действий соответствует геометрическая фигура. Фигуры соединяются линиями переходов, определяющими очередность выполнения действий. Графическая форма записи, называемая также структурной схемой или схемой алгоритма, представляет собой изображение алгоритма в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. В дальнейшем мы будем использовать схемы алгоритмов. Они позволяют представить алгоритмы в более наглядном виде, это дает возможность анализировать их работу, искать ошибки в их реализации и т.д. В схемах всегда естьначалоиконец, обозначаемые эллипсами, между ними — последовательностьшаговалгоритма, соединенныхстрелками.
5. Графическое представление схем алгоритмов.
Описание алгоритмов с помощью схем – один из наиболее наглядных и распространенных способов задания алгоритмов.
Схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических фигур, конфигурация которых определяет характер обозначаемых действий.
Условные графические изображения, используемые при построении схем, называются символами. Система символов и правила построения алгоритмов определены соответствующими стандартами.
Основные символы схем алгоритмов представлены на рис. П.2.1. Символы схемы располагаются сверху вниз. Линии соединения символов – линии потока, показывают направление процесса обработки. Стрелки на соединяющих линиях не ставят при направлениях сверху вниз и слева направо; противоположные направления показывают стрелкой на линии потока.
Символы на схеме помещаются в положении, изображенном на рис. П.2.1. Линия потока может изображаться как вертикально, так и горизонтально. За исключением символа «решение» остальные символы, относящиеся к процессу обработки информации, имеют один вход и один выход линий потока. В символ «решение» линии потока входят вертикально только один раз, а выходить могут как вертикально, так и горизонтально.
Рис. П.2.1. Основные символы схем алгоритмов
Содержание действия, обозначенного символом, раскрывается внутри символа и может быть записано на формальном или естественном языке.
Схема алгоритма четко определяет последовательность действий, заданную этим алгоритмом. В соответствии со свойством дискретности схема может представлять алгоритм с различной степенью детализации. При этом важно наиболее точно и наглядно изображать управляющие структуры алгоритма, показывающие логику перехода от одного действия к другому.
Структурной элементарной единицей алгоритма является простая команда, обозначающая один элементарный шаг переработки или отображения информации. Простая команда на языке схем изображается в виде функционального блока.
Данный блок имеет один входиодин выход. Из простых команд и проверки условий образуются составные команды, имеющие более сложную структуру и тожеодин вход и один выход. Структурный подход к разработке алгоритмов определяет использование только базовых алгоритмических структур (конструкций): следование, ветвление, повторение, которые должны быть оформлены стандартным образом.
Рассмотрим основные структуры алгоритма. Команда следованиясостоит только из простых команд. На рисунке простые команды имеют условное обозначениеS1иS2. Из команд следования образуются линейные алгоритмы. Примером линейного алгоритма будет нахождение суммы двух чисел, введенных с клавиатуры.
Команда ветвления— это составная команда алгоритма, в которой в зависимости от условия Р выполняется или одноS1, или другоеS2действие. Из команд следования и команд ветвления составляются разветвляющиеся алгоритмы (алгоритмы ветвления). Примером разветвляющегося алгоритма будет нахождение большего из двух чисел, введенных с клавиатуры.
Команда ветвления может быть полной и неполной формы. Неполная форма команды ветвления используется тогда, когда необходимо выполнять действие Sтолько в случае соблюдения условияP. Если условиеPне соблюдается, то команда ветвления завершает свою работу без выполнения действия. Примером команды ветвления неполной формы будет уменьшение в два раза только четного числа.
Команда повторения— это составная команда алгоритма, в которой в зависимости от условияРвозможно многократное выполнение действияS. Из команд следования и команд повторения составляются циклические алгоритмы (алгоритмы повторения). На рисунке представлена команда повторения с предусловием. Называется она так потому, что вначале проверяется условие, а уже затем выполняется действие. Причем действие выполняется, пока условие соблюдается. Пример циклического алгоритма может быть следующий. Пока с клавиатуры вводятся положительные числа, алгоритм выполняет нахождение их суммы. Команда повторения с предусловием не является единственно возможной. Разновидностью команды повторения с предусловием является команда повторения с параметром. Она используется тогда, когда известно количество повторений действия. В блок-схеме команды повторения с параметром условие записывается не в ромбе, а в шестиугольнике. Примером циклического алгоритма с параметром будет нахождение суммы первых 20 натуральных чисел.
В команде повторения с постусловием вначале выполняется действие Sи лишь затем, проверяется условиеP. Причем действие повторяется до тех пор, пока условие не соблюдается. Примером команды повторения с постусловием будет уменьшение положительного числа до тех пор, пока оно неотрицательное. Как только число становится отрицательным, команда повторения заканчивает свою работу. С помощью соединения только этих элементарных конструкций (последовательно или вложением) можно «собрать» алгоритм любой степени сложности.
Источник