Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_-_1_kurs / Основы С++.doc
Скачиваний:
113
Добавлен:
09.06.2015
Размер:
1.44 Mб
Скачать

184

  1. Этапы разработки программы Программирование — это процесс создания (разработки) программы, который может быть представлен как последовательность нескольких этапов.

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

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

  3. Разработка или выбор алгоритма. Здесь необходимо опре­делить последовательность действий, которые надо вы­полнить для получения результата.

  4. Программирование. Программой называют последователь­ность действий, направленных на выполнение их неко­торым исполнителем (например, компьютером).

  5. Ввод программы и исходных данных в ЭВМ.

6. Тестирование и отладка программы. На этом этапе про­исходит исполнение алгоритма с помощью ЭВМ, поиск и исправление ошибок. Отладка программы заключает­ся в тестировании программы на контрольных примерах.

7. Исполнение отлаженной программы и анализ результа­тов. На этом этапе программист задает исходные данные и анализирует результаты, полученные в ходе выполне­ния программы.

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

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

Графическое представление хода решения задачи — самый наглядный способ записи алгоритма. Блок-схемы наиболее распростра­ненный способ графического изображения алгоритмов.

Рис. 1. Блок-схема алгоритма, вычисляющего сумму двух чисел

Алгоритм имеет следующие свойства:

  • однозначность — наличие единственного толкования пра­вил выполнения действий и порядка их выполнения;

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

  • результативность — получение при выполнении алго­ритма определенного результата;

  • массовость — возможность применения алгоритма для решения целого класса задач (предполагается его пра­вильная работа при меняющихся в заданных пределах значениях исходных данных);

  • правильность — способность алгоритма давать правиль­ные результаты при решении поставленных задач.

Блок-схемы строятся по определенным правилам и вклю­чают в себя геометрические фигуры (блоки), соединенные между собой линиями, указыва­ющими порядок выполнения операций. Блочные символы стандартизированы и различаются по типу выполняемых действий (ГОСТ 19.002-80 и 19.003-80, международные стандарты ISO 2636-73). В табл. 1 представлены наиболее часто используемые обозначения в блок-схемах.

Таблица 1. Основные обозначения блок-схем

Наименование

Обозначение

Функция

Процесс

(функциональный блок)

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

Решение

(логический блок или блок сравнения)

Выбор направления выполнения алгоритма или программы в зависимости от некоторых условий

Предопределенный процесс (подпрограмма)

Использование ранее созданных и отдельно описанных алгоритмов или программ

Ввод

Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)

Вывод

Преобразование данных в форму, пригодную для отображения результатов обработки (вывод)

Пуск-останов

Начало и конец программы

Межстраничный соединитель

Указание на наличие связи между разъединенными частями схем, расположенных на разных листах

Соединитель

Связь между элементами блок-схемы схемы

Рассмотрим более подробно применение основных гра­фических элементов блок-схемы.

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

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

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

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

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

Логический блочный символ, обозначающий решение, используют для выбора направления выполнения алгорит­ма в зависимости от некоторого условия (условий).

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

Из блока проверки условия может выходить два или три информационных потока, что отличает его от других блочных символов, имеющих не более одного выхода. Вы­ходящие из блока линии должны снабжаться условиями, порождающими то или иное направление исполнения ал­горитма (например, «да» или «нет», <0, =0

или >0, + или -и т. д.). Блочный символ модификации символизирует начало циклических вычислений (заголовок цикла), для управле­ния которыми он используется.

Внутри блока указываются переменная цикла и парамет­ры, характеризующие закон ее изменения, например, i = х1, хn dx, где i — переменная цикла, x1 и хnначальное и конеч­ное значения переменной цикла, dx — шаг ее изменения (пе­ременная цикла изменяется от до х1 до хn с шагом dx). Если шаг равен 1, то dx можно не указывать.

Кроме входящей линии блок модификации имеет одну выходящую (обозначенную на рисунке как «Вых.»), а также линии, отмечающие передачу вычислительного процесса на обработку для циклических вычислений («Цикл») и возврат в начало для изменения переменной цикла («Изм. пер.»).

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

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

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

В блочный символ вписывают номера блоков, в которые вычислительный процесс передается или из которых он по­ступил. Так, верхний соединитель указывает, что вычисли­тельный процесс передается на вход блока 15, а нижний — что вычислительный процесс поступил с выхода блока 10.

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

Изображенный сверху межстраничный соединитель означает, что вычислительный процесс передается на вход блока 23, расположенного на странице 10. Нижний меж­страничный соединитель означает, что информация переда­на с выхода блока 12, расположенного на странице б (то есть сначала указывается номер страницы, а под ним номер бло­ка, на который передается или с которого принимается уп­равление).

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

Схема является самым наглядным и простым способом представления алгоритма. В ней четко прослеживаются по­рядок выполнения действий, потоки информации и пути их следования. Линии по отношению к блокам могут быть вхо­дящими и выходящими. Количество входящих линий для всех блоков не ограничено — их может быть одна, две, три и более. Выходящая же линия для большинства блоков может быть только одна (исключение — блоки проверки условия).

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

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

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

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

В схеме должны четко прослеживаться потоки инфор­мации.

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

Не допускается передача управления «в никуда». Источ­ник и получатель должны быть четко обозначены.