Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭЛЕМЕНТЫ ЯЗЫКА C.doc
Скачиваний:
8
Добавлен:
05.11.2018
Размер:
476.16 Кб
Скачать
      1. Структура повторение

ПОВТОРЕНИЯ в программировании называются циклами.

Обычно стандартом проекта предусмотрен ряд конструкций циклов.

Не универсальный ЦИКЛ-ДО в рамках изученного материала имеет три конструкции и используется для задания заданного числа повторений. Рассмотрим их запись на языке программирования Си.

Конструкция по возрастанию: Конструкция по убыванию:

for(int i=3; i<=5; i++) for (int i=5; i>=3; i--)

{ {

/*тело цикла i=3,4,5*/ /*тело цикла i=5,4,3*/

. . . . . .

} }

Здесь i – переменная цикла. Обычно эти циклы не требуют после кодирования дополнительного тестирования.

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

Конструкция по возрастанию:

for(unsigned int i=0; i<5; i++)

{

/*тело цикла i=0,1,…,4 (5 раз)*/

. . .

}

Помимо трех рассмотренных вариантов построения структуры Не универсальный ЦИКЛ-ДО, аналогичное построение имеют циклы, использующие арифметику указателей, но это выходит за рамки знакомства с языком Си.

Универсальные циклы имеют конструкции ЦИКЛ-ДО и ЦИКЛ-ПОКА. Их запись на языке Си приведена ниже:

Универсальный ЦИКЛ-ПОКА: Универсальный ЦИКЛ-ДО:

/*Подготовка*/ /*Подготовка*/

while(L) do

{ {

/*Тело цикла*/ /*Тело цикла*/

. . . . . .

} }

while(!(L))

Здесь L логическое выражение при значении true является условием продолжения выполнения ЦИКЛ-ПОКА или условием окончания выполнения ЦИКЛ-ДО. Подготовка и тело цикла являются СЛЕДОВАНИЯМИ. Тело цикла выполняется столько раз, сколько и весь цикл. Признаком ЦИКЛ-ПОКА является возможность не выполнения тела цикла ни разу. При равноценности, из двух конструкций ЦИКЛ-ДО и ЦИКЛ-ПОКА выбирают ту, запись которой короче.

Вообще ЦИКЛ-ДО можно закодировать структурой ЦИКЛ-ПОКА, если в подготовке записать некоторые действия из тела цикла. Из ЦИКЛА-ДО получается ЦИКЛ-ПОКА при его охвате структурой АЛЬТЕРНАТИВА.

Порядок декомпозиции циклов:

  1. набирается "пустой" текст оператора цикла;

  2. записывается логическое условие продолжения ЦИКЛ-ПОКА или завершения ЦИКЛ-ДО (при этом выявляется переменная цикла);

  3. декомпозируется то действие тела цикла, которое изменяет логическое условие до невыполнения условия ЦИКЛ-ПОКА или до выполнения условия ЦИКЛ-ДО;

  4. детализируется СЛЕДОВАНИЕ "Подготовка цикла";

  5. детализируется оставшееся действие тела цикла как СЛЕДОВАНИЕ;

  6. проводится проверка информационной согласованности всех элементов цикла;

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

В текстах программ может использоваться еще одна вычислительная структура – РЕКУРСИЯ. Признаком этой структуры является наличие рекурсивных формул и вычислений. Все, что делает рекурсия, можно реализовать при помощи циклов и массивов. Однако если язык программирования допускает рекурсию, то ее использование может сократить код программы. Рекурсия всегда очень тщательно комментируется.