Костерин В В
Шрифт:
1) в зависимости от количества альтернативных действий записываются все операторы структуры;
2) определяются сами альтернативные действия как СЛЕДОВАНИЯ;
3) записываются логические условия альтернативных действий;
4) проверяется информационная согласованность логических условий и действий;
5) на нескольких текстовых примерах осуществляется проверка. ПОВТОРЕНИЯ в программировании называются циклами.
Обычно стандартом проекта предусмотрен ряд конструкций циклов. Неуниверсальный ЦИКЛ-ДО имеет две конструкции и используется для задания заданного числа повторений. Рассмотрим их запись на языке программирования Pascal.
Конструкция по возрастанию:
Конструкция по убыванию:
Рассмотрим запись вариантов кодирования структуры неуниверсальный ЦИКЛ-ДО на языке программирования С.
Конструкция по возрастанию:
Конструкция по убыванию:
Здесь i — переменная цикла. Обычно эти циклы не требуют после кодирования дополнительного тестирования.
Универсальные циклы имеют конструкции ЦИКЛ-ДО и ЦИКЛ-ПОКА. Их запись на языке Pascal приведена ниже:
Универсальный ЦИКЛ-ПОКА:
Универсальный цикл ЦИКЛ-ДО:
Ниже приведена запись тех же структур на языке С:
Универсальный ЦИКЛ-ПОКА:
Универсальный ЦИКЛ-ДО:
Здесь L логическое выражение. Его значение True является условием продолжения выполнения ЦИКЛ-ПОКА или условием окончания выполнения ЦИКЛ-ДО. Подготовка и тело цикла являются СЛЕДОВАНИЯМИ. Тело цикла выполняется столько раз, сколько и весь цикл. Признаком ЦИКЛ-ПОКА является возможность не выполнения тела цикла ни разу. При равноценности из двух конструкций ЦИКЛ-ДО и ЦИКЛ-ПОКА выбирают ту, запись которой короче.
Вообще ЦИКЛ-ДО можно закодировать структурой ЦИКЛ-ПОКА, если в подготовке записать некоторые действия из тела цикла. Из ЦИКЛА-ДО получается ЦИКЛ-ПОКА при его охвате структурой АЛЬТЕРНАТИВА.
Порядок декомпозиции циклов:
1) набирается "пустой" текст оператора цикла;
2) записывается логическое условие продолжения ЦИКЛ-ПОКА или завершения ЦИКЛ-ДО (при этом выявляется переменная цикла);
3) декомпозируется то действие тела цикла, которое изменяет логическое условие до невыполнения условия ЦИКЛ-ПОКА или до выполнения условия ЦИКЛ-ДО;
4) детализируется СЛЕДОВАНИЕ "Подготовка цикла";
5) детализируется оставшееся действие тела цикла как СЛЕДОВАНИЕ;
6) проводится проверка информационной согласованности всех элементов цикла;
7) проводится проверка правильности работы цикла с помощью безмашинного расчета трассы выполнения тестов с трехкратным (или более), однократным выполнением цикла и вообще без выполнения.
В текстах программ может использоваться еще одна вычислительная структура — РЕКУРСИЯ. Признаком этой структуры является наличие рекурсивных формул и вычислений. Все, что делает рекурсия, можно реализовать при помощи циклов и массивов. Однако если язык программирования допускает рекурсию, то ее использование может сократить код программы. Рекурсия всегда очень тщательно комментируется.