Основные этапы решения задач на компьютере

Процесс решения задач на компьютере - это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью — постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера — этапы обработки информации в соответствии с разработанным алгоритмом.

Рассмотрим эти этапы на следующем примере: пусть задан мас­сив чисел. Требуется проверить, все ли числа принадлежат заданному интервалу. Интервал задается границами А и В.

Первый этап - постановка задачи. На этом этапе участвует человек, хорошо представляющий предметную область задачи. Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к ее решению. Для задачи проверки чисел, принадлежащих заданному интервалу, человек, знающий, как осуществляется проверка, может описать задачу следующим образом: ввести два целых числа, задающих диапазон проверки, сравнить выбранное число из массива с границами. Если число принадлежит интервалу, то выдать сообщение о принадлежности и, наоборот, выдать сообщение о непринадлежности. Проверить все ли элементы массива просмотрены. Если да, то печать сообщения и конец сравнений. Если нет, то продолжить сравнение.

При этом способе отсутствует наглядность вычислительного про­цесса, т.к. нет достаточной формализации.

Второй этап - математическое или информационное моделирование. Цель этого этапа - создать математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий. Для вышеописанной задачи данный этап приведет к следующему: введенные в компьютер числа интервала запомним в памяти под именами А и В, затем выполним проверку каждого элемента массива на принадлежность диапазону по формуле A<=xi<=B. Если условие не выполнится, то выводим об этом сообщение с последующим завершением задачи. Иначе - сообщение о наличии элементов, входящих в заданный интервал.

Третий этап - алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения.

Алгоритмизация - это процесс построения алгоритма решения задачи, результатом которого является выделение этапов процесса обра­ботки данных, формальная запись содержания этих этапов и определе­ние порядка их выполнения.

Алгоритм - это точное предписание, определяющее вычисли­тельный процесс, ведущий от изменяемых начальных данных к решению поставленной задачи.

Четвертый этап — программирование. Программа– это алгоритм, записанный в форме, воспринимаемой машиной. Программа содержит наряду с описанием данных команды, в какой последовательности, над какими данными и какие операции долж­на выполнять машина, а также в какой форме следует получить резуль­тат. Это обеспечивают различные операторы.

Составление программы обеспечивает возможность выполнения алгоритма и соответственно поставленной задачи исполнителем-компьютером.

Пятый этап - ввод программы и исходных данных в ЭВМ. Данные – это факты и идеи, представленные в формализованном виде, позволяющем передавать или обрабатывать эти факты и идеи с по­мощью некоторого процесса. Оператор - совокупность символов, указывающих операцию и значения, либо местонахождение ее элементов. Переменная - это объект, который в ходе выполнения программы может менять свое значение.

Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редактора текстов, и для постоянного хранения осуществляется их запись на гибкий или жесткий магнитный диск.

Шестой этап - тестирование и отладка программы. На этом этапе происходят исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходится выполнять работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы. Отладка программы - сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на контрольных примерах.

Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклиться (т. е. бесконечно повторять одно и то же действие); на другом - дать явно неверный или бессмысленный результат и т. д. Сложные программы отлаживают отдельными фрагментами.

Седьмой этап - исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задает исходные данные, требуемые по условию задачи.

Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы. Например, если при решении задачи на компьютере результат сложения двух чисел 2 и 3 будет 4, то следует сделать вывод о том, что надо изменить алгоритм и программу.

Возможно, что по итогам анализа результатов потребуются пересмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учетом приобретенного опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получим алгоритм и программу, удовлетворяющие показанным выше свойствам.