Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к исходному результату.
Алгоритм
означает точное описание некоторого процесса, инструкцию по его
выполнению. Разработка алгоритма является сложным и трудоемким
процессом. Алгоритмизация – это техника разработки (составления)
алгоритма для решения задач на ЭВМ.
Изобразительные средства для описания (представление) алгоритма
Для записи алгоритма решения задачи применяются следующие изобразительные способы их представления:
- Словесно- формульное описание
- Блок-схема (схема графических символов)
- Алгоритмические языки
- Операторные схемы
- Псевдокод
Для записи алгоритма существует общая методика:
- Каждый алгоритм должен иметь имя, которое раскрывает его смысл.
- Необходимо обозначить начало и конец алгоритма.
- Описать входные и выходные данные.
- Указать команды, которые позволяют выполнять определенные действия над выделенными данными
Общий вид алгоритма
Алгоритм: Название алгоритма
Описание данных
Начало
Команды
Конец
Формульно-словесный
способ записи алгоритма характеризуется тем, что описание
осуществляется с помощью слов и формул. Содержание последовательности
этапов выполнения алгоритмов записывается на естественном
профессиональном языке предметной области в произвольной форме.
Графический
способ описания алгоритма (блок - схема) получил самое широкое
распространение. Для графического описания алгоритмов используются схемы
алгоритмов или блочные символы (блоки), которые соединяются между собой
линиями связи.
Каждый этап вычислительного процесса
представляется геометрическими фигурами (блоками). Они делятся на
арифметические или вычислительные (прямоугольник), логические (ромб) и
блоки ввода-вывода данных (параллелограмм).
Порядок выполнения
этапов указывается стрелками, соединяющими блоки. Геометрические фигуры
размещаются сверху вниз и слева на право. Нумерация блоков производится в
порядке их размещения в схеме.
Алгоритмические языки - это
специальное средство, предназначенное для записи алгоритмов в
аналитическом виде. Алгоритмические языки близки к математическим
выражениям и к естественным языкам. Каждый алгоритмический язык имеет
свой словарь. Алгоритм, записанный на алгоритмическом языке, выполняется
по строгим правилам этого конкретного языка.
Операторные схемы
алгоритмов. Суть этого способа описания алгоритма заключается в том, что
каждый оператор обозначается буквой (например, А – арифметический
оператор, Р – логический оператор и т.д.).
Операторы записываются
слева направо в последовательности их выполнения, причем, каждый
оператор имеет индекс, указывающий порядковый номер оператора. Алгоритм
записывается в одну строку в виде последовательности операторов.
Псевдокод
– система команд абстрактной машины. Этот способ записи алгоритма с
помощью операторов близких к алгоритмическим языкам.
Принципы разработки алгоритмов и программ
Типы алгоритмических процессов
По структуре выполнения алгоритмы и программы делятся на три вида:
- Линейные
- Ветвящиеся
- Циклические
Линейный алгоритм (линейная структура) –
это такой алгоритм, в котором все действия выполняются последовательно
друг за другом и только один раз. Схема представляет собой
последовательность блоков, которые располагаются сверху вниз в порядке
их выполнения. Первичные и промежуточные данные не оказывают влияния на
направление процесса вычисления.
Алгоритмы разветвляющейся структуры
На
практике часто встречаются задачи, в которых в зависимости от
первоначальных условий или промежуточных результатов необходимо
выполнить вычисления по одним или другим формулам.
Такие задачи
можно описать с помощью алгоритмов разветвляющейся структуры. В таких
алгоритмах выбор направления продолжения вычисления осуществляется по
итогам проверки заданного условия. Ветвящиеся процессы описываются
оператором IF (условие).
Циклические вычислительные процессы
Для
решения многих задач характерно многократное повторение отдельных
участков вычислений. Для решения таких задач применяются алгоритмы
циклической структуры (циклические алгоритмы). Цикл – последовательность
команд, которая повторяется до тех пор, пока не будет выполнено
заданное условие. Циклическое описание многократно повторяемых процессов
значительно снижает трудоемкость написания программ.
Существуют
циклы с известным числом повторений и итерационные циклы. При
итерационном цикле выход из тела цикла, как правило, происходит при
достижении заданной точности вычисления.
Языки программирования –
это искусственные языки записи алгоритмов для исполнения их на ЭВМ.
Программирование (кодирование) - составление программы по заданному
алгоритму.
Классификация языков программирования. В общем, языки
программирования делятся на две группы: операторные и функциональные. К
функциональным относятся ЛИСП, ПРОЛОГ и т.д.
Операторные языки
делятся на процедурные и непроцедурные (Smalltalk, QBE). Процедурные
делятся на машино - ориентированные и машино – независимые.
К машино – ориентированным языкам относятся: машинные языки, автокоды, языки символического кодирования, ассемблеры.
К машино – независимым языкам относятся:
Процедурно – ориентированные (Паскаль, Фортран и др.)
Проблемно – ориентированные (ЛИСП и др.)
Объектно-ориентированные (Си++, Visual Basic, Java и др.)