Решение задач не всегда можно представить в виде линейного алгоритма.
Алгоритмы, в которых требуется организовать выбор последовательности действий в зависимости от каких-либо условий, называют алгоритмами разветвляющегося типа.
|
Задача: вычислить .
Дано: х – значение аргумента.
Найти: у – значение функции.
Решение:
y= x, если х³0
-x,если х<0
Вид получившейся графической схемы объясняет, почему алгоритм, соответствующий ей назвали ветвящимся.
Словесная форма записи алгоритма
1. Прочесть значение х
2. Если х>0, то у: = х иначе у: = -х
3. Записать значение у
Выделяют полную и неполную условную конструкцию.
Введём обозначение:
Q – условие;
P1, P2, … PN – действия, которые выполняются в случае истинности условия;
T1, T2, … TN - действия, которые выполняются, если условие ложно.
Блок-схема и алгоритм выглядят следующим образом:
Условные конструкции | |
Неполная | Полная |
Если Q, то Р1 Р2 … РN Конец ветвления. | ![]() ![]() ![]() |
Циклический тип алгоритмов
При составлении алгоритмов решения достаточно большого круга задач нередко возникает потребность в неоднократном повторении одних и тех же команд.
Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов), называется алгоритмом циклического типа.
Однако, «неоднократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма (так называемое зацикливание), является нарушением требования его результативности.
Итак, перечислим основные управляющие структуры: линейная, разветвляющаяся, циклическая.
С их помощью можно построить алгоритм любой сложности.
Программа
Для автоматизации процесса решения задачи алгоритм должен быть записан на компьютере. Команды, предназначенные для ЭВМ необходимо записывать в понятной ей форме. С этой целью применяются языки программирования – искусственные языки, алфавит, словарный запас и структура которых удобны человеку и понятны компьютеру.
Язык программирования – это фиксированная система обозначений и правил для описания алгоритмов и структур данных.
Языки программирования
(по уровню предоставляемых возможностей):
· Низкого уровня. Обеспечивают поддержку простейших операций, обычно на уровне системных устройств – процессора, памяти и т.д. например, язык Assembler, содержит только команды пересылки единиц информации между регистрами процессора и областями памяти, а также вызова системных функций ОС.
· Высокого уровня. Обеспечивают поддержку сложных операций, таких как получение информации из базы данных по запросу и вывод информации на принтер. Программы на таких языках более объемны и менее быстродейственны. Например, TP, Си++ и т.д.
Программирование – это процесс составления алгоритма решения поставленной задачи на языке программирования, ее тестирование (проверка соответствия поставленной задаче) и отладка (исправление ошибок).
Программа – это алгоритм (набор команд), записанный на языке программирования.
Программа представляет собой набор единиц информации – байтов.
Она выполняется процессором под управлением операционной системы. Для того, чтобы процессор мог выполнить программу, эта программа и данные, с которыми она работает, должны быть загружены в оперативную память.