Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Этапы решения задачи на компьютере
Процесс решения задачи на компьютере включает в себя следующие основные этапы: 1. Постановка задачи. 2. Выбор метода решения (построение математической модели). 3. Разработка алгоритма. 4. Составление программы. 5. Реализация программы на компьютере. 6. Анализ полученных результатов. Постановка задачи Прежде чем решать задачу на компьютере, необходимо четко определить, чем мы располагаем — какие есть исходные данные, каковы ограничения на них, что будет являться решением задачи. Если задача конкретная (например, надо решить уравнение 2х2 + 3х + 5 = 0, где коэффициенты уравнения — константы), то под постановкой задачи понимаем ответ на вопросы: q какие исходные данные известны; q что требуется определить. Если задача обобщенная (например, надо решить квадратное уравнение aх2 + bх + c = 0), то отвечать при постановке задачи понадобится еще на третий вопрос: какие данные допустимы. Итак, постановка задачи " решить квадратное уравнение aх2 + bх + c = 0" выглядит следующим образом: Дано: a, b, c — коэффициенты уравнения. Требуется: x1, x2 — корни уравнения. Ограничения: a ¹ 0. D = b2 - 4ac ³ 0. Выбор метода решения (построение математической модели) Разрабатывать алгоритм как последовательность действий будущего исполнителя, направленных на решение задачи, можно лишь тогда, когда ясно, как решать задачу, в чем ее смысл, сложность, к какому классу задач она принадлежит, какой способ, метод решения наиболее адекватно будет соответствовать реальным явлениям и процессам. Таким образом, речь идет о выборе метода решения в простейшем случае и о построении математической модели реальной задачи в более сложной ситуации. Часто построение математической модели требует упрощения требований задачи, отказа от некоторых ограничений. Разработка алгоритма В основу программы для компьютера кладется алгоритм решения данной задачи. Алгоритм отражает всю логику наших рассуждений при решении задачи, но обязательно учитывает, что исполнителем алгоритма мы выбрали компьютер — автомат с определенным набором возможностей и устройств для выполнения команд. Составление программы Компьютер — это лишь совершенный автомат, быстро и точно выполняющий команды. Но команды эти компьютеру предоставляет человек. Последовательность команд составляет хранимую в памяти компьютера программу. Современную компьютерную программу решения определенного класса задач программист пишет на языке программирования и затем реализует на компьютере. Реализация программы на компьютере Это значит, что текст программы вводят с клавиатуры в оперативную память и проводят ее отладку. Отладка компьютерной программы включает устранение ошибок — синтаксических, времени выполнения и семантических (смысловых). Анализ полученных результатов Как определить, что результаты работы программы соответствуют данной задаче? Для этого в зависимости от класса решаемой задачи применяют разные подходы: q сравнивают полученные результаты с результатом, рассчитанным в соответствии с тем же методом, но вручную или с помощью калькулятора. q сопоставляют результат, полученный в результате работы компьютерной программы, с экспериментальными фактами, теоретическими воззрениями и другой считающейся достоверной информацией об изучаемом объекте. После проведения тех или иных правомерных сравнений может возникнуть необходимость уточнения метода или модели, составления нового алгоритма и соответствующей ему программы и повторения процедуры компьютерных расчетов, причем до тех пор, пока анализ получаемых результатов не подтвердит их приемлемость. Типы алгоритмов и формы их представления Известны три типа алгоритмов — линейный, разветвляющийся, циклический. Тип алгоритма определяется характером решаемой в соответствии с его командами задачи. Применяют три формы представления алгоритмов: табличную, словесную, графическую, но не все три формы возможны для любого из алгоритмов. Форма представления алгоритма зависит от его типа. Линейный тип алгоритма. Алгоритм, в котором команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий, является алгоритмом линейного типа. Таким будет, например, алгоритм вычислений по самым простейшим, безальтернативным формулам, не имеющим ограничений на значения входящих в них переменных. Задача. Вычислить площадь круга. Дано: R, радиус круга. Результат: S, площадь круга. Метод решения: S = 3, 14R2.
Покажем, что алгоритм решения такой задачи — по типу линейный и допускает любую из трех форм представления. Табличная форма представления алгоритмов применяется только для линейных вычислительных алгоритмов. Ее пример — Таблица 1. Таблица 1
Докажем, что данная таблица представляет алгоритм. Для этого убедимся, что система последовательных действий, задаваемых этой таблицей, удовлетворяет пяти требованиям, предъявляемым к алгоритмам. Действительно, команды в таком представлении алгоритма — названия столбцов. Процесс решения разбит на отдельные шаги, что заметно по названию столбцов, задающих дискретную структуру этого алгоритма. Он удовлетворяет требованию понятности: мы, как предполагаемые его исполнители, прочли указанные действия и поняли их. Смысл всех действий однозначен, переход к выполнению каждого следующего действия детерминирован (определен) последовательно идущими столбцами. Число столбцов конечно, значит, результат мы получим за конечное число шагов. Выполнено также требование массовости. Таблица допускает расчет при различных значениях исходных данных, если фиксировать результат вычислений для каждого варианта в различных ее строках. Словесная форма представления (для всех типов алгоритмов): Начало Запросить значение переменной R S: =3.14* R * R Вывести значение переменной S Конец Пояснение к алгоритму Для решения многих задач алгоритм должен получать исходные данные и обязательно выдавать выходные данные — результат решения задачи. Другими словами алгоритм должен общаться с «внешним миром». Для получения данных из внешнего устройства существует специальная команда — команда ввода. Если под внешним устройством понимается клавиатура, то дойдя до этого места исполнитель будет ожидать ввода данных. Данные записываются в переменные. Под переменной можно понимать определенную ячейку в памяти ЭВМ. Любая переменная в алгоритме имеет имя. В нашем алгоритме есть одна команда ввода: Запросить значение переменной R Для вычисления значения некоторого выражения используется команда присваивания: < имя переменной> : = < выражение> Принцип действия команды присваивания: переменной, имя которой стоит слева от знака присваивания «: =», присваивается значение выражения, стоящего справа от знака присваивания. При этом «старое» значение переменной стирается. Команда вывода позволяет вывести данные на внешнее устройство — файл на диске, дисплей, принтер. В данном алгоритме присутствует одна команда вывода: Вывести значение переменной S Графическая форма представления (применима для алгоритмов всех типов) основана на замене типичных алгоритмических команд определенными геометрическими фигурами — блоками. Таблица 2. Основные элементы блок-схемы
Примеры использования При выполнении следующей команды исполнитель алгоритма запросит значение переменной Х.
Если значение переменной sum было равно 5, то в результате выполнения команды: будет выведено: Сумма двух чисел равна 5
Алгоритм решения нашей задачи при графической форме представления приведен на Рис. 1. Разветвляющийся тип алгоритма. В том случае, когда условие задачи предусматривает в ходе ее решения возможность выбора в зависимости от выполнения некоторых условий, алгоритм решения оказывается разветвляющимся (ветвящимся). Он допускает две формы представления: словесную и графическую. Циклический тип алгоритма. Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов), называется циклическим. Такой алгоритм реализует решение очень многих задач. Форма представления для такого алгоритма может быть выбрана как словесная, так и графическая. На практике чаще всего встречаются алгоритмы как бы смешанного типа, у которых можно выделить участки (блоки), имеющие структуру линейного, ветвящегося или циклического типа. Более того, отметим, что алгоритм любой степени сложности можно построить с помощью блоков основного базового набора, имеющих линейную (последовательную), разветвляющуюся (ветвящуюся) или циклическую структуру. Каждая из этих структур имеет только один вход и только один выход, что позволяет соединять между собой в процессе разработки алгоритма любое количество элементов базовых структур в любой последовательности.
Рис. 1 Итак, метод алгоритмизации широко применяется, так как имеет отношение как к человеку, так и к роботу, автомату, в частности к компьютеру. Этот метод служит основой для автоматизации деятельности человека-исполнителя. Кроме того, алгоритмизация — общий метод кибернетики, которая рассматривает процессы управления в различных системах как реализацию определенных алгоритмов. Популярное:
|
Последнее изменение этой страницы: 2016-07-14; Просмотров: 1700; Нарушение авторского права страницы