Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
14.05.2015
Размер:
94.72 Кб
Скачать

Лабораторная работа № 2

Технология структурного программирования

Цель работы: изучение технологии структурного (процедурного) программирования.

Задание

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

  2. В соответствии с заданным вариантом (файл Var02.doc) разработать блок-схему алгоритма решения задачи и выполнить его тестирование вручную. Тестовый пример должен быть подобран так, чтобы в алгоритме были выполнены 3 – 4 цикла. По разработанному алгоритму разработать программу решения задачи.

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

Учебная информация

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

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

Структура "ветвление" предполагает выполнение одной из двух групп действий в зависимости от выполнения условия в блоке ветвления. На рис. 2 знаком "+" показано выполнение условия, а знаком "-" – его невыполнение. Часто используется неполная команда ветвления, когда один из блоков действия отсутствует.

С труктура "цикл" имеет несколько разновидностей. На рис. 1 показан цикл типа "пока" с предусловием. Действия внутри этого цикла повторяются, пока выполняется условие в блоке ветвления, причем сначала проверяется условие, а затем выполняется действие. Достаточно часто используются другие типы цикла, показанные на рис. 2 и 3.

В цикле с постусловием (рис. 2) проверка условия выхода из цикла выполняется после очередного действия. Цикл с заданным количеством повторений (рис. 3) является модификацией цикла "пока" для ситуации, когда заранее известно количество повторений некоторых действий. Запись в блоке заголовка цикла на рис.3 показывает пример описания заголовка цикла, в котором действия повторяются столько раз, сколько целых значений приобретает параметр цикла i от своего начального значения 1 до конечного N с шагом 1. Обычно шаг не указывается, если он равен 1.

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

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

На рис. 4 показана блок-схема алгоритма Евклида для вычисления наибольшего общего делителя двух натуральных чисел A и B. В качестве теста выбраны A=35 и B=14.

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

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

Соседние файлы в папке ПрограммированиеCPP