Автор работы: Пользователь скрыл имя, 15 Января 2011 в 23:21, контрольная работа
Если рассматривать сложившуюся на данный момент коньюнктуру и определяющие ее факторы, то среди них можно выделить три основные группы:
1. Постоянно действующие факторы нециклического свойства (научно-технический прогресс, демографические факторы, расходование природных ресурсов).
2. Постоянно действующие циклические факторы (будут рассматриваться далее).
3. Случайные и временно действующие факторы (стихийные бедствия, войны).
*
позволяет использовать
* ориентирован на минимальный объем исходной информации;
* обеспечивает наиболее быстрое получение искомых результатов.
Сложность
и ответственность этапа
Третий этап технологического процесса подготовки решения задач на ЭВМ представляет собой алгоритмизацию ее решения, т.е. разработку оригинального или адаптацию (уточнение и корректировку) уже известного алгоритма.
Алгоритмизация - это сложный творческий процесс. В основу процесса алгоритмизации положено фундаментальное понятие математики и программирования - алгоритм. Название "алгоритм" (правильнее "алгорифм") происходит от латинизированного воспроизведения арабского имени узбекского математика Аль-Хорезми, жившего в конце VIII - начале IX в., который первым сформулировал правила, позволяющие систематически составлять и решать квадратные уравнения.
Наряду с трактовкой алгоритма в соответствии с принятым стандартом (по ГОСТ 19.004-80 "алгоритм - это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату ") термин "алгоритм" может быть представлен более развернутым определением как конечный набор правил, однозначно раскрывающих содержание и последовательность выполнения операций для систематического решения определенного класса задач за конечное число.
Любой алгоритм обладает следующими свойствами: детерминированностью, массовостью, результативностью и дискретностью.
Детерминированность (определенность, однозначность) означает, что набор указаний алгоритма должен быть однозначно и точно понят любым исполнителем. Это свойство определяет однозначность результата работы алгоритма при одних и тех же исходных данных.
Массовость алгоритма предполагает возможность варьирования исходных данных в определенных пределах. Это свойство определяет пригодность использования алгоритма для решения множества задач данного класса. Свойство массовости алгоритма является определяющим фактором, обеспечивающим экономическую эффективность решения задач на ЭВМ, так как для задач, решение которых осуществляется один раз, целесообразность использования ЭВМ, как правило, диктуется внеэкономическими категориями.
Результативность алгоритма означает, что для любых допустимых исходных данных он должен через конечное число шагов (или итераций) завершить работу.
Дискретность алгоритма - это возможность разбиения алгоритмического процесса на отдельные элементарные действия, возможность реализации которых человеком или ЭВМ не вызывает сомнения, а результат их выполнения вполне определен и понятен.
Таким образом, алгоритм дает возможность чисто механически решать любую задачу из некоторого класса однотипных задач. Сложность и ответственность реализации этапа алгоритмизации объясняются тем, что для решения одной и той же задачи, как правило, существует несколько различных алгоритмов, отличающихся друг от друга уровнем сложности, объемами вычислительных и логических операций, составом необходимой исходной и промежуточной информации, точностью получаемых результатов и другими факторами, которые могут оказать существенное влияние на эффективность выбранного способа решения задачи.
Процесс алгоритмизации решения задачи обычно реализуется по следующей схеме:
* выделение автономных этапов процесса решения задачи (как правило, с одним входом и выходом);
*
формализованное описание
*
проверка правильности
Существует несколько способов описания алгоритмов: словесный, формульно-словесный, графический, средствами языка операторных схем, с помощью таблиц решений и др. Помимо требования обеспечения наглядности выбор конкретного способа диктуется рядом факторов, из которых определяющими являются: степень необходимой детализации представления алгоритма, уровень логической сложности задачи и т.п.
Изображение схем алгоритмов при этом осуществляется по определенным правилам, ГОСТам и ОСТам, которые повышают их наглядность и однозначность восприятия, что облегчает обнаружение логических ошибок в процессе отладки программ.
Операторный способ записи алгоритма - это изображение последовательности операций процесса обработки данных с помощью заданного набора буквенных символов, обозначающих ту или иную типовую операцию. Последовательность выполнения операций алгоритма определяется расположением операторов в схеме (при чтении слева направо в соответствии с цифровой индексацией). Передача управления от оператора к оператору осуществляется в порядке следования в символической записи алгоритма, в случае отсутствия передачи управления от очередного оператора к последующему оператору записи между ними ставится признак завершения ветви алгоритма - символ точка с запятой.
Нарушение
естественного порядка
Использование операторного способа представления алгоритма значительно упрощает процесс его записи, так как каждому оператору схемы обычно соответствует определенная совокупность достаточно простых операций обработки информации.
Однако
из-за малой наглядности и
Перечисленные способы описания алгоритмов имеют существенный недостаток, они не обеспечивают наглядности представления многовариантных вычислительных процессов, что характерно для алгоритмов решения сложных задач с разветвленной логикой. Особенно остро эти недостатки проявляются, когда возникает потребность внесения изменений и дополнений в логическую схему решения задачи.
Для разработки алгоритмов решения многовариантных расчетов с большим количеством проверок условий, определяющих выбор той или иной ветви процесса обработки информации, целесообразно использовать изобразительные средства в виде таблиц решений.
Таблицы решений, возникшие в обычной деловой практике, зарекомендовали себя как удобное средство, позволяющее четко, быстро и просто описывать достаточно сложные ситуации в задачах управления.
Описывая саму задачу и необходимые для ее решения действия, таблицы решений в наглядной форме определяют, какие условия должны быть выполнены, прежде чем можно будет переходить к тому или иному действию.
Легкость освоения специалистами любой области (профессии), простота модификации, компактность и, главное, более общая по сравнению с блок-схемами форма и более строгая логичность представления исходных условий и получаемой конечной информации, необходимой для программирования задач, - вот основные причины широкого использования таблиц решений.
Кроме того, таблицы решений пригодны для описания параллельных процессов (которые невозможно в удобной форме представить с помощью блок-схем), удобны для описания логики при построении сложных моделей ситуационного управления.
Сравнение изобразительных возможностей таблиц решений и блок-схем можно проиллюстрировать на задаче определения стажа работы на основе дат зачисления и увольнения работника.
Составление (адаптация) программ (кодирование) является завершающим этапом технологического процесса разработки программных средств, предшествующим началу непосредственно машинной реализации алгоритма решения задачи. Процесс кодирования заключается в переводе описания алгоритма на один из доступных для ЭВМ языков программирования. В процессе составления программы для ЭВМ конкретизируются тип и структура используемых данных, а последовательность действий, реализующих алгоритм, отражается посредством конкретного языка программирования.
Тестирование и отладка составляют заключительный этап разработки программы решения задач. Оба эти процесса функционально связаны между собой, хотя их цели несколько отличаются друг от друга. Тестирование представляет собой совокупность действий, предназначенных для демонстрации правильности работы программы в заданных диапазонах изменения внешних условий и режимов эксплуатации программы. Цель тестирования заключается в демонстрации отсутствия (или выявлении) ошибок в разработанных программах на заранее подготовленном наборе контрольных примеров. Процессу тестирования сопутствует понятие "отладка", которое подразумевает совокупность действий, направленных на устранение ошибок в программах, начиная с момента обнаружения фактов ошибочной работы программы и завершая устранением причин их возникновения.
По своему характеру (причине возникновения) ошибки в программах делятся на синтаксические и логические. Синтаксические ошибки в программе представляют собой некорректную запись отдельных языковых конструкций с точки зрения правил их представления для выбранного языка программирования. Эти ошибки выявляются автоматически при трансляции исходной программы (т.е. в процессе ее перевода с исходного языка программирования во внутренние коды машины) до ее выполнения.
После устранения синтаксических ошибок проверяется логика работы программы на исходных данных. При этом возможны следующие основные формы проявления логических ошибок:
* в какой-то момент программа не может продолжать работу (возникает программное прерывание, обычно сопровождающееся указанием места в программе, где оно произошло);
*
программа работает, но не выдает
всех запланированных
* программа выдает результаты и завершает свою работу, но они полностью или частично не совпадают с контрольными.
После выявления логических ошибок и устранения причин их возникновения в программу вносятся соответствующие исправления, и ее отладка продолжается.
Программа считается отлаженной, если она безошибочно выполняется на достаточно представительном наборе тестовых данных, обеспечивающих проверку всех ее участков (ветвей). Процесс тестирования и отладки программ носит итерационный характер и считается одним из наиболее трудоемких этапов процесса разработки программ. По оценкам специалистов, он может составлять от 30 до 50% в общей структуре затрат времени на разработку проектов и зависит от объема и логической сложности разрабатываемых программных комплексов.
Важность процессов тестирования качества программных средств, с одной стороны, и сложность самой методологии и многообразие применяемых методов тестирования', с другой стороны, обусловили появление специализированных фирм, обладающих дорогостоящими инструментами тестирования и квалифицированным персоналом, предлагающих платные услуги подобного рода.
В
настоящее время лидирующее положение
на мировом рынке
Информация о работе Кондратьевские циклы и компьютерное моделирование экономических систем