Програмування циклів
Цикл - це послідовність операторів, яка може виконуватися більше одного разу. У мові Паскаль розроблено три механізми конструювання циклів, використовують оператори FOR, WHILE, REPEAT.
Оператор безумовного переходу
Іноді його називають просто оператором переходу. Він має вигляд GOTO , де мітка є ідентифікатором, описаним у розділі LABEL. Мітка ставиться перед оператором, на виконання якого потрібно передати управління і відокремлюється від нього двокрапкою. Використання оператора GOTO у Паскалі дуже обмежене і не рекомендується. Так, не можна входити ззовні до таких складних операторів як IF, CASE, FOR, WHILE, REPEAT, BEGIN. END, процедури, функції та інші, хоча транслятор може і виявити помилки. Переходи рекомендується здійснювати всередині одного рівня або при виході на більш високий рівень. Областью дії мітки є блок, де вона описана, і переходи по цій мітці можливі тільки в цьому блоці. За допомогою операторів IF та GOTO можна організувати циклічний процес. Оскільки оператори в тілі програми виконуються послідовно один за одним, необхідно один з операторів позначити міткою, а потім за допомогою оператора GOTO повторно повернутися на виконання позначеного оператора. Щоб це повернення було керованим, тобто для уникнення нескінченних циклів, необхідний аналіз певних умов, саме для цього потрібний умовний оператор IF. Приклад 14. Обчислити:
Обчислення закінчити під час виконання умови Y - 0,5 відповідає графічний об'єкт - стрілка. Ця стрілка передає керування блоку, який позначений у верхньому лівому кутку міткою. Ви можете вибрати найкращий принтер за багатьма параметрами, зваживши всі за і проти. У нашому випадкуідентифікатором мітки є цифра 1. Циклічний алгоритм програми наведено малюнку 8. На малюнку 8 видно, що блок 1 повторюється до того часу, поки умова має значення TRUE. Як тільки умова стане рівною FALSE, шукана величина Y та номер поточної ітерації I будуть виведені на екран монітора.

PROGRAM PR14; LABEL 1; VAR Y, EPS: REAL; I: INTEGER; BEGIN WRITELN(,BBEДИTE EPS'); READLN(EPS); Y := 0; I := 0; 1 : I:=I + 1; Y:=Y + 1/(2*I- 1)/(2*I+ 1); IF ABS(Y - 0.5) EPS THEN GOTO 1 ; WRITELN('I = ', I,', Y = ', Y:6:4) END. Слід зазначити, що організація циклів за допомогою операторів GOTO не рекомендується. Причина полягає в тому, що саме використання цього оператора призводить до основної частки помилок, яких допускає програміст. Але ці помилки, до того ж, найважчі у діагностиці та налагодженні програми. Саме для боротьби з цими помилками використовували таку трудомістку процедуру, як трасування програми. Для боротьби з використанням оператора GOTO ідеологами структурного програмування було запропоновано так звані структуровані оператори циклів FOR, WHILE та REPEAT.