Переведем делему в практическую плоскость и обсудим, можно ли указать некоторую общую для разных задач последовательность действий, если для их решение подразумевается применение компьютера?
Ранее нами были выделены две группы форм представления алгоритмов, различающихся уровнем формализации: естественное и формальное. В группу естественного представления были отнесены некие виды строчной записи и графическая форма, а в группу формального — теоретические алгоритмические модели и формальные языковые конструкции. На основании этой систематизации, также понятий, обсуждавшихся в данной главе, можно выстроить последующий общий порядок решения задачки с внедрением компьютера:
Относительно приведенной последовательности нужно сделать ряд замечаний:
1) Шаг (1) — постановка задачки — является неформализованным. Его начало — это подмена макета, поведение которого подразумевается учить либо обрисовывать, некой системой, что само по себе является упрощением реальной ситуации, т.е. моделированием. Другими словами, при компьютерном решении задач моделирование начинается не с построения информационной модели на шаге (2), а с определения списка тех компонент. которые будут включены в систему и взаимодействие которых предстоит учитывать. Хоть какое схожее построение приводит к возникновению различий меж макетом и представляющей его системой. Эти различия повлекли бы расхождения в результатах компьютерной обработки и естественными явлениями (процессами) даже в этом случае, если все следующие этапы могли быть выполнены полностью точно. Таким макаром, «исходная система» — это модель; но на данном шаге она может носить неформальный нрав, к примеру, быть описанной на естественном языке.
2) Шаг (2) — формализация задачки — это, на самом деле, построение формальной системы, соответственной начальной неформальной и представляющей собой ее информационную модель. Личным (всераспространенным, хотя не единственно вероятным) вариантом описания таковой модели является математическое. Из произнесенного становится понятна значимость формализации как шага решения задачки на компьютере: конкретно он определяет принципную разрешимость задачки (существование метода ее решения), эффективность использования ресурсов компьютера (объема памяти и времени работы центрального микропроцессора), точность моделирования. Вместе с этим вероятна и достаточно обширно всераспространена ситуация, когда компьютер употребляется в качестве инструментального средства для сотворения искусственной системы -документа, рисунка, базы данных и т.п. В данном случае гласить о модели не приходится — отсутствует макет; но, все равно должен быть построен (с очевидным представлением либо в воображении юзера) формализованный проект конечного продукта.
3) Шаг (3) включает две позиции: во-1-х, это подтверждение принципной алгоритмической разрешимости задачки; а во-2-х, оценка трудности метода и подтверждение того, что имеющихся технических ресурсов довольно для решения задачки требуемого уровня трудности.
4) После того, как произведена формализация и подтверждена разрешимость задачки, наступает шаг конкретизации метода: он структурируется, т.е. делается разбиение общей задачки на модули, определяется порядок доступа к модулям, их связи. Описание структуры может быть неформализованным — на естественном языке либо с применением графических форм.
5) На шаге (5) делается выбор рационального для решения данной задачки инструмента. Аспектами оптимальности могут быть простота получения результата, удобство интерфейса юзера, точность и скорость обработки и пр. Выбор осуществляется в два шага: на первом решается вопрос, будет ли для решения задачки употребляться существующая программная система (назовем таковой подход пакетным) либо программка будет разрабатываться (программный подход). Обилие и удобство современного стандартного программного обеспечения компьютера настолько велико, что позволяет решать многие очень сложные задачки моделирования без разработки программ. Это приметно расширяет круг юзеров, устраняет от необходимости организации программного интерфейса, позволяет многие задачки решить резвее, ежели методом программирования. Конкретно по этим причинам при выборе инструментальной среды пакетному подходу следует отдавать предпочтение по сопоставлению с программным; усилия по разработке уникальной программки можно признать целесообразными исключительно в тех случаях, когда отсутствуют стандартные аналоги либо они не позволяют решить задачку. 2-ой шаг инструментального выбора при пакетном подходе состоит в определении более подходящей для данной задачки прикладной программки. К примеру, для математического моделирования могут сопоставляться пакеты MS Excel, MathCAD, MathLab, Matematica, Derive, Maple V и др. При программном подходе на втором шаге осуществляется выбор более соответственного нраву данной задачки языка программирования. В данном случае аспектами выбора может служить удобство описания начальной модели в данном языке, эффективность технологии программирования и, непременно, эффективность конечного программного кода.
6) Шаг (6) связан с выбором либо построением последовательностей алгоритмической обработки данных в модулях основного метода. Очень нередко одно и то же формальное представление допускает разные варианты конкретной обработки. К примеру, задачка о движении вещественной точки под действием случайной силы описывается дифференциальным уравнением второго порядка, для решения которого могут применяться разные численные способы: Эйлера, касательных, хорд, Рунге-Кутта и др. Одним из причин, определяющих выбор способа, является точность начального моделирования.
Достаточно естественным представляется утверждение: обработка данных не может повысить их точность. Идет речь о том, что погрешность, возникающая в процессе исходных допущений на шаге формализации, не может быть возмещена следующей сколь угодно кропотливой и четкой обработкой данных. К примеру, в модели, описывающей движение брошенного тела без учета сопротивления воздуха, принципно нереально получить верное значение дальности полета, сколь бы точно не велся расчет. Аналогично точность вычислений не может восполнить либо уменьшить относительной погрешности результатов измерений, применяемых в качестве начальных данных задачки. По обозначенным причинам при выборе схемы обработки данных нет смысла всегда стремиться к использованию схемы очень четкой из всех вероятных — обычно, они приметно увеличивают сложность метода и, как следует, требуют еще огромных технических ресурсов либо времени обработки. Для расчетных алгоритмов хорошей исходя из убеждений действенного использования компьютера будет выбор вычислительной схемы, в какой точность расчетов (промежных данных) только на 1 — 2 порядка превосходит точность начальных данных (этого просит теория приближенных вычислений). Ограничение точности начальной инфы нужно учесть и при описании типов данных в программках. К примеру, при программировании в PASCAL нет смысла использовать тип Double (15 десятичных разрядов) либо даже Real (12 разрядов) для представления вещественных чисел, определенных с точностью 0,1% (относительная погрешность 10″3) — полностью достаточным окажется тип Single (7 разрядов), занимающий в ОЗУ вдвое меньше места, чем Double.
Схема обработки определяется также избранным на прошлом шаге инструментальным средством. К примеру, при моделировании с применением MS Excel (как и в любом другом пакете) ориентируемся на его способности и его внутренний язык представления команд (указаний по обработке); по этой причине схема обработки будет другой, ежели, скажем, в пакете MathCAD либо при решении задачки с внедрением языков программирования.
7) Смысл шага (7) совсем очевиден — представление алгоритмической схемы обработки в виде последовательности допустимых команд исполнителя. В пакетном варианте это может быть просто цепочка действий, осуществляемых юзером, либо их запись на внутреннем языке программной системы (макрос). В программном подходе — запись метода при помощи избранного языка программирования.
8) Шаг (8) состоит в локализации и исправлении вероятных ошибок. Выделяются несколько источников и, соответственно, типов ошибок. Более ординарными и просто устранимыми являются ошибки синтаксиса, т.е. нарушение принятых для данного исполнителя правил построения предписаний действий. Обычно, синтаксический анализ делается самой программной системой — она информирует юзера об ошибках и не позволяет создавать последующую обработку данных при их наличии. 2-ой класс ошибок — смысловые, которые появляются в том, что при определенных композициях входных данных их обработка делается неправильно.
Локализация схожих ошибок делается тестированием, т.е. применением построенной схемы решения для задач (ситуаций) с известными плодами и сравнение с ними. Нужно напомнить (см. п. 7.6.), что тестирование, в общем случае, не обеспечивает устранение всех вероятных ошибок. К последующему классу следует отнести ошибки выбора схемы обработки (на шаге (6)). Они появляются в том, что схема не обеспечивает подходящей точности результатов либо скорости их получения — в данном случае требуется подмена схемы обработки либо исполнителя. В конце концов, более трудозатратными для устранения являются ошибки моделирования. Они могут появляться на исходных шагах (1) и (2) и связаны с грубостью выделения системы либо построения ее модели (т.е. пренебрежением какими-то существенными для задачки компонентами и связями). Устранение схожей ошибки состоит в смене модели и, как следствие, необходимости решать задачку стопроцентно поновой.
9) Шаг (9) — эксплуатация модели — является главным исходя из убеждений конечного юзера. В подавляющем большинстве случаев, разработка компьютерной модели, обеспечивающей решение некий прикладной задачки, и ее практическая эксплуатация осуществляется различными людьми. На этом шаге значимым оказывается наличие оборотной связи меж юзером и разработчиком, что позволяет устранять выявленные в процессе использования ошибки и улучшать модель.
10) В обозначенной последовательности решения задачки направляет на себя внимание некая цикличность шагов, имеющих естественное и формальное представление: на шаге (1) описание задачки может осуществляться на естественном языке; шаг (2) подразумевает построения формализованной информационной модели; на шаге (3) также употребляются формальные способы подтверждения разрешимости; этапы (4, 6) представляет собой структуризацию метода и представление отдельных его фрагментов его в естественной форме (с учетом системы команд избранного исполнителя); шаг (7) — вновь формальное описание (на языке программирования). Таким макаром, решение задачки на компьютере просит умения воспользоваться как формальными, так и естественными методами представления алгоритмов.
Выше рассмотрена общая последовательность действий при решении прикладной задачки с внедрением компьютерных средств. Непременно, отдельные этапы последовательности в каких-либо определенных задачках могут отсутствовать либо представляться в ином виде.
Если основа оригинала (карты пли плана) прозрачна, то копию можно снять при помощи стола со…
Определение координат точки. Пусть точка А (рис. 32) находится в квадрате, абсциссы и ординаты вершин…
Рельефом местности называется совокупность неровностей физической поверхности земли. В зависимости от характера рельефа местность делят…
Для обозначения на планах и картах различных предметов местности, применяются специально разработанные условные знаки. Для обличения…
В инженерной геодезии чаще всего пользуются топографическими картами. Их составляют в масштабах 1:10000, 1:25000, 1:50000…