Решение задач с помощью компьютера основывается на понятии алгоритма, который представляет собой точное описание вычислительного процесса, ведущего от варьируемых изначальных данных к конечному результату.
Алгоритм является точным описанием некоторого процесса, инструкцией по его выполнению. Процесс разработки алгоритма является достаточно сложным и трудоемким. Алгоритмизация представляет собой технику разработки (составления) алгоритма для решения задач на ЭВМ.
Изобразительные средства описания алгоритма
При записи алгоритмов решения задач можно применять изобразительные способы, представленные в виде:
- словесно-формульного описания;
- блок-схемы (используются для описания графические символы);
- алгоритмических языков;
- операторных схем;
- псевдокодов.
Запись алгоритмов осуществляется по общей методике:
- Любому алгоритму присваивается имя, раскрывающее его смысл.
- Обозначаются начало и конец алгоритма.
- Описываются входные и выходные данные.
- Указываются команды, позволяющие выполнять определенные действия над выделенными данными.
Таким образом, алгоритм имеет общий вид, состоящий из следующих разделов:
- названия;
- описания данных;
- начала;
- команд;
- конца.
Способы записи алгоритмов
При формульно-словесном способе записи алгоритмов описание данных выполняется с помощью формул и слов. Последовательность этапов выполнения алгоритма записывают в произвольной форме на естественном профессиональном языке той предметной области, для которой он строится.
Наиболее распространен графический способ описания алгоритмов, так называемая блок-схема. Название блок-схемы стали использовать, поскольку при графическом описании алгоритма используют схемы или блочные символы (блоки), соединяемые линиями связи. Все этапы вычислительного процесса представляются в виде геометрических фигур (блоков). Их подразделяют на:
- арифметические (вычислительные), которые представлены прямоугольниками;
- логические, представлены ромбами;
- блоки ввода-вывода данных представлены параллелограммами.
Перечисленные выше блоки приведены на рисунке.
Порядок выполнения этапов указывают стрелками, которые соединяют блоки. Размещение геометрических фигур выполняется слева на право и сверху вниз. Нумеруют блоки в порядке их размещения в схеме.
Алгоритмический язык представляет собой специальное средство, которое предназначено для записи алгоритма в аналитическом виде. Данный тип языка близок к естественным языкам и к математическим выражениям. В каждом алгоритмическом языке имеется свой словарь. Для записи алгоритма на любом алгоритмическом языке используются строгие правила этого конкретного языка.
Операторные схемы алгоритмов являются способом описания алгоритмов, при котором каждый оператор обозначают буквой (например, А – арифметический, Р – логический и т.д.). Сами операторы записывают слева направо в порядке их выполнения, при этом у каждого оператора имеется индекс, который указывает на его порядковый номер. Алгоритм записывают одной строкой в виде последовательности операторов.
Псевдокод представляет собой систему команд абстрактной машины. Данный способ записи алгоритмов осуществляется с помощью операторов близких к алгоритмическим языкам.
Типы алгоритмических процессов
По структуре выполнения алгоритмы бывают 3 видов:
- линейные;
- ветвящиеся;
- циклические.
Линейный алгоритм, имеющий линейную структуру, является таким алгоритмом, в котором выполнение всех действий осуществляется последовательно друг за другом лишь $1$ раз.
Схема состоит последовательности блоков, расположенных сверху вниз в порядке их выполнения. Данные первичного и промежуточного характера не влияют на направления процессов вычисления.
При решении практических задач часто можно встретить такие, в которых от первоначальных условий или промежуточных результатов зависит выполнение вычислений по одним или другим формулам.
Задачи подобного типа описывают, используя алгоритмы разветвляющейся структуры. В этих алгоритмах направление продолжения вычисления выбирается согласно итогам проверки заданного условия. Ветвящиеся процессы описывают с помощью оператора If, обозначающим условие.
На изображении представлены виды алгоритмов ветвления.
При решении многих задач используют многократное повторение определенных участков вычислений. Для этого применяют алгоритмы циклической структуры, так называемые циклические алгоритмы.
Циклы представляют собой последовательности команд, повторяющиеся до тех пор, пока заданное условие не будет выполнено.
Подобное описание многократно повторяющихся процессов в значительной степени снижает трудоемкость процесса написания программ. Различают 3 схемы циклических вычислительных процессов, варианты которых представлены на изображении ниже.
Особенность первой схемы заключается в том, что условие выхода из цикла проверяется до выполнения тела цикла. Если условие выхода из цикла будет выполняться, то тело цикла не выполнится ни разу.
Особенность второй схемы заключается в выполнении цикла хотя бы раз, поскольку первая проверка условия выхода из цикла выполняется после завершения выполнения цикла.
Различают циклы с известным числом повторений и итерационные циклы. В ходе итерационного цикла выход из тела цикла осуществляется только после достижения заданной точности вычислений.