
- •Тема 2.1. Теоретические основы алгоритмизации и программирования
- •Алгоритм и его свойства
- •Способы записи алгоритма
- •Схемы алгоритмов
- •Виды алгоритмов и основные принципы составления алгоритмов
- •Алгоритмы линейной структуры
- •Алгоритмы разветвляющейся структуры
- •Алгоритмы циклической структуры
- •Алгоритмы со структурой вложенных циклов
- •Подчиненные алгоритмы
Тема 2.1. Теоретические основы алгоритмизации и программирования
План
1. Введение
2. Алгоритм и его свойства
3. Способы записи алгоритма
4. Схемы алгоритмов
5. Виды алгоритмов и основные принципы составления алгоритмов
Введение
Решение задачи на ЭВМ – сложный и трудоемкий процесс. Любая задача начинается с постановки задачи. На основе словесной формулировки задачи выбираются переменные, подлежащие определению, записываются ограничения, связи между переменными, в совокупности образующие математическую модель решаемой проблемы. Анализируется метод решения. На этом этапе необходимо принять очень важное решение – использовать ли имеющееся готовое программное обеспечение или разрабатывать собственную программу. Дешевле и быстрее использовать имеющиеся в наличии готовые разработки. Обновление программного обеспечения – задача программистов. В этом случае традиционно выделяются следующие основные этапы решениязадачи на ЭВМ:
1) постановка задачи, разработка математической модели;
2) выбор метода численного решения;
3) разработка алгоритма и структуры данных;
4) проектирование программы;
5) производство окончательного программного продукта;
6) решение задачи на ЭВМ.
Постановка задачи – точное описание исходных данных, условий задачи и целей ее решения. На этом этапе многие из условий задачи, заданные в форме различных словесных описаний, необходимо выразить на точном (формальном) языке математики. Часто задача программирования задается в математической формулировке, поэтому необходимость в выполнении этапов 1 и 2 отпадает. Для решения достаточно сложных задач этап формализации может потребовать значительных усилий и времени. Среди опытных программистов распространено мнение, что выполнить этап формализации – это значит сделать половину всей работы по созданию программы.
Выбор метода решения тесно связан с постановкой задачи. На первом этапе задача сводится к математической модели, для которой известен метод решения. Метод численного решения сводит решение задачи к последовательности арифметических и логических операций. Однако возможно, что для полученной модели известны несколько методов решения и тогда предстоит выбрать лучший. Можно усовершенствовать существующий или разработать новый метод решения формализованной задачи. Эта работа по своему характеру является научно-исследовательской и может потребовать значительных усилий. Разработкой и изучением таких методов занимается раздел математики, называемый численным анализом.
При выборе метода надо учитывать требования, предъявляемые постановкой задачи, и возможности его реализации на конкретной ЭВМ: точность решения, быстроту получения результата, требуемые затраты оперативной памяти для хранения исходных и промежуточных данных и результатов.
Алгоритм устанавливает последовательность точно определенных действий, приводящих к решению задачи. При этом последовательность действий может задаваться посредством словесного или графического описаний. Если выбранный для решения задачи численный метод реализован в виде стандартной библиотечной подпрограммы, то алгоритм обычно сводится к описанию и вводу исходных данных, вызову стандартной подпрограммы и выводу результатов на экран или на печать. Более характерен случай, когда стандартные подпрограммы решают лишь какую–то часть задачи. Здесь эффективным подходом является разделение сложной исходной задачи на некоторые подзадачи, реализующиеся отдельными модулями. Определяется общая структура алгоритма, взаимодействие между отдельными модулями, детализируется логика. Этот этап тесно связан со следующим этапом проектирования программы.
Проектирование программы включает в себя несколько подзадач. Во-первых, необходимо выбрать язык программирования. Во-вторых, определить, кто будет использовать разработанное программное обеспечение и каким должен быть интерфейс (средство общения с пользователем). В-третьих, решить все вопросы по организации данных. В-четвертых, кодирование, т. е. описание алгоритмов с помощью инструкций выбранного языка программирования. Если задача, для которой разрабатывается алгоритм, сложная, то не следует сразу пытаться разрешить все проблемы. Сложившийся в настоящее время подход к разработке сложных программ состоит в последовательном использовании принципов проектирования сверху вниз, модульного и структурного программирования .
Окончательный программный продукт получается после отладки и испытанияпрограммы. При программировании и вводе данных с клавиатуры могут быть допущены ошибки. Их обнаружение, локализацию и устранение выполняют на этапе отладки и испытания (тестирования) программы. Причем могут быть допущены логические ошибки и на этапе постановки задачи, и на этапе алгоритмизации. В этом случае необходимо вернуться к предыдущим этапам. Дорабатывать и улучшать программу можно в течение всего жизненного цикла программного продукта.
Решение задачи на ЭВМ– выполнение всех предусмотренных программой вычислений и вывод результатов расчета на экран дисплея или на печать.