Основные алгоритмические конструкции.
Суть процесса исполнения алгоритма заключается в скрупулезном и педантичном выполнения операций алгоритма в заданном порядке. В некоторых алгоритмах порядок исполнения команд зависит от выполнения или невыполнения какого-либо условия, в других несколько команд алгоритма нужно выполнить несколько раз, а есть алгоритмы, в которых все команды выполняются последовательно.
Иными словами, все алгоритмы можно разделить на три основные алгоритмические конструкции:
1) Линейные алгоритмы — алгоритм, в котором все этапы решения задач выполняются строго последовательно (Рис 4.1).
2) Разветвляющиеся алгоритмы. Алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса, называется разветвляющимся (Рис 4.2).
3) Циклические алгоритмы — это алгоритмы, в которых одна или несколько команд выполняются многократно (Рис 4.3).
Алгоритм любой сложности можно составить используя комбинацию из этих трех основных конструкций. Составив блок-схему алгоритма, его можно закодировать на каком либо языке программирования.
Основные структуры данных
Работа с большими наборами данных автоматизируется проще, когда данные упорядочены, то есть образуют заданную структуру. Существует три основных типа структур данных: линейная, иерархическая и табличная. Их можно рассмотреть на примере обычной книги.
Если разобрать книгу на отдельные листы и перемешать их, книга потеряет свое назначение. Она по-прежнему будет представлять набор данных, но подобрать адекватный метод для получения из нее информации весьма непросто. (Еще хуже дело будет обстоять, если из книги вырезать каждую букву отдельно — в этом случае вряд ли вообще найдется адекватный метод для ее прочтения.)
Если же собрать все листы книги в правильной последовательности, мы получим простейшую структуру данных — линейную. Такую книгу уже можно читать, хотя для поиска нужных данных ее придется прочитать подряд, начиная с самого начала, что не всегда удобно.
Для быстрого поиска данных существует иерархическая структура. Так, например, книги разбивают на части, разделы, главы, параграфы и т. п. Элементы структуры более низкого уровня входят в элементы структуры более высокого уровня: разделы состоят из глав, главы из параграфов и т. д.
Для больших массивов поиск данных в иерархической структуре намного проще, чем в линейной, однако и здесь необходима навигация, связанная с необходимостью просмотра. На практике задачу упрощают тем, что в большинстве книг есть вспомогательная перекрестная таблица, связывающая элементы иерархической структуры с элементами линейной структуры, то есть связывающая разделы, главы и параграфы с номерами страниц. В книгах с простой иерархической структурой, рассчитанных на последовательное чтение, эту таблицу принято называть оглавлением, а в книгах со сложной структурой, допускающей выборочное чтение, ее называют содержанием.