Компьютерная
программа является алгоритмом действий
для процессора компьютера, а сам процессор
– исполнителем данного алгоритма.
Сама по себе компьютерная программа является
общим алгоритмом, который в свою очередь
разделяется на отдельные составные части,
на отдельные алгоритмы, которые принято
называть алгоритмическими структурами,
хотя не будет ошибочно, если называть
такие структуры просто алгоритмами. Владея
навыками в применении алгоритмических
структур, программист как бы строит программу
в целом, как здание из отдельных кирпичиков.
В процессе создания и использования
языков программирования были реализованы
многие виды алгоритмических структур,
как говорится – на все случаи жизни. На
сегодняшний день, в любом современном
языке, на основании имеющегося арсенала
алгоритмов, можно оформить практически
любое поведение процессора по желанию
программиста, другими словами – написать
абсолютно любую программу.
Не смотря на обилие возможностей создания
огромного количества самых сложных
программ, большое количество языков
программирования, различных требований
к созданию компьютерных программ,
алгоритмических структур всего
несколько. Грамотно осознав и накопив
опыт по работе с этим количеством алгоритмов,
можно смело приступать к созданию компьютерной
программы. Причем даже не столь важно,
какой язык программирования использовать,
синтаксис языка (его ключевые слова и
правила оформления) всегда можно посмотреть
в нужном справочнике, а вот общий алгоритм
вашей собственной программы, принципы
и пути взаимосвязей между алгоритмическими
структурами в ней известны только вам,
как автору, и никто вам здесь не помощник,
ни справочники, ни база данных Интернета,
только вы сами и ваши знания. Еще одно
доказательство тому, что не существует
программ с абсолютно одинаковым алгоритмом.
Если сравнить между собой две одинаковые
на первый взгляд программы, которые выполняют
одни и те задачи, выполнены по одному
и тому же заказу (техническому заданию
- ТЗ), на входе получают одни и те же данные,
а на выходе выдают одинаковые результаты,
то все равно их внутренний алгоритм, внутреннее
содержимое будет разное и зависеть оно
будет только от индивидуальных особенностей
автора-программиста. Из чего можно сделать
вывод, что создание программы для компьютера
– это глубоко творческий процесс. Также
как два художника срисовывая в природе
одну и ту же лесную опушку, никогда не
нарисуют одинаково.
Итак, как уже говорилось, существует
несколько видов алгоритмических структур,
которые существуют почти во всех языках
программирования, кроме нескольких узконаправленных:
1. Линейный алгоритм;
2. Разветвленный алгоритм (ветвление);
3. Алгоритмическая структура «Выбор»;
4. Алгоритмическая структура «Цикл» (циклический
алгоритм).
Язык Visual Basic не исключение, как член
группы высокоуровневых языков программирования,
в нем присутствуют все четыре
вида алгоритмических структур. Рассмотрим
подробнее самый простой вид
алгоритма – линейный алгоритм.
Линейным
называется алгоритм, в котором команды
выполняются последовательно одна за
другой.
Не зря линейный алгоритм называют
еще элементарным – в нем все
команды для процессора расписаны
последовательно, а значит, и выполняются
также – одна за другой, по линейке, без
отклонений, без условий. Такие команды
называют еще серией команд.
Давайте вспомним примеры.
Выполнение
домашнего задания по информатике
мы выполняли последовательно,
у нас все для этого было:
учебник по информатике, записи лекций
с уроков, знания, вопросы домашнего задания
и так далее. Или пример с «Калькулятором»
– программой, которая умела суммировать
цифры и состояла лишь из поля ввода для
переменной a, поля ввода для переменной
b, кнопки «+», кнопки «=» и поля вывода результата.
Такая программа бы являлась самой
простой, потому что построена она
на самом простом алгоритме –
линейном, других возможностей, кроме
суммирования, она бы не имела. То есть
процессор, после загрузки вел себя
строго линейно – ожидал ввода первой
цифры, потом второй, суммировал и выдавал
какой-то результат. Мы не предоставили
возможности процессору повести себя
как-то иначе. А что если бы наш «Калькулятор»
умел бы не только суммировать, но и делить,
например, a на b. Из правил арифметики мы
знаем, что деление на 0 невозможно, но
получилось бы так, что пользователь нашей
программы в качестве делителя ввел ноль.
Математическая операция невозможна,
процессор бы вернул ошибку, а программа
– неприятное сообщение. Как быть в этом
случае? На это и существуют более «продвинутые»
алгоритмические структуры, о которых
мы поведем речь в следующих статьях. Может
сложиться мнение, что линейный алгоритм
неудобен и не стоит его использовать,
владея знаниями по другим алгоритмам.
Но это в корне неверный вывод – написать
программу, не используя линейный алгоритм
невозможно. Он составляет костяк программы,
ее основу, в внутри него, там где это необходимо,
производят вставки других алгоритмических
структур.
Прежде чем, приступить к написанию
программы, чтобы сделать алгоритм
более наглядным и лучше отследить
моменты дискретизации и детерминированности,
часто используют блок-схемы. Это графическое
изображение, где в виде различных геометрических
фигур описывают элементы будущей программы.
Причем за определенными фигурами закреплены
конкретные элементы, например, серию
команд (линейный алгоритм) принято обозначать
в виде прямоугольника, внутри которого
описывается сама последовательность
действий. Фигурой эллипса (прямоугольника
с закругленными углами) обозначают начало
и конец программы. Стрелками указывают
направление действия программы. Существуют
специальные ГОСТы, где перечислены все
возможные фигуры, используемые для этих
целей: ГОСТ 19.701-90, ГОСТ 19.002-80, ГОСТ 19.003-80.
Попробуем изобразить «Калькулятор» из
нашего прошлого примера в виде блок-схемы:
Упрощенная
блок-схема линейного алгоритма
(Щелкните
для увеличения)
У нас получилась
довольно простая блок-схема всего
из трех геометрических фигур, где во внутрь
прямоугольника мы образно поместили
серию команд. Такая схема является приблизительной
и не отражает сущности программы и ее
составных частей, даже на уровне линейного
алгоритма. Попробуем усложнить блок-схему
этого же примера, используя более широкий
диапазон фигур:
Более сложная
схема линейного алгоритма
Как мы видим из этого рисунка, для
каждого действия существует определенная
фигура: для ввода-вывода – параллелограмм,
для сохранения данных в неавтономную
(энергозависимую память) – прямоугольник
с закругленными боками. Этот наш пример
можно было бы усложнять, приводить к более
профессиональному виду и далее, но на
данном этапе работы, примем такой вариант,
как наиболее правильный.
Итак, подведем
итоги данного реферата:
1. Компьютерная программа – общий алгоритм
для процессора, который состоит из отдельных
блоков – алгоритмических структур;
2. Алгоритмических структур известное
количество, правильное и рациональное
использование которых позволяет реализовать
любые, самые сложные маневры при написании
программы;
3. Создание программы – творческий процесс.
Это – продукт, созданный индивидуально
каждым программистом, основываясь на
его знаниях, умениях, навыках и опыте
работы;
4. Самое сложное в программировании –
целенаправленное и осознанное использование
алгоритмических структур;
5. Линейный алгоритм самый простой и не
позволяет реализовать элементы программы
в зависимости от условий, однако на нем
базируется остов всей программы. Это
как цемент в строительстве стены – его
не видно в готовом объекте, но без него
стена ссыпалась бы в песок, камни и другие
строительные составляющие;
6. В целях визуального представления связки
элементов программы используются графические
блок-схемы. Прежде чем приступить к написанию
кода программы, желательно составить
такую схему – она поможет в дальнейшем
не ошибиться и не запутаться. |