Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Правильно построенный цикл WHILE или REPEAT обязательно должен изменять переменные, составляющие условие окончания в теле цикла, постепенно приближаясь к условию завершения. Если этого не сделать, цикл не закончится никогда.
Старайтесь не использовать точное равенство и неравенство для прекращения цикла. Иначе есть вероятность ошибочно проскочить граничное условие. Лучше использовать условия больше и меньше. В следующем примере ошибка хорошо видна исключительно из-за его простоты.
ci:= 1;
WHILE ci <> 100 DO
Var1:= Var1 + 1;
ci:= ci + 10;
END_WHILE
Очевидно, счетчик ci при начальном значении 1 и приращении 10 никогда не станет равным 100.
Для реализации минимального времени выполнения цикла необходимо избегать в теле цикла и в условном выражении вычислений, которые можно было сделать заранее. Такие вычисления повторяются в цикле, всякий раз отнимая время. Например:
WHILE ci < 5 + х DO
Var:= Var1 + 2*x*x + 1;
ci:= ci + 1;
END_WHILE
Данный цикл можно оптимизировать по скорости:
iMax:= 5+х;
iPoly:= 2*х*х + 1;
WHILE ci < iMax DO
Var:= Varl + iPoly;
ci:= ci + 1;
END_WHILE
Цикл FOR
Цикл FOR обеспечивает заданное количество повторений группы выражений. Синтаксис:
FOR <Целый счетчик>:= <Начальное значение>
ТО <Конечное значение>
[BY <Шаг>] DO
<Выражения — тело цикла>
Дата публикования: 2015-04-10; Прочитано: 282 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!