44
Пример на языке Си:
/* ввод чисел и
суммирование до тех пор, пока не встретим ноль */
do {
scanf("%d",&a);s+=a;
}
while (a!=0);
В некоторых языках встречается цикл с прямым указанием количества
повторений.
Пример на языке РАПИРА:
ПОВТОР 5 РАЗ :: ?"ЭТО ПРАВДА?!" ВСЕ
Пример на языке Лого (русская версия):
ПОВТОРИТЬ 5
{ x=x+1}
Весьма популярной конструкцией является цикл с параметром (цикл ДЛЯ,
цикл со счетчиком), связанный с такой широко используемой в
программировании структурой данных, как массив. При этом используется
некоторая переменная, называемая
переменной цикла. До первой итерации
она инициализируется некоторым первоначальным значением. По
окончании каждой итерации переменная цикла меняется заданным
образом, после чего полученное значение сравнивается с указанным
граничным. Если граничное значение не достигнуто, цикл повторяется еще
раз, в противном случае — завершается. Популярное начальное
значение — единица, она же является типичным приращением. Некоторые
языки программирования допускают произвольные приращения,
некоторые (например, Паскаль) — лишь +1 и –1 (инкремент и декремент).
При обработке массива переменная цикла используется в качестве индекса
обрабатываемого элемента массива.
Пример на языке программирования Бейсик:
10 FOR I=1
ТО 10 STEP 2
20 K[I]=1
30 NEXT I
В этом примере единица присваивается элементам массива K через один.
Современные языки программирования, например C# и Java (а также,
например, язык РАПИРА), имеют конструкцию цикла ДЛЯ … ИЗ, которая
перебирает все элементы некоторой структуры данных и применяет к ним
заданное действие без необходимости использовать специальную
переменную цикла.
45
Пример на языке C#:
foreach (int element in fibarray)
{
element += 11;
}
Пример на языке РАПИРА:
ДЛЯ БУКВА ИЗ КНИГА ::
ЕСЛИ БУКВА="А" ТО СЧ+1->СЧ ВСЕ
ВСЕ;
Структурное программирование
В данной главе активно использовались рисунки для иллюстрирования
различных операторов языков программирования. Графические
обозначения соответствуют языку блок-схем алгоритмов и программ.
Обратите внимание на то, что действия представлены прямоугольными
блоками. А также на то, что у каждой иллюстрирующей использование
оператора схемы был только один вход и один выход. Представим теперь,
что мы эту схему обвели прямоугольной рамкой. У рамки будет одна
входящая линия сверху и одна выходящая — снизу. Если теперь заменить
прямоугольный блок построенным блоком в рамке, вы поймете идею так
называемого строгого
структурного программирования.
Структурное программирование запрещает использование произвольных
переходов к метке, за счет чего программа приобретает более
упорядоченный характер, что, с точки зрения апологетов данного подхода,
позволяет создавать более качественные и надежные программы.
Программы, изобилующие командами безусловного перехода GOTO, в
логике которых из-за этого практически невозможно разобраться,
получили в среде сторонников структурного программирования обидное
прозвище спагетти.
Теоретической основой структурного программирования принято считать
принципы, изложенные в классической работе Бома и Джакопини. Эта
работа на итальянском языке была опубликована в 1965 году, а в
английском переводе — в 1966 году. В соответствии с так называемой
структурной теоремой, сформулированной и доказанной в работе, всякая
программа может быть построена с использованием только трех основных
типов блоков — линейного, условного и циклического.
Достарыңызбен бөлісу: