Процесс решения любой задачи с использованием компьютера предполагает последовательное выполнение следующих этапов:
Формализация или постановка задачи.
Задачи, которые приходится решать людям, очень часто формулируются таким образом, что их решение невозможно предложить компьютеру. Предварительно необходимо переформулировать задачу, сделать ее постановку более четкой. Решение надо начинать с определения того, какие факторы существенны для задачи, а какими можно пренебречь. Процесс описания факторов с помощью параметров называется формализацией.
Четко сформулировать задачу – значит высказать те предположения, которые позволят в большом объеме информации об изучаемом явлении или объекте выбрать исходные данные, какие их значения допустимы, определить, что будет служить результатом, какие значения результатов возможны.
Построение математической модели. Частный случай информационной модели, который очень часто используют при решении задач на ЭВМ – математическая модель.
Программирование как этап решения задачи на компьютере
Математическая модель – описание объекта или процесса математическими формулами, связывающими их количественные параметры.
Создавая математическую модель задачи, нужно выделить предположения, на которых будет основана математическая модель, записать математические соотношения (формулы, уравнения, неравенства и так далее), связывающие результаты вычислений с исходными данными.
Разработка алгоритма .
Для разработки алгоритма необходимо продумать правила ввода данных в ЭВМ, форму предоставления информации людям, реакцию машины на вводимые команды и данные. Необходимо определить правила работы людей с ЭВМ. Создание алгоритмов учебных задач по программированию обычно должно учитывать диалог, который будет происходить между ЭВМ и человеком при выполнении программы. При решении задач с электронными таблицами и базами данных необходимо продумывать заголовки строк, столбцов, названия полей.
Часто используют метод пошаговой детализации, при котором задача разбивается на подзадачи, и конструируются алгоритмы для подзадач. Затем алгоритмы подзадач соединяются в алгоритм задачи.
Запись алгоритма выполняют словесным или графическим способом.
Написание программы.
Компьютерная модель – модель, реализованная средствами программной среды.
Любому шагу алгоритма нужно подобрать соответствующие команды языка программирования или инструменты соответствующего приложения (соответствующей программной среды).
Компьютерный эксперимент. (Запуск и отладка программы .)
Этап включает синтаксическую отладку, которая может выполняться многократно для исправления ошибок в программе, пока появляются сообщения о них, отладку семантики и логической структуры, тестовые расчеты и анализ результатов тестирования.
Синтаксические ошибки – нарушения правил записи команд.
Семантические – нарушения параметров команд.
Семантические и логические ошибки приводят к получению неправильных результатов, либо к зацикливанию программы, либо к аварийному ее завершению.
Решение задач с помощью ЭВМ
Тестовое задание – определенный набор исходных данных, для которого результат работы известен заранее. Тестирование помогает выявить ошибки, но не может гарантировать их отсутствие. При подборе тестов предусматривают: проверку основных частных случаев задачи: проверку граничных условий; проверку основных типов недопустимых данных.
Существуют определенные способы анализа правильности алгоритмов: линейных, содержащих ветвления, циклы, сложных алгоритмов.
Анализ результатов .
Проведя моделирование на ЭВМ, необходимо проанализировать результаты. Ведь сколько бы свойств не учитывалось, модель всегда основана на некотором упрощении, и трудно быть абсолютно уверенным, что модель соответствует реальной задаче. Такую уверенность можно обрести, лишь сопоставив результаты расчетов с экспериментальными фактами, теоретическими воззрениями и другой информацией об изучаемом объекте. При этом может возникнуть необходимость уточнить математическую модель, учесть еще какие-либо свойства объекта.
Рассмотрим решение с помощью компьютера следующей простейшей задачи :
Вычисление площади верхней поверхности стола, имеющей прямоугольную форму.
Выполним или выясним вид этапов для нее.
1. Что дано? Несущественно — деревянная, голубая.
Существенно — длина и ширина: А и В, которые являются действительными положительными числами.
Что найти? Площадь: S — действительное положительное число.
2. Отбрасывая несущественные отклонения формы стола от прямоугольника, запишем формулу: S=А*В.
3. Теперь следует продумать алгоритм. Можно записать его словесным способом:
Ввод исходных данных (А, В)
Если исходные данные не положительны, то вернуться к вводу
Вычисление результата (S)
Сообщение результата (S)
или начертить блок-схему:
4.Запишем программу, соответствующую выбранному алгоритму.
На этом этапе следует ввести программу в память ЭВМ.
5. Для пробного запуска программы нужно выполнить специальную команду. При этом на запрос «Введи две стороны?» вы будете набирать на клавиатуре какие-либо числа. Эти числа будут тестовым заданием. Увидев на экране монитора сообщение об ошибке, необходимо проверить строчку программы в памяти ЭВМ с указанным номером, исправить ошибку и еще раз запустить программу. Так поступают до выполнения программы без сообщений об ошибках.
Теперь обсудим, какие данные стоит использовать для тестовых заданий. Простой для устного счета случай, когда стороны равны единице. Результат также должен быть равен единице. Случаи граничных и недопустимых значений – нули и отрицательные стороны. Для таких данных результатом должно быть сообщение о неправильном вводе и предложение ввести стороны еще раз.
6. Если программа работает, но результаты нереальны, например площадь нулевая или отрицательная при вводе положительных сторон, нужно искать ошибки, начиная с постановки задачи. Возможно, вы использовали различные имена площади в математической модели и в разработанном диалоге или допустили какие-либо еще ошибки.
Если выяснится, что площадь необходимо высчитывать с большей точностью, также придется вернуться к постановке задачи и построению математической модели и использовать другой математический аппарат, например интегральное исчисление.
Источник: xn--j1ahfl.xn--p1ai
Этапы подготовки и решения задач на ЭВМ
Целю данного учебного пособия является дать первоезнакомство с языком программирования С++ и развить навыки разработки первых приложений.
Пособие предназначено для студентов первого курса любых специальностей, делающих первые шаги в программировании. Оно может быть полезно всем, кто желает приобрести практические навыки программирования.
Первая часть пособия знакомит с основными понятиями этапа алгоритмизации вычислительного процесса, здесь же строится теоретическая база, необходимая для изложения последующего материала.
Во второй части дается формальное изложение всех конструкций языка программирования C++. Материал проиллюстрирован примерами и задачами.
Все конструкции языка С++, независимо от частоты использования, синтаксической и семантической сложности, описаны одинаково кратко, но исчерпывающе. Приводится большое число задач на программирование, решения которых изложены достаточно подробно и завершены построением текста итоговой программы. Все это позволяет отнести книгу к категории «практически полезных» как для студента, так и для преподавателя.
Все программы, приведенные в данном пособии, отлаживались в среде Visual Studio.
При использовании данного пособия предварительные знания по программированию не требуются.
Основы алгоритмизации и программирования
Этапы подготовки и решения задач на ЭВМ
На ЭВМ могут решаться задачи различного характера: научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д. В процессе подготовки и решения на ЭВМ научно — инженерных задач можно выделить следующие этапы:
- содержательная постановка задачи;
- математическая постановка (формализация) задачи;
- выбор и обоснование метода решения;
- алгоритмизация вычислительного процесса;
- составление программы;
- отладка программы;
- решение задачи на ЭВМ и анализ результатов.
В задачах разных классов некоторые этапы могут отсутствовать. Например, в задачах разработки системного программного обеспечения отсутствует математическая постановка задачи. Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу, алгоритм или даже в постановку задачи.
Для уменьшения числа подобных изменений необходимо на каждом этапе по возможности учитывать требования, предъявляемые последующими этапами. В некоторых случаях связь между различными этапами, например, между постановкой задачи и выбором метода решения, между составлением алгоритма и программированием, может быть настолько тесной, что разделение их становится затруднительным.
Математическое описание задачи. Настоящий этап характеризуется математической формализацией задачи, при которой существующие соотношения между величинами, определяющими результат, выражаются посредством математических формул. Так формируется математическая модель процесса с определенной точностью, допущениями и ограничениями. При этом в зависимости от специфики решаемой задачи используются различные разделы математики и других дисциплин.
Математическая модель должна удовлетворять, по крайней мере, двум требованиям: реалистичности и реализуемости. Под реалистичностью понимается правильное отражение моделью наиболее существенных черт исследуемого явления.
Реализуемость достигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов.
Выбор и обоснование метода решения. Модель с учетом ее особенностей должна быть доведена до реализации при помощи конкретных методов и алгоритмов решения. Само по себе математическое описание задачи в большинстве случаев трудно перевести на язык машины. Выбор и использование метода решения задачи позволяет привести процесс решения задачи к конкретным машинным операциям. При обосновании выбора метода необходимо учитывать различные факторы и условия, в том числе точность вычислений, время решения задачи на ЭВМ, требуемый объем памяти и другие.
Одну и ту же задачу можно решить различными методами, при этом в рамках каждого метода можно составить различные алгоритмы.
Алгоритмизация вычислительного процесса. На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность их выполнения. Разрабатывается блок-схема алгоритма.
Составление программы. При составлении программы алгоритм решения задачи переводится на конкретный язык программирования. Для программирования обычно используются языки высокого уровня, поэтому составленная программа требует перевода ее на машинный язык. После такого перевода выполняется уже соответствующий машинный код.
Отладка и тестирование программы. Отладка заключается в поиске и устранении синтаксических и логических ошибок в программе.
В ходе синтаксического контроля программы транслятором выявляются конструкции и сочетания символов, недопустимые с точки зрения правил их построения или написания, принятых в данном языке. Сообщения об ошибках ЭВМ выдает программисту, при этом вид и форма выдачи подобных сообщений зависят от вида языка и версии используемого транслятора.
После устранения синтаксических ошибок проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными. Для этого используются специальные методы, например, в программе выбираются контрольные точки, для которых вручную рассчитываются промежуточные результаты. Эти результаты сверяются со значениями, получаемыми ЭВМ в данных точках при выполнении отлаживаемой программы. Кроме того, для поиска ошибок могут быть использованы отладчики, выполняющие специальные действия на этапе отладки, например, удаление, замена или вставка отдельных операторов или целых фрагментов программы, вывод или изменение значений заданных переменных.
Решение задачи на ЭВМ и анализ результатов. После отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на ЭВМ для различных наборов исходных данных. Получаемые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.
Разработанная программа длительного использования устанавливается на ЭВМ, как правило, в виде готовой к выполнению машинной программы. К ней прилагается документация, включающая инструкцию для пользователя.
Чаще всего, при установке программы на диск для ее последующего использования помимо файлов с исполняемым кодом устанавливаются различные вспомогательные программы (утилиты, справочники, настройщики и т. д.), а также необходимые для работы программы разного рода файлы с текстовой, графической, звуковой и другой информацией.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Методика решения задачи на эвм. Этапы решения задачи.
Решение задачи на ЭВМ сложный и трудоемкий процесс. Любая задача начинается с постановки задачи. На основе словесной формулировки задачи выбираются переменные, подлежащие определению, записываются ограничения, связи между переменными, в совокупности образующие математическую модель решаемой проблемы. Анализируется метод решения.
На этом этапе необходимо принять очень важное решение — использовать ли имеющееся готовое программное обеспечение или разрабатывать собственную программу. Дешевле и быстрее использовать имеющиеся в наличие готовые разработки. Обновление программного обеспечения — задача программистов. В этом случае традиционно выделяются следующие основные этапы решения задачи на ЭВМ:
1) постановка задачи, разработка математической модели;
2) выбор метода численного решения;
3) разработка алгоритма и структуры данных;
4) проектирование программы;
5) производство окончательного программного продукта;
6) решение задачи на ЭВМ.
Постановка задачи — точное описание исходных данных, условий задачи и целей ее решения. На этом этапе многие из условий задачи, заданные в форме различных словесных описаний, необходимо выразить на точном (формальном) языке математики. Часто задача программирования задается в математической формулировке, поэтому необходимость в выполнении этапов 1 и 2 отпадает. Для решения достаточно сложных задач этап формализации может потребовать значительных усилий и времени. Среди опытных программистов распространено мнение, что выполнить этап формализации — это значит сделать половину всей работы по созданию программы.
Выбор метода решения тесно связан с постановкой задачи. На первом этапе задача сводится к математической модели, для которой известен метод решения. Метод численного решения сводит решение задачи к последовательности арифметических и логических операций. Однако возможно, что для полученной модели известны несколько методов решения и тогда предстоит выбрать лучший.
Можно усовершенствовать существующий или разработать новый метод решения формализованной задачи. Эта работа по своему характеру является научно-исследовательской и может потребовать значительных усилий. Разработкой и изучением таких методов занимается раздел математики, называемый численным анализом.
При выборе метода надо учитывать требования, предъявляемые постановкой задачи, и возможности его реализации на конкретной ЭВМ: точность решения, быстроту получения результата, требуемые затраты оперативной памяти для хранения исходных и промежуточных данных и результатов.
Алгоритм устанавливает последовательность точно определенных действий, приводящих к решению задачи. При этом последовательность действий может задаваться посредством словесного или графического описаний.
Если выбранный для решения задачи численный метод реализован в виде стандартной библиотечной подпрограммы, то алгоритм обычно сводится к описанию и вводу исходных данных, вызову стандартной подпрограммы и выводу результатов на экран или на печать. Более характерен случай, когда стандартные подпрограммы решают лишь какую-то часть задачи. Здесь эффективным подходом является разделение сложной исходной задачи на некоторые подзадачи, реализующиеся отдельными модулями. Определяется общая структура алгоритма, взаимодействие между отдельными модулями, детализируется логика. Этот этап тесно связан со следующим этапом – проектирования программы.
Проектирование программы включает в себя несколько подзадач. Во-первых, необходимо выбрать язык программирования. Во — вторых, определить кто будет использовать разработанное программное обеспечение и каким должен быть интерфейс (средство общения с пользователем). В — третьих, решить все вопросы по организации данных.
В — четвертых, кодирование, т. е. описание алгоритмов с помощью инструкций выбранного языка программирования. Если задача, для которой разрабатывается алгоритм, сложная, то не следует сразу пытаться разрешить все проблемы. Сложившийся в настоящее время подход к разработке сложных программ состоит в последовательном использовании принципов проектирования сверху вниз, модульного и структурного программирования.
Окончательный программный продукт получается после отладки и испытания программы. При программировании и вводе данных с клавиатуры могут быть допущены ошибки. Их обнаружение, локализацию и устранение выполняют на этапе отладки и испытания (тестирования) программы. Причем, могут быть допущены логические ошибки и на этапе постановки задачи, и на этапе алгоритмизации.
В этом случае необходимо вернуться к предыдущим этапам. Дорабатывать и улучшать программу можно в течение всего жизненного цикла программного продукта.
Решение задачи на ЭВМ — выполнение всех предусмотренных программой вычислений и вывод результатов расчета на экран дисплея или на печать.
Этапы решения задач на ЭВМ
Основные этапы решения задач на ЭВМ:
2.Определение методов решения
Источник: infopedia.su