v слово «алгоритм» - результат латинской транскрипции имени ученого 9 в. Аль Хорезми, который сформулировал общие правила (алгоритмы) выполнения арифметических операций над десятичными числами.
· Алгоритм – это определенная последовательность действий, выполнение которой приводит к достижению поставленной цели.
- При разработке алгоритма процесс решения задачи формализуется, т.е. сводится применению конечной последовательности достаточно простых правил и действий.
- Главная цель алгоритмизации – возможность поручения решения задачи любому исполнителю (в т.ч. и тому, кто не понимает, почему нужно выполнять предписанные алгоритмом действия).
Свойства алгоритмов:
1. понятность для исполнителя
Ø он должен понимать, как выполнять предписанные алгоритмом действия при любом варианте исходных данных)
2. дискретность (прерывность, раздельность)
Ø алгоритм должен представлять процесс решения задачи как последовательное выполнение простых или ранее определенных шагов
3. детерминированность
Ø каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвольного толкования.
Ø Благодаря этому свойству решение задачи приобретает механический характер, не требуется никаких дополнительных указаний или сведений о ней.
4. результативность (конечность)
Ø за конечное число шагов алгоритм должен:
- либо приводить к решению задачи,
- либо выдавать сообщение о невозможности получить решение по той или иной причине,
- либо продолжаться в течение времени, отведенного для его исполнения с выдачей промежуточных результатов.
5. массовость
Ø алгоритм решения задачи должен разрабатываться в общем виде, т.е. он должен быть применим для целого класса задач, различающихся лишь исходными данными.
Ø Эти данные могут выбираться из определенной области, которая называется областью применимости алгоритма.
Способы оформления алгоритмов
1. словесно,
2. формульно-словесно,
3. графически (в виде блок-схемы)
4. в виде таблицы решений.
v Базовыми алгоритмическими конструкциями являются:
1. линейные,
Ø Линейный – вычислительный процесс, в котором этапы вычислений выполняются в линейной последовательности и каждый этап выполняется только один раз.
2. разветвляющиеся,
Ø Разветвляющийся – вычислительный процесс, реализующийся по одному из нескольких заранее предусмотренных направлений в зависимости от выполнения некоторого условия
3. циклические вычислительные процессы, используемые для решения различного рода задач на ЭВМ.
Ø Циклический – вычислительный процесс, включающий участки, на которых вычисления выполняются многократно по одним и тем же математическим формулам, но при разных значениях исходных данных;
Ø такой многократно повторяющийся участок вычислений называется циклом.
4. Линейным называют вычислительный процесс.
Программирование.
· Программирование – это реализация заданного алгоритма на формальном языке программирования.
- Программированием называется теоретическая и практическая деятельность, связанная с созданием программ.
· Язык программирования – это система обозначений, служащая для точного описания программ или алгоритмов для ЭВМ.
- Они относятся к искусственным языкам и отличаются от естественных:
а) ограниченным числом языковых единиц,
б) строгими правилами записи команд.
Основные требования, предъявляемые к языкам программирования:
ü наглядность (использование в языке уже существующих символов)
ü единство (использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма)
ü гибкость (возможность относительно удобного, несложного описания распространенных приемов математических вычислений)
ü модульность (возможность описания сложных алгоритмов в виде совокупности простых модулей, которые м.б. составлены отдельно и использованы в различных алгоритмах)
ü однозначность (недвусмысленность записи любого алгоритма)
Классификация языков программирования
v Любой алгоритм есть последовательность предписаний, выполнив которые, можно за конечное число шагов перейти от исходных данных к результату.
v В зависимости от детализации таких предписаний определяют уровень языка программирования (чем меньше детализация, тем выше уровень):
1. машинные (самого низкого уровня)
2. машинно-ориентированные (ассемблеры)
3. машинно-независимые (высокого уровня)