Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Конспекты / Основные этапы подготовки решения задачи на ЭВМ

Основные этапы подготовки решения задачи на ЭВМ

  • Информатика

Поделитесь материалом с коллегами:

Основные этапы подготовки решения задачи на ЭВМ

2.1 Введение

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

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



2.2 Этапы подготовки решения задачи на ЭВМ

1 этап: Постановка задачи

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

  • ко времени решения поставленной задачи;

  • объему необходимых ресурсов, например, оперативной памяти;

  • точности достигаемого результата.

2 этап: Проектирование программы

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

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

3 этап: Разработка алгоритма

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

4 этап: Кодирование

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

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

Хотя этап кодирования считается менее творческим, чем предыдущие, для его успешного выполнения требуется хорошее знание, как самого языка, так и средств разработки программ: транслятора, компоновщика, программных библиотек и многого другого.

5 этап: Отладка и тестирование программы

Наличие ошибок в только что разработанной программе это вполне нормальное закономерное явление. Практически невозможно составить реальную (достаточно сложную) программу без ошибок.

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

Целью данного этапа является поиск и устранение ошибок в программе. Этот этап занимает 50-70% времени создания программы и получения решения. Показателем мастерства является способность обнаруживать и исправлять собственные ошибки.

При отладке программ важно помнить следующее:

  • в начале процесса отладки надо использовать простые тестовые данные;

  • возникающие затруднения следует четко разделять и устранять строго поочередно;

  • не нужно считать причиной ошибок машину, так как современные машины и трансляторы обладают чрезвычайно высокой надежностью.

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

Программу условно можно считать правильной, если её запуск для выбранной системы тестовых исходных данных во всех случаях дает правильные результаты. Но, как справедливо указывал известный теоретик программирования Э. Дейкстра, тестирование может показать лишь наличие ошибок, но не их отсутствие.1 Нередки случаи, когда новые входные данные вызывают "отказ" или получение неверных результатов работы программы, которая считалась полностью отлаженной. Для реализации метода тестов должны быть изготовлены или заранее известны эталонные результаты.

Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок:

  • должна быть испытана каждая ветвь алгоритма;

  • очередной тестовый прогон должен контролировать нечто такое, что еще не было проверено на предыдущих прогонах;

  • первый тест должен быть максимально прост, чтобы проверить, работает ли программа вообще;

  • арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;

  • количества элементов последовательностей, точность для итерационных вычислений, количество проходов цикла в тестовых примерах должны задаваться из соображений сокращения объема вычислений;

  • минимизация вычислений не должна снижать надежности контроля;

  • тестирование должно быть целенаправленным и систематизированным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при случайном выборе тестовых данных могут оказаться непроверенными многие ситуации;

  • усложнение тестовых данных должно происходить постепенно.

Процесс тестирования можно разделить на три этапа.

1 Проверка в нормальных условиях.

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

2 Проверка в экстремальных условиях.

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

3 Проверка в исключительных ситуациях.

Проводится с использованием данных, значения которых лежат за пределами допустимой области изменений.

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

2.3 Заключение.

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

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

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



1ОК IT для бизноса. http://ko.com.ua/jedsger_vajb_dejkstra_11696

Выберите курс повышения квалификации со скидкой 50%:

Краткое описание документа:

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

Автор
Дата добавления 28.02.2015
Раздел Информатика
Подраздел Конспекты
Просмотров512
Номер материала 415115
Получить свидетельство о публикации

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