Алгоритмы и свойства алгоритмов
Современный компьютер способен действовать только по формальным схемам, заготовленным для него человеком.
Поэтому, чтобы привлечь компьютер к исследованию объекта, процесса, явления или к “рутинной” обработке информации, прежде всего надо:
· четко поставить задачу (разработать модель),
· определить исходные данные, форму представления результатов.
· далее необходимо создать алгоритм решения задачи и программу, которая будет понята компьютером.
Возникает классическая для информатики триада:
Модель — алгоритм — программа
Во многих случаях этапы моделирования и алгоритмизации неотделимы друг от друга (например, при разработке модели производственного процесса).
Слово «алгоритм» произошло от имени выдающегося математика средневекового Востока Мухаммеда аль-Хорезми, описавшего в IX веке правила выполнения вычислений с многозначными десятичными числами. Правила сложения, вычитания, умножения столбиком, деления «уголком», которые мы учим в младших классах, - это алгоритмы аль-Хорезми.
Для составления программы, предназначенной для решения на ЭВМ какой-либо задачи, требуется составление алгоритма ее решения — точного предписания, которое определяет процесс, ведущий от исходных данных к требуемому конечному результату.
Работа по решению задач с использованием компьютера делится на несколько этапов. Основными этапами при этом является формализация и алгоритмизация решаемой задачи.
На этапе формализации задача переводится на язык математических формул, уравнений, отношений. После формализации описывается алгоритм решения задачи.
Алгоритм является одним из фундаментальных понятий в информатике.
|
Алгоритм – последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд.
Исполнителем алгоритма может быть человек или автоматическое устройство – компьютеры, роботы, станки, спутники, сложная бытовая техника и даже детские игрушки. Каждый алгоритм создается в расчете на вполне конкретного исполнителя.
Применительно к компьютерам алгоритм определяет вычислительный процесс, начинающийся с обработки некоторой совокупности возможных исходных данных и направленный на получение результатов. Термин вычислительный процесс распространяется на обработку не только числовой информации, но и других видов информации (символьной, графической или звуковой).
Действия, которые может совершать исполнитель, называют системой команд исполнителя.
Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя.
Свойства алгоритмов:
· дискретность – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов;
· детерминированность – исполнитель должен выполнять команды алгоритма в строго определенной последовательности, каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего;
· однозначность – каждая команда определяет однозначное действие исполнителя;
· понятность – понимание исполнителем команд, в алгоритме используются только команды из системы команд исполнителя;
|
· результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов;
· массовость – один и тот же алгоритм может применяться к большому количеству однотипных задач.
Способы описания алгоритмов
Типовые конструкции алгоритмов:
· линейная – описание действий, которые выполняются однократно в заданном порядке;
· циклическая – описание действий или группы действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие.
· разветвляющаяся – алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий;
· вспомогательная – алгоритм, который можно использовать в других алгоритмах, указав только его имя.
Форма и способ записи алгоритма зависит от того, кто будет исполнителем.
Представление алгоритмов можно разделить на две группы:
· естественное:
- словесный способ (алгоритм записан на естественном языке);
- графический способ (алгоритм изображен в виде блок-схемы);
· формальное.
Естественное представление алгоритма
Словесный способ: При словесном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.
Графический способ (блок-схемы): Блок-схема позволяет сделать алгоритм более наглядным и выделяет в алгоритме основные алгоритмические структуры (линейная, ветвление, выбор и цикл). Элементы алгоритмы изображаются на блок-схеме с помощью различных геометрических фигур. Элементы алгоритма соединены стрелками, указывающими шаги выполнения алгоритма.
|
Элементы блок-схем
Элемент блок-схемы | Назначение элемента блок-схемы |
начало и конец алгоритма | |
ввод-вывод данных, преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) | |
процесс, выполнение команд или группы команд, в результате которых изменяется значение, форма представления или расположение данных | |
задание и проверка условия, выбор направления выполнения алгоритма, служит для обозначения условий в алгоритмических структурах «ветвление» и «выбор» | |
применяется для вызова отдельно описанного алгоритма (подпрограммы) | |
применяется для объявления переменных или ввода комментариев |
Формальное представление алгоритмов
Формальное представление алгоритмов – это способ записи алгоритмов с использованием алгоритмических языков, либо языков программирования.
Алгоритмический язык – это система правил и обозначений для точной и однозначной записи алгоритмов. Такая запись является формализованной. Это означает, что запись подчиняется строгим требованиям синтаксиса языка.
Язык программирования – это система обозначений и правил для записи алгоритмов, предназначенная для использования на ЭВМ.
Программа – запись серии исполняемых команд на заданном языке программирования.
На заре компьютерной эры, в 40-50-е годы, программы разрабатывались непосредственно на машинном языке (языке программирования низкого уровня), то есть на том языке, который «понимает» процессор. Программы на языке программирования низкого уровня представляли собой очень длинные последовательности нулей и единиц, в которых человеку разобраться было очень трудно.
В 60-е годы началась разработка языков программирования высокого уровня (Алгол, Фортран, Бейсик, Паскаль и др.), которые позволили существенно облегчить работу программистов. Языки программирования высокого уровня – позволяют создавать программы в привычном для человека виде (в виде предложений). Такие языки программирования строились на основе использования определенного алфавита и строгих правил построения предложений (синтаксиса).
В настоящее время наибольшей популярностью пользуются системы объектно-ориентированного визуального программирования Microsoft Visual Basic, Borland Delphi, C++ (СИ++), JAVA.
В мире насчитывается несколько сотен языков программирования различных структур и возможностей.