Термин алгоритм происходит от имени узбекского ученого Аль-Хорезми, который в своем труде "Арифметический трактат", переведенном с арабского на латынь, изложил правила арифметических действий над числами. Эти правила и называли алгоритмами. Таким образом, правила вычитания, сложения, умножения, построения геометрических фигур - все это алгоритмы.
С течением времени данное понятие расширялось и теперь, алгоритмами называют определенную последовательность действий, приводящую к определенному результату.
Рассмотрим пример:
Дано: улица с движением, пешеходный переход.
Найти: переход на другую сторону улицы.
1) остановиться на тротуаре;
2) посмотреть налево;
3) если транспорта нет, то идти до середины дороги и остановиться, иначе ждать пока проедет транспорт, затем идти до середины дороги и остановиться;
4) посмотреть направо;
5) если транспорта нет, то идти до тротуара противоположной стороны улицы, иначе ждать пока проедет транспорт, затем идти до тротуара противоположной стороны улицы;
|
|
6) конец.
Свойства алгоритмов:
1. Дискретность (разбиение на последовательность отдельных шагов)
2. Понятность
3. Детерминированность или однозначность (не должно быть шагов, которые можно воспринять неоднозначно)
4. Результативность
5. Массовость
Способы записи алгоритмов:
1. словесный
Ø естественный язык (кулинарный рецепт)
Ø язык программирования
2. графический (блок-схемы)
Ни один алгоритм не может работать без исполнителя – человека, животного или машины который понимает команды и исполняет их формально, т.е. не задумываясь.
У каждого исполнителя есть своя система команд исполнителя (СКИ). Если по каким-либо причинам он не может выполнить команду, поступает сообщение «не могу». Если команда не входит в СКИ, поступает сообщение «не понимаю».
Основные понятия объектно-ориентированного программирования
Язык программирования – это искусственно созданный язык для записи алгоритма с помощью ЭВМ. Программа – алгоритм, записанный на языке программирования.
Языки программирования:
1. неструктурный (Basic)
2. структурный (Pascal);
3. логический (Prolog);
4. объектно-ориентированный (Delphi, Lazarus, Visual C, Visual C#);
5. функциональный (Lisp («черный ящик»)).
·