Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комплект Информатика / Лабораторный практикум.doc
Скачиваний:
177
Добавлен:
22.05.2015
Размер:
6.45 Mб
Скачать

Требования к отчету

Отчет должен содержать:

  1. Тему и цель работы.

  2. Исходные задания варианта.

  3. Описание алгоритмов.

  4. Листинг программы.

  5. Скриншоты результатов работы программы.

  6. Ответы на контрольные вопросы.

  7. Выводы о проделанной работе.

Контрольные вопросы

  1. Какую функцию мы называем рекурсивной?

  2. Что такое условие остановки и является ли оно необходимой составляющей рекурсивной функции?

  3. Что произойдет, если рекурсивный вызов будет предшествовать условию остановки?

  4. Перечислите преимущества и недостатки рекурсивных структур.

  5. Приведите примеры рекурсии в жизни.

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

«Структурное программирование»

Цель

Формирование навыков составления программ с использованием методики структурного программирования.

Задание на самостоятельную работу

  1. Изучить основные понятия структурного программирования [7], стр. 38-51, [8], стр. 13-44.

  2. Изучить содержание и порядок выполнения лабораторной работы.

Основы теории

В линейной программе все операторы выполняются последовательно, один за другим. Для того чтобы в зависимости от исходных данных обеспечить выполнение разных последовательностей операторов, применяются операторы ветвления if и switch. Оператор if обеспечивает передачу управления на одну из двух ветвей вычислений, а оператор switch — на одну из произвольного числа ветвей.

В программировании вообще, и в структурном в частности, широко используются циклы.Цикл — участок программы, повторяемый многократно. В C++ три взаимозаменяемых оператора цикла — whilе, dowhilе и for. При написании любого цикла надоиметь в виду, что в нем всегда явно или неявно присутствуют четыре элемента: начальные установки, тело цикла, модификация параметра цикла и проверка условия продолжения цикла (рис. 1). Начинающие чаще всего забывают про первое и/или третье.

Рисунок 1 - Блок – схема цикла

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

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

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

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

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

Операторы цикла в языке C++ взаимозаменяемы, но можно привести некоторые рекомендации по выбору наилучшего в каждом конкретном случае.

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

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

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

Наиболее важные моменты этого лабораторного занятия

1. Выражение, стоящее в круглых скобках операторов if, while и dowhilе, вычисляется в соответствии с приоритетами операций и преобразуется к типу bool.

2. Если в какой-либо ветви вычислений условного оператора или в цикле тре-буется выполнить более одного оператора, то они объединяются в блок.

3. Проверка вещественных величин на равенство опасна.

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

5. Выражение, стоящее в скобках после ключевого слова switch, и константные выражения в case должны быть целочисленного типа.

6. Рекомендуется всегда описывать в операторе switch ветвь default.

7. После каждой ветви для передачи управления на конец оператора switch используется оператор break.

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

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

Теорема Бёма — Якопини — положение структурного программирования, согласно которому любой исполняемый алгоритм может быть преобразован к структурированному виду, то есть такому виду, когда ход его выполнения определяется только при помощи трёх структур управления: последовательной (англ. sequence), ветвлений (англ. selection) и повторов или циклов.