72814

Алгоритм, его свойства. Виды алгоритмов. Формы записи алгоритмов

Доклад

Информатика, кибернетика и программирование

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

Русский

2014-11-30

53 KB

3 чел.

Алгоритм, его свойства. Виды алгоритмов. Формы записи алгоритмов.


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

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

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

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

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


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

  1.  
    Массовость – алгоритм должен описывать круг однотипных задач, исходные данные которых могут изменяться в определенных пределах.
  2.  
    Детерминированность – это обусловленность всех шагов алгоритма потребностью решения данных задач. Свойство детерминированности выражается в том, что при заданных значениях параметров алгоритм выполняется формально, т.е. строго выполняется последовательностьдействий до появления результата.
  3.  
    Понятность – предписания алгоритма должны быть сформулированы так, чтобы они понимались одинаково разработчиком и исполнителем, т.е. они должны быть однозначно понятны.
  4.  
    Дискретность – четкое разделение всего пути решения задачи на отдельные этапы (шаги) так, чтобы ход выполнения алгоритма проходил поэтапно, вовремя корректируя действия исполнителя.
  5.  
    Результативность – точное выполнение предписаний алгоритма должно привести к результату за n шагов, если правильно разработана исходная модель и сам алгоритм.


Всякий человек при планировании деятельности обязательно выполняет две операции:

  1.  
    Оценивает исходные данные (создает исходную модель).
  2.  
    Прогнозирует результат (прогнозирует какую-то конечную модель).


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

Несмотря на многообразие алгоритмов все они строятся из 3-х типов алгоритмических структур.

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

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

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

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


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

  •  
    Словесно- формульное описание


Блок-схема (схема графических символов)

  •  
    Алгоритмические языки


Операторные схемы

  •  
    Псевдокод


Для записи алгоритма существует общая методика:

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


Необходимо обозначить начало и конец алгоритма.


Описать входные и выходные данные.

  •  
    Указать команды, которые позволяют выполнять определенные действия над выделенными данными 


Общий вид алгоритма

Алгоритм: Название алгоритма

Описание данных

Начало

Команды

Конец

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

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

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

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

Основные блоки.(Рис.1)

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

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

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

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

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

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


Типы алгоритмических процессов

По структуре выполнения алгоритмы и программы делятся на три вида:

  •  
    Линейные


Ветвящиеся

  •  
    Циклические


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

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

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

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

(Рис.2)

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

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

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

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

Алгоритм любой сложности может быть представлен комбинацией трех базовых структур:

  •  
    следование;


ветвление (в полной и сокращенной форме);

  •  
    цикл (с предусловием или постусловием).


Характерной особенностью этих структур является наличие у них одного входа и одного выхода. 

PAGE   \* MERGEFORMAT 6


 

А также другие работы, которые могут Вас заинтересовать

36573. Расчёт электроснабжения района 2.81 MB
  Определение расчетной нагрузки коммунально-бытовых, промышленных потребителей; выбора номинальной мощности трансформаторов; определения сечения линий как высокого, так и низкого напряжения; определения величины недоотпущенной электроэнергии; определения годовых потерь электрической энергии в линии 35 кВ
36574. Структурный тип массив. Обработка массивов 31 KB
  Такие операторы присваивания могут использоваться для копирования одного массива в другой. Однако над массивами не определены отношения. Кроме того, в Турбо Паскале нельзя использовать выражения над массивами.
36575. Структурный тип маcсив. Описание мас и доступ к эл мас 33 KB
  Идея массива состоит в том чтобы объединить в одно целое фиксированное количество элементов одного и того же типа. Общая форма описания массива имеет вид: type имя типамассива = rry [ тип индекса ] of тип элементов ; где: имя типамассива имя выбираемое программистом. тип индекса любой порядковый тип кроме longint или типдиапазон.
36576. Оператор выбора CASE OF 31 KB
  Оператор выбора является обобщением оператора ifthenelse на случай выбора одного из нескольких возможных продолжений выполнения программы. Выбор осуществляется по ключу выбора селектору. Синтаксическая структура этого оператора такова: cse ключ выбора of константа выбора 1 : оператор 1 ; .
36577. Концепция типа данных. простой тип данных 38 KB
  К любому порядковому типу применимы следующие функции: OrdX порядковый номер значения выражения Х этого типа; PredX предыдущее значение выражения Х этого типа; SuccX следующее значение выражения Х этого типа; HighX наибольшее значение диапазона аргумента Х; LowX наименьшее значение диапазона аргумента Х; Функция Ord определена для любого значения порядкового типа причём нумерация значений начинается от номера 0 номера наименьшего значения типа. Функции Pred и Succ не определены соответственно для левой и правой границы...
36578. Концепция типа данных. Тип данных в ТР 29.5 KB
  Тип данных в ТР. Ранее мы познакомились с некоторыми стандартными типами данных: числовыми символьным строковым и булевским. Стандартные типы данных это лишь частный случай общей концепции типа данных Паскаля.
36579. Оператор итерационного цикла ( repeat , while ) 31 KB
  В каждом операторе итерационного цикла будем различать условие и тело цикла повторяющееся действие. Тело цикла whiledo это один оператор записанный после do а для цикла repetuntil тело цикла может быть и последовательностью операторов записанных между repet и until. Если условие есть true выполняется тело цикла и повторно вычисляется значение условия.
36580. Композиция условий и операторов. Оператор условного перехода 32.5 KB
  Оператор условного перехода. Композиция условий и операторов. Простые операторы несмотря на свою важность недостаточны для того чтобы представлять любые алгоритмы задач.
36581. Простые операторы ввода-вывода 33.5 KB
  Эти операторы Турбо Паскаля обеспечивают простейшие формы ввода с клавиатуры и вывода на экран дисплея в текстовом режиме. К простым операторам ввода и вывода относятся операторы red redln write writeln реализующие так называемый потоковый вводвывод при котором ввод и вывод рассматриваются как непрерывный поток символов и строк протекающий через экран дисплея. На экране отображается последняя порция этого потока так что нижняя строка экрана всегда остается свободной для отображения очередной строки вывода вывод идёт в нижнюю строку...