Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
В.2. Этапы решения задач
Почти все языки высокого уровня современных интегрированных систем разработки ПО объектно-ориентированные. Для изучения базовых средств VB мы будем использовать «простейшие» программы с использованием процедур. Данный подход используется для разработки методов классов. Тогда общая схема решение «простейших задач», ориентированная на разработку процедур (методов) включает в себя следующие основные этапы, часть из которых осуществляются до использования компьютера: 1) Постановка задачи. Этап включает в себя: сбор информации о задаче; определение конечных целей решения задачи; определение формы выдачи результатов; описание данных. 2) Анализ и исследование задачи. На этом этапе анализируются существующие аналогичные задачи; разрабатывается математическая модель задачи; осуществляется формализация; определяются структуры данных. 3) Разработка алгоритма. Этап заключается в выборе формы записи алгоритма и в последующем процессе разработки алгоритма и его описания. 4) Программирование (Разработка программного кода). На этом этапе вначале осуществляется выбор алгоритмического языка и уточнение способов организации данных, а затем разрабатывается программный код, описывающий разработанный алгоритм. 5) Тестирование и отладка. При тестировании и отладке выявляют синтаксические, семантические (смысловые) и логические ошибки, допущенные при разработке алгоритма и программировании. Анализ результатов тестирования позволяет устранить все выявленные семантические и логические ошибки. 6) Анализ результатов решения задачи. На этом этапе осуществляется прогон программы при реальных исходных данных. В результате анализа результатов расчета возможно уточнение математической модели и повторение этапов 2-5.
Одними из самых трудоемких и ответственных этапов, из вышеперечисленных, являются этапы алгоритмизации и программирования. Процесс алгоритмизации заключается в описании необходимой последовательности действий, с помощью которой можно однозначно реализовать выбранный метод решения задачи. На практике только очень простые задачи представляются в виде известной последовательности арифметических или логических действий. Для большинства задач перед написанием программы требуется разработать соответствующую последовательность действий, приводящую к решению задачи, то есть алгоритм ее решения. Причем, при разработке алгоритма сложной задачи целесообразно провести декомпозицию вычислительного процесса, составить укрупненную схему алгоритма с целью выявления типовых участков алгоритма и использования для их реализации стандартных или ранее разработанных алгоритмов (процедурное программирование). Заметим, что время, потраченное на разработку вначале укрупненного, а затем детального алгоритма, полностью окупается при программировании и отладке программы. Алгоритм формально можно определить, как точное предписание (действие, группу действий), определяющее процесс преобразования исходных данных в результат. Из определения алгоритма вытекают и его основные свойства: · детерминированность – однозначность получения результата при одних и тех же исходных данных; · результативность – обязательность получения искомого результата за конечное число шагов; · массовость – возможность получения результата при различных исходных данных рассматриваемого класса задач; · дискретность – возможность разбиения алгоритма на отдельные элементарные действия, позволяющие рассматривать алгоритм с различным уровнем детализации.
Существуют различные способы описания алгоритмов. На практике наиболее распространены следующие формы представления алгоритмов: · словесная– последовательность действий, описанная на естественном языке; · графическая– изображения в виде схем алгоритмов, содержащей функциональные общепринятые графические блоки алгоритма; · программная – текст программы на языке программирования.
Рассмотрим некоторые формы представления алгоритмов подробнее. Словесный способ записи алгоритмов, представляет собой описание последовательных этапов обработки данных и имеет произвольную форму изложения на естественном языке. Словесный способ не имеет широкого распространения, поскольку такие описания: строго не формализуются; страдают многословностью записей; допускают неоднозначность толкования отдельных предписаний. Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным представлением. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма. В схеме алгоритма каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. В соответствии с логикой решения конкретной задачи, блоки связывают друг с другом линиями, которые называются линиями потока. Использование этого способа описания алгоритма особенно полезно на начальном этапе изучения языка программирования. На рис. В.2-1 приведен перечень основных обозначений, принятых в схемах алгоритмов.
Рис. В.2-1. Основные обозначения, принятые в схемах алгоритмов
Пример В.2-1. Рассмотрим запись алгоритма нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида) с помощью схемы алгоритма. Из выше перечисленных способов описания алгоритмов самым распространенным и наиболее наглядным является графический способ, поэтому в дальнейшем все алгоритмы будут изображаться графически, в виде схем алгоритмов, реализованные средствами графической программы Visio [10] и см. Приложение 2 настоящего пособия. Рис В.2-2. Пример графического описания алгоритмов
|