Алгоритм – информационная модель, описывающая процесс преобразования объекта из начального состояния в конечное в форме последовательности команд, понятных исполнителю.
Важнейшие свойства алгоритма:
§ дискретность – разделение информационного процесса в алгоритме на отдельные команды, которые выполняет исполнитель;
§ результативность – алгоритм должен обеспечивать преобразование объекта из начального состояния в конечное за конечное число шагов.
Способы записи алгоритмов:
¾ на естественном языке;
¾ в виде блок-схем;
¾ на алгоритмическом языке;
¾ на языке программирования.
Алгоритм, записанный на понятном компьютере языке программирования, называется программой.
Блок-схема – наглядное изображение алгоритма с использованием набора геометрических фигур. Каждая такая фигура называется блоком, а соединительные линии (стрелки) указывают направление исполнения алгоритма.
Наиболее часто используют следующие блоки:
-начало (конец) алгоритма
- ввод данных
- вычислительный блок
- вывод данных
- логический (условный блок)
- начало цикла с параметров
Под термином «языки программирования» подразумевается совокупность символов, соглашений и правил для описания данных и алгоритмов решения задач на компьютере.
В общем смысле программа представляет собой набор машинных команд, которые следует выполнить компьютеру для реализации соответствующего ей алгоритма. Для каждого языка программирования предельно четко формулируются плавила написания программ, которые не допускают вольного расположения отдельных элементов команд и знаков препинания. Каждая команда имеет определенный синтаксис – правила записи.
Языки программирования можно условно разделить на следующие классы.
МАШИННЫЙ ЯЗЫКИ. Машинный язык представляет собой свод правил кодирования в числовом виде определенных действий и операций (машинные коды). Каждое действие выполняемое компьютером, представляется в виде команды, которая определяет некоторую элементарную часть процесса обработки информации.
Программа, написанная на машинном языке, получается высокого качества, хотя программирование на этом языке часто называют программированием на низком уровне. Однако, составление программы на машинном языке трудоемко, сопровождается большим количеством ошибок и носит характер решения сложной комбинаторной задачи. Одновременно с составлением команд программисту необходимо распределять память, т.к. команды можно составлять лишь после того, как будут известны номера ячеек для хранения всей необходимой для этих команд информации.
МАШИННО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ. В основу этих языков заложена система команд какой-либо конкретной электронно-вычислительной машины или определенного класса ЭВМ, что явилось основным их недостатком. Язык ассемблера позволяет создавать наиболее эффективные программы, однако он очень трудоемок и требует высокой квалификации программиста.
АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ – целиком ориентированы на отражение структуры конкретного алгоритма и не зависят от архитектуры компьютера. Основным достоинством алгоритмических языков, является удобство и простота их освоения и составление программы любой сложности.
ПРОЦЕДУРНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ – представляют собой разновидность алгоритмических языков, у которых имеется возможность описания программы как совокупности процедур (подпрограмм).
ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ так же, также представляют собой разновидность алгоритмических языков, которые предназначены для решения задач определенного класса.
ИНТЕГРИРОВАННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ представляют собой систему автоматизации процесса программирования, образуемую языком программирования, транслятором, а также вспомогательным средством для подготовки программы к выполнению.