Нескінченний цикл: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Vladkhard (обговорення | внесок)
Немає опису редагування
Vladkhard (обговорення | внесок)
Немає опису редагування
Рядок 126:
Так, наприклад, при вирішенні задач на олімпіадах з інформатики (програмування) різних рівнів складності основна задача учасника - за відведений час написати програми, що вирішують запропоновані алгоритмічні задачі. Переважно такі задачі вирішуються з використанням циклів. Очевидно, що часу на обдумування умови виходу з циклу (яка повинна бути вказана в оголошенні циклу) в учасника недостатньо. Тому дуже корисним прийомом є використання модифікованих нескінченних циклів.
 
Прийом заснований на тому факті, що кодна сучасна мова програмування пропонує ряд операторів, що дозволяють перервати виконання тіла циклу не після чергової ітерації, а під час чергового виконання (наприклад, <code>Break</code> в [[Delphi (мова програмування)|Delphi]], <code>EXIT FOR</code> в [[BASIC]] і т. д.). Для економії часу учасник олімпіади пише нескінченний цикл <code>while</code> з умрврюумовою виконання <code>True</code> ('''<code>while True do ...</code>'''), а потім при необхідності у тілі циклу записує оператори перевірки умов, які переривають виконання циклу Break-подібними операторами.
 
В [[C++]] цикл проходу по деякому набору елементів з використанням [[абстрактний клас|абстрактного класу]] (ітератора) виглядає так:
Рядок 139:
</source>
 
В деякхдеяких діалектах [[Pascal]] цей же цикл (із зберіганням можливості використовувати оператор '''<code>continue</code>''', тобто, без '''<code>el:=it.Get;</code>''' в кінці циклу) виглядає так:
 
<source lang="delphi">