«БҰРЫН» циклі Циклдің бұл түрінің алдыңғысынан айырмашылығы, негізінен цикл денесінің қайталану жағдайын тексеру оның алдында емес, одан кейін. Сондықтан «Бұрын» циклі «соңғы шарты бар» циклі, ал «While» «алғы шарты бар» циклі деп аталады.
Сондай-ақ, жаңа итерация (цикл денесінің қайта орындалуы) шарт ақиқат болғанда емес, дәл ол жалған болғанда пайда болатынын ескеріңіз. Сондықтан цикл өз атын алды (сәйкес шарт орындалғанша цикл денесін орындаңыз).
Бір қызығы, цикл шарты бастапқыда ақиқат болған жағдайда, цикл денесі әлі де кем дегенде бір рет орындалады. Дәл осы «бұрын» және «әзірше» арасындағы айырмашылық бағдарламалауда олардың бірін-бірі алмастырмайтындығына, бірақ өздеріне қолайлы есептерді шешуге қолданылатындығына әкелді.
Паскаль тіліндегі цикл пішімі:
Қайталау
<оператор №1>;
<оператор №2>;
<оператор №3>;
. . .
<шарт> дейін;
Ол келесідей оқылады: "№1 операторды, №2 операторды орындаңыз. : шарт орындалғанша."
Бұл жерде құрама операторды қолдану қажет емес, өйткені Repeat және Until сөздері оператор жақшалары болып табылады.
«Параметрмен» циклі.
Бұл жағдайда параметр циклдің әрбір итерациясында бір өзгеретін бүтін айнымалы болады. Осылайша, мұндай айнымалы үшін бастапқы және соңғы мәндерді орнату арқылы цикл денесінің орындалу санын дәл анықтауға болады. Біраз түсіндірмеден кейін мұндай құрылымның блок-схемасын өзіңіз салуға болады.
Бұл циклдің екі пішімі бар:
үшін:= үшін <оператор>;
үшін:= Downto Do ;
Мұнда И.П. - параметрлік айнымалының атауы, Н.З. - оның бастапқы мәні, Қ.З. - сәйкесінше параметрдің соңғы мәні. Бастапқы және соңғы мәндер ретінде
Бұл құрылым келесідей оқылады: «Айнымалы үшін (аты бойынша) бастапқы мәннен соңғы мәнге дейін операторды орындаңыз (ол циклдің денесі болып табылады). Кейде параметрі бар цикл тіпті «For» немесе «For» деп аталады. Бірінші жағдайда параметр әрбір итерацияда бір есе артады, екіншісінде ол азаяды.
Бұл цикл келесі алгоритм бойынша орындалады:
1. параметр айнымалысына бастапқы мән беріледі;
2. циклдің денесі орындалады;
3. параметр айнымалысы автоматты түрде 1-ге артады (форматтың бірінші жағдайында);
4. егер параметр соңғы мәннен асып кетсе, онда цикл шығады, әйтпесе 2-қадамға өтіңіз.
Ескертпе: Downto пайдалану кезінде параметр автоматты түрде 1-ге азаяды және параметр соңғы мәннен аз болған кезде цикл шығады.
Осылайша, циклдің алғашқы екі түрінен айырмашылығы, бұл цикл цикл денесінің қажетті орындалу саны белгілі болған кезде қолданылады.
Жалпы айтқанда, While циклі әмбебап болып табылады, яғни циклді пайдалануды қажет ететін кез келген мәселені осы құрылым арқылы шешуге болады. «Бұрын» және «Параметрмен» циклдері бағдарламалауға ыңғайлы болу үшін жасалған.
Мысал.
1-ден 100-ге дейінгі барлық натурал сандардың квадраттарының қосындысын табыңыз.
Бұл мәселені циклдің барлық үш түрін қолданып шешейік.
I. «Сау бол» циклін қолдану.
Ex1 бағдарламасы;
Var
A: бүтін;
S: Longint;
БАСТА
A:=1; S:=0;
A<=100 Do
БАСТА
S:=S+A*A;
A:=A+1
Соңы;
Жазылған(S)
Соңы.
II. «Бұрын» циклін пайдалану.
ProgramEx2;
Var
A: бүтін;
S: Longint;
БАСТА
A:=1; S:=0;
Қайталау
S:=S+A*A;
A:=A+1
A>100 дейін;
Жазылған(S)
Соңы.
III. «Параметрмен» циклін пайдалану.
ProgramEx3;
Var
A: бүтін;
S: Longint;
БАСТА
S:=0;
A:=1-ден 100-ге дейін орындаңыз S:=S+A*A;
Жазылған(S)
Соңы.
Енді сіз Паскаль тілінің барлық негізгі алгоритмдік құрылымдарын білесіз. Оларды біріктіру арқылы кез келген мәселенің шешімін бағдарламалауға болады, әрине, егер бар болса. Дегенмен, тіл үйрену мұнымен тоқтап қалмайды, өйткені жақсы бағдарламаларды жазу үшін, құрметті Никлаус Вирттің айтуынша (жұмыс барысында мен бұған күмәндануға негіз болған жоқ), бізге алгоритмдіктерден басқа, ыңғайлы деректер құрылымдары қажет. Қарастырылып отырған тілде мұндай құрылымдар көп, олардың әрқайсысының өз командалары мен операциялары бар. Енді біз олардың пікіріне жүгінеміз[5].