Свойства алгоритма
Лекция 5
Алгоритмы программ
Алгоритм- это строгая последовательность действий, однозначно приводящая к искомому решению определенного класса задач .
1.Конечность. Алгоритм должен заканчиваться после конечного числа шагов.
2. Определенность. Действия, которые необходимо произвестина каждом шаге,должны быть определены однозначно.
3.Наличие ввода и вывода.Алгоритм имеет некоторые исходные данные, которые требуют ввода в вычислительный процесс. Алгоритм всегда имеет выходные величины – результат обработки данных.
4.Эффективность.Все операции должны выполняться законечный отрезок времени. Одной из характеристик эффективности (качества) алгоритма является время, необходимое для его выполнения.
Другими характеристиками могут являться, например, приспособленность алгоритма к вычислительным машинам, его простота, изящество и т. п.
Способы записи алгоритмов:
- на естественном языке
- графический способ, в виде блок-схемы
- на языке программирования
Естественный язык для описания алгоритмов применяется редко, так как выражения естественного языка часто двусмысленны, допускают различия в толковании. Например, предложение: «Он встретил ее на поляне с цветами» дает основание предположить, что- либо он был с цветами, либо поляна была с цветами, либо она была с цветами.
Для описания алгоритмов разработаны специальные языки программирования, в которых каждое утверждение имеет точный смысл. Запись алгоритма на языке программирования называется программой.
Графическое отображение алгоритма выполняется с помощьюусловных графических обозначений - символов поГОСТ 19.701-90.Последовательность выполнения символов указывается линиями потока. Выполнение схемы осуществляется по ГОСТ 19.701-90.
Ниже приведены наиболее часто употребляемые символыблок-схеми некоторые правилаих применения.
Начало, конец. Начало (конец) процесса обработки данных или выполнения программы.
Ввод-вывод. Функция, в которой данные становятся доступными для обработки на ЭВМ (ввод) или регистрируются результаты обработки (вывод)
Операция.Функция, в результате которой изменяется значение, форма расположения данных.
Переход (разветвление). Выбор направления выполнения программы в зависимости от некоторых условий.
Подпрограмма. Заранее определенный процесс, состоящий из одной или более операций, команд программы, наименование и подробное содержание, которого приведено отдельно.
Цикл.Процесс, в котором проставляются начальное и конечное значения переменной цикла и шаг ее изменения .
Комментарий. Связь между элементами схемы и пояснителем. Их применение необязательно и служит для улучшения восприятия алгоритма.
Линии потока
Слияние линий потока
Существуют три простых типа алгоритмов
- линейный
- ветвящийся
- циклический.
В общем случае, алгоритм любой сложности может быть представлен комбинаций указанных трех типовых алгоритмов.
Отметим, что разработке алгоритма должны предшествовать формализация задачи (например, в математическом виде) и анализ исходных данных, обеспечивающие понимание сущности задачи.