Алгоритмы☛Уроки программирования ✎ |
Каждый человек, от рядового гражданина до президента, ежедневно, на протяжении всей сознательной жизни вынужден постоянно решать различные проблемы, решать вопросы, искать выход из определенных ситуаций. Все это - синонимы к известному (и не всегда приятного им слова) - ЗАДАЧА. Какие же задачи вы решали сегодня, если у нас не было еще по расписанию ни математики, ни физики, ни химии, ни информатики. Вспомните начало сегодняшнего дня. Вы проснулись, и возникло первый вопрос: вставать или еще полежать? Эту задачу вы успешно решили. Возникает следующая: «Где мои вещи?», И так, пока не улеглись на ночь в кроватку. Подобные задачи компьютер не сможет решить за вас, хотя ...
Сегодня люди используют компьютер для решения самых разнообразных задач: от выполнения сложных вычислений в научных исследованиях и экономике до выполнения домашней рутины (стирка белья, приготовление пищи и т.п. с использованием компьютеризированной техники). На сегодня без него никто из вас мы представляет себе обработки больших потоков информации, с каждым дном растут.
Нам также известно, что большинство типичных задач: оформление документации, решение многих бухгалтерских задач, обработка изображений, получение данных - компьютер в состоянии решить с помощью прикладного программного обеспечения общего назначения.
Пользователь анализирует задачи, которую необходимо решить, и оптимально подходит программное средство. Но довольно часто набор стандартных программных средств по определенным причинам не удовлетворяет пользователя - он стремится иметь программное средство, которое бы смогло решать задачи определенного типа. Выход - написать программу для решения поставленной задачи. Этот процесс условно разделяют на несколько этапов.
Этапы решения задач с помощью компьютера:
• постановка задачи;
• построение математической модели;
• построение алгоритма;
• составление сценария диалога компьютера с пользователем;
• выбор языка программирования;
• составление программы;
• трансляция программы;
• отладка программы;
• эксплуатация программы.
Постановка задачи
Постановка задачи - это четкая формулировка условия задачи, определение исходных данных для ее решения (что дано, известно и т.п.), точные указания результатов, необходимо получить (что нужно найти).
Решение любых задачи всегда начинается с ее постановки - изложение языком четко определенных математических понятий. На первом шаге необходимо понять, в чем заключается задача, какие данные известны, которые можно определить, а какие результаты вычислений считать решением (результатом) задачи и какова перспектива применения этого решения.
Построение математической модели
Математической модели - это совокупность математических объектов и отношений между ними, отражающих свойства процесса, который моделируется.
Построение математической модели - очень ответственный этап. Не всегда условие сформулированной задачи включает в себя готовую математическую формулу, можно применить к разработке алгоритма задачи (как в примере задачи на вычисление площади круга по данному его радиусом), не всегда решение задачи удается получить в явном математическом виде, связывает входные данные и результаты (как в программе «Гороскоп на неделю», динамичных игровых программах). Для этого создается информационная математическая модель изучаемого объекта. Выбор вида модели зависит от информационной сущности объекта, а не от его физической природы. То есть не столько важно прикладное значение задач, сколько однотипность методов, которыми они решаются (вам известна смешинка а математики младшей школы, когда ученик объясняет, почему он не выполнил домашнего задания, ибо в классе решали задачу на яблоки, а в домашнем задании - на груши). Например, логические модели используются как для моделирования рассуждений человека, так и при описании логических схем автоматики.
Решая задачи из школьного курса математики, физики, мы учитываем все реальные факторы, влияющих на процесс исследований. Поэтому достаточно важным является умение выделять среди всех факторов главные и второстепенные, которыми можно пренебречь. Так, вычисляя площадь поверхности геометрических тел, мы пренебрегаем фактором широховатости поверхности, температурными параметрами исследуемого объекта и эталона измерения. Довольно часто складывается ситуация, когда неизвестно, какими факторами можно пренебречь, поэтому может быть несколько математических моделей, описывающих одну и ту же задачу с разной степенью достоверности.
Степень соответствия модели реальному объекту проверяется практикой - компьютерным экспериментом. Критерий практики дает возможность оценить построенную модель и уточнить (заменить) его необходимости. Чем достовернее модель отражает реальность процесса, тем точнее полученные результаты.
Построение алгоритма
Алгоритм - последовательность (порядок) выполнения вычислительных миграций - разрабатывается на основе построенной математической модели.
На основе математической модели, используя, как кирпичики, структуры алгоритмов и известные (ранее описанные) алгоритмы, составляют алгоритм решения поставленной задачи. Если известными методами нельзя построить алгоритм, придется разработать собственный. В создании сложных алгоритмов применяется метод пошаговой детализации, суть которого заключается в том, что сложная (индюшачья разбивается на более простые подзадачи, каждую из которых можно распить на еще более простые, вплоть до выполнения элементарных математических операций. Последний шаг в методе пошаговой разработки алгоритма - МП'сднанная отдельных частей (модулей) в единый алгоритм.
Составление сценария диалога компьютера с пользователем
Сценарий определяет правила работы человека с компьютером, Последовательность ввода данных, форму представления информации людям, реакцию компьютера на команды и данные, вводимые.
Процесс решения задачи с помощью компьютера - это ИММ родной диалог человека с компьютером. Как и диалог между людьми,
Основы алгоритмизации и программирования
Диалог человек - компьютер ведется по определенным (иногда более жесткими) правилами. Описание этих правил и форма представления информации составляют содержание сценария. Заказчик программного средства может подавать сценарий как в описательной, так и в графической форме. Кроме того, в нем должны определяться правила и форма ввода данных и команды, с помощью которых человек управляет работой компьютера, реакция компьютера на все варианты данных и команд, вводимых.
Выбор языка программирования
Оптимальный выбор языка программирования базируется на реальной оценке сложности, типа и характера задачи.
Программа - алгоритм, записанный языком, «понятной» компьютеру. Разнообразие существующих языков программирования требует от программиста оценки сложности и характера задачи, является решающим в выборе оптимальной языка программирования для реализации решения поставленной задачи.
Этот этап решения задач с помощью компьютера для нас не создает никаких проблем, поскольку мы будем изучать лишь один язык программирования .
Составление программы
Составление программы заключается в написании текста программы на основе сценария и алгоритма с учетом правил ее записи на выбранном языке программирования.
Этот этап не требует детальных объяснений, а лишь требует знания выбранного языка программирования. Цель - программа, которая изначально записывается на бумаге (от руки самим программистом), а затем в редакторе среды программирования.
Трансляция программы
Трансляция - это переложение программы на машинный язык.
Перевод текста программы на машинный язык осуществляется с помощью специальных программ трансляторов, входящих в состав среды программирования каждого языка программирования. Одной из функций трансляторов является проверка наличия в вашей программе синтаксических ошибок после ввода ее в компьютер.
Настройка и тестирование программы
Настройка и тестирование программы - это проверка правильности работы программы с помощью системы заранее специально составленных и просчитанных тестов.
Устранение всех синтаксических (с точки зрения синтаксиса языка программирования) ошибок не гарантирует отсутствия других типов ошибок: содержательных, логических, алгоритмических. Все эти ошибки может устранить только разработчик программы и отнюдь не компилятор или интерпретатор среды программирования.
Суть отладки программы заключается в том, что заранее готовятся система тестов, по которым проверяется работа программы в различных режимах и сверяются результаты работы программами с заранее просчитанными результатами. Таким образом, каждый тест содержит набор входных данных, для которых известен результат. Система тестов должна быть полной, т.е. охватывать все возможные варианты ввода данных, команд пользователя, реакций компьютера на них. Если результаты тестирования совпадают с результатами работы программы - можно считать, что логических ошибок нет.
Эксплуатация программы
Эксплуатация программы - это использование созданной программы пользователями.
Если программа успешно прошла все предыдущие этапы, то в известной степени можно верить всем результатам, полученным при любых допустимых исходных данных. Теперь вашу программу можно тиражировать, предлагать другим пользователям, рекламировать, регистрировать в банке интеллектуальной собственности и т.д.
Теперь вы можете гордиться, что является владельцем такой замечательной программы.
Итак, основные этапы решения прикладной задачи с помощью компьютера таковы:
• постановка задачи;
• построение математической модели;
• построение алгоритма;
• составление сценария диалога компьютера с пользователем;
• выбор языки программирования;
• составление программы;
• трансляция программы;
• отладка программы;
• эксплуатация программы.
Другие материалы по теме:
- Классификация case-средств- Средства доступа к базам данных
- Объектно-ориентированный подход к созданию программных средств
- Среда программирования delfi 2.0
- Понятие алгоритма
