Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

End_while



Правильно построенный цикл 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...