Қайталау операторы Nersta.blogspot.com




Презентация қосу
ҚАЙТАЛАУ
ОПЕРАТОРЫ

Nersta.blogspot.com
• Көп жағдайда аргументтердің әр түрлі мәні бойынша
алгоритмнің белгілі бір бөліктерін бірнеше рет қайталауға
тура келеді. Осындай процестерді ұйымдастыру үшін –
қайталау операторлары қолданылады.Қайталау процесін
жүзеге асыратын циклдік операторлардың үш түрі бар:
арифметикалық цикл – FOR, шартты алдын ала тексеретін
цикл – WHILE және шартты соңынан тексеретін цикл –
REPEAT. Егер шартын алдын ала тексеретін циклдегі
операторды неше рет қайталау керек екендігі белгісіз
болып, оның тек қайталану шарты берілсе, онда WHILE,
REPEAT операторлары пайдаланылады. Ал FOR операторы
қайталану саны алдын ала белгілі болған кезде
қолданылады. 
Мысалы:
WHILE
While оператор
Алдын ала берілген шарт бойынша қайталауды жүзеге
асыратын бұл оператор WHILE және DO.
WHILE DO ;

Nersta.blogspot.com


Мұндағы қайталану шарты - өрнек, цикл тұлғасы – қайталанып
орындалып отыратын қарапайым немесе құрама оператор. Цикл әрбір
орындалар алдында қайталану шартының мәні есептеледі, ол ақиқат -
true болса, цикл тұлғасы орындалады да, шарт қайта тексеріледі.
Қайталану шарты жалған – false болса, циклды орындау доғарылып,
WHILE операторынан кейінгі жолдар атқарыла бастайды. 

WHILE операторының жазылу пішімі мен орындалуын төмендегідей
түрде бейнелеуге болады:

REPEAT қайталау операторы WHILE операторына ұқсас, айырмашылығы
– қайталану шарты циклдың соңында тексеріледі. Екінші өзгешелігі –
цикл тұлғасы шарт жалған болған жағдайда қайталанып, ақиқат болған
кезде циклді орындау доғарылады. Бұл оператор REPEAT және UNTIL
түйінді сөздерін пайдаланып орындалады.
REPEAT
Until ;
Бұл жерде операторлар REPEAT және UNTIL сөздерінің арасына
орналасқандықтан, мұнда Begin және End сөздері жазылмайды.

Nersta.blogspot.com

REPEAT операторының циклі ішінде оның орындалу шартына әсер
ететін кем дегенде бір оператор болуы тиіс, әйтпесе ол шексіз
қайталана береді. 
Мысалы:
FOR
For операторы
Циклдегі операторларды қайталау саны алдын ала белгілі болған
жағдайда FOR операторы қолданылады. Бұл оператор параметрлі
цикл операторы деп те аталады, өйткені қайталау саны функция
аргументі (айнымалы) сияқты циклдің параметрі қызметін атқаратын
басқару айнымалысы арқылы беріледі. Параметр өзінің алғашқы
мәнінен соңғы мәніне дейін бірлік қадаммен өзгеру барысында
циклге кіретін бір немесе бірнеше операторды қайталап орындауды
атқарады.

FOR – үшін, TO – дейін, DO – орындау деген мағынаны беретін түйінді
сөздер қолданылады. Паскаль тілінде цикл параметрі міндетті түрде
бүтін немесе реттелген типтегі айнымалы болуы қажет. Параметрдің
өзгеру қадамына байланысты операторда ТО немесе DOWNTO (DOWN
- төмен, ТО – дейін, DOWNTO – кері қарай) түйінді сөздері
пайдаланылады. Егер қадам +1-ге тең болса, онда операторда ТО, ал
қадам -1-ге тең болса, онда DOWNTO сөзі қолданылады.

Nersta.blogspot.com

Қайталану командалары.
Программаның белгілі бір бөлігінің орындалуын бірнеше рет қайталау үшін
қолданылатын командаларды қайталану командалары деп атайды. Көптеген
есептеулерде айнымалылардың әртүрлі мәндері үшін кейбір операторлар
бірнеше рет қайталанып орындауды қажет етеді. Бұл операторларды , қайталап
орындалуы үшін , программаға қайта – қайта жаза берсек, онда программа құру
үшін көп уақыт кетеді, әрі программалық текст өте ұзақ және оқуға ынғайсыз
болып жазылады. Сондықтан программалық текстер қысқа әрі оқуға жеңіл болу
үшін қайталану процесін циклдық операторлар қолданып ұйымдастырады.
Циклдік процесс ұйымдастыру үшін келесі операторлар қолданылады:
1.FOR – параметрлі циклдік оператор;
2.WHILE – алдын – ала циклдің орындал шартын тексеретін оператор;
3.REPEAT – соңында циклдің тоқтау шартын тексеретін оператор.
Циклдік операторлар структуралық операторлар тобына жатады, өйткені
құрамына бірнеше операторлар кіреді. Программада алдымен циклдің
тақырыбы жазылады, онан кейін қайталанатын операторлар бөлімі – цикл
денесі жазылады. Цикл денесі бір немесе бірнеше операторлардан тұруы
мүмкін. Барлық циклдық операторлардың келесі ерекшелігі бар:
а) Қайталанатын операторлар ( циклдің денесі ) бір – ақ рет жазылады;
ә) Циклге тек қана басынан ( тақырыбы ) ғана кіруге болады;
б) Циклің айнымалылары алдын – ала циклге дейін анықталуы тиіс;
в) Цикл денесінде көшу операторын ( Goto ) қолданып программаның басқа
бөліктеріне шығуға болады.
д) Цикл ұйымдастырғанда, міндетті түрде циклден шығу шарты орындалатынын
қарастыру керек, әйтпесе программа орындалуы циклге келгенде тоқтап тұрып
қалады ( программа «мәңгі циклденіп» қалады ).
Цикл денесінің әр қайталауында цикл айнымалыларының мәндері де өзгеріп,
жаңа мән қабылдап отырады. Қайталану саны циклдің тақырыбында және цикл
денесінде берілетін айнымалылардың мәндеріне байланысты болады.
Nersta.blogspot.com
• Параметрлі циклдік операторлар цикл денесінің қайталануы арқылы алдын – ала белгілі болғанда қолданылады.Жалпы жазылу түрі
төмендегідей болады:
FOR K : = M TO N DO
ЦИКЛ ДЕНЕСІ ;
МҰНДАҒЫ : К – циклдік айнымалы ( есептеуіш ), әр цикл орындалғанда К – ға 1 қосылып тұрады.
М – К айнымалысының алғашқы мәні.
N – К айнымалының соңғы мәні.
• Цикл денесі жай немесе құрама оператордан тұруы мүмкін, егер цикл денесі құрама оператордан тұрса,онда ол операторлық
жақшаға алынып жазылады.Циклдің параметрі ( К ) тек қана айнымалы болуы тиіс, ал М және N өрнек болуы да мүмкін ( нақты Real
– типтен басқа ). Көбінесе цикл параметріне бүтін типті айнымалы қолданылады, оның мәні циклдің әр орындалуынан соң 1 – ге
артып отырады ( қадам 1 – ге тең ).
FOR циклінің блок – схемасы:
Цикл денесінің орындалуы FOR операторындағы К параметрінің мәні соңғы М параметрінің мәніне жеткенге дейін қайталанады.
Егер К мәні М мәнінен асып кетсе, онда қайталану процесі тоқтап, басқару циклі денесінен кейін тұрған операторға беріледі. Сондай
– ақ FOR және DOWNTO операторларының көмегімен кері циклдер ұйымдастыруға болады, кері циклдің жалпы жазылу түрі
төмендегідей:
FOR := N DOWNTO M
Цикл денесі;
Мұндағы: К – циклдік айнымалы ( есептеуіш ), әр цикл орындалғанда – 1 – ге азайып тұрады.
М – к айнымалысының алғашқы мәні. Т – К айнымалысының соңғы мәні.
Енді FOR операторымен циклдер құру мысалдарын қарастырайық:
Алты бұрыштың қабырғалары берілген. Үшбұрыштардың ауданын программаның бір орындалуында шығару керек.
а) Егер есепті шығару үшін сызықты программа құратын болсақ, онда программада үшбұрыштың қабырғаларын ендіру және оның
жарты периметрі мен ауданын есептеу формулаларын төмендегідей етіп алты рет жазу керек:
PROGRAM AUDAN;
VAR A, B, C: Byte; P, S:REAL;
BEGIN Write ( 1,’үшбұрыштың қабырғаларын енгіз:’ );Readln ( A, B, C );
P:= ( A+ B + C )/2; S := SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , 1 , ’ = ’ , S : 5 : 2 );
Write ( 2 , ’ үшбұрыштың қабырғаларын енгіз: ’); Readln ( A, B, C );
P:= ( A+ B + C )/2; S := SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , 2 , ’ = ’ , S : 5 : 2 );
Write ( 3 , ’ үшбұрыштың қабырғаларын енгіз: ’); Readln ( A, B, C );
P:= ( A+ B + C )/2; S := SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , 23, ’ = ’ , S : 5 : 2 );
Write ( 4, ’ үшбұрыштың қабырғаларын енгіз: ’); Readln ( A, B, C );
P:= ( A+ B + C )/2; S := SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , 4 , ’ = ’ , S : 5 : 2 );
Write ( 5 , ’ үшбұрыштың қабырғаларын енгіз: ’); Readln ( A, B, C );
P:= ( A+ B + C )/2; S := SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , 4 , ’ = ’ , S : 5 : 2 );
Write ( 6 , ’ үшбұрыштың қабырғаларын енгіз: ’); Readln ( A, B, C );
P:= ( A+ B + C )/2; S := SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , 5 , ’ = ’ , S : 5 : 2 );
Readln End.

Nersta.blogspot.com

ә) Программаны тармақталу командалары көмегімен төмендегідей етіп құруға болады:
PROGRAM AUDAN 1;
LABEL 1;
VAR A, B, C: Byte; P, S: Real; K : Byte;
BEGIN K:=1;
1: Write ( k, ‘үшбұрыштың қабырғаларын енгіз: ’); Readln ( A, B, C );
P:=( A + B + C ) / 2 ;
S:=SQRT ( P*(P – A)*(P – B)*(P – C) );
Writeln ( ‘ аудан S ’ , K , ’ = ’, S : 4 : 1 );;
K:= K + 1;
If K < = 6 Then Goto 1;
Readln End.
б) Енді дәл осы программаны FOR операторымен құратын болсақ, онда программада үшбұрыштың қабырғаларын
ендіру және оның жарты периметрі мен ауданын есептеу формулаларын төмендегідей цикл денесінде бір – ақ
рет жазса жеткілікті. Цикл денесі К параметрінің 1 – ден 6 – ға дейінгі мәндерінде қайталанып орындалады.
Компьютер 6 рет Readln операторындағы айнымалылар мәндерін сұрап, оларды клавиатурадан ендіргеннен
кейін, 6 рет үшбұрыштың ауданы Герон формуласымен есептеліп, экранға нәтиже шығарады.
PROGRAM AUDAN 1;
VAR A, B, C : Byte;
P, S : Real; K : Byte;
BEGIN
For K:= 1 To 6 Do Begin
Write ( K,’үшбұрыштың қабырғаларын енгіз’ );
Readln ( A, B, C );
P:= ( A + B + C ) / 2;
S:=SQRT (P*(P-A)*(P-B )*(P-C));
Writeln ( ‘ аудан S’ , K, ’=’ , S:5:2 );End;
Readln END.
Бұл программаны ТО операторының орнына DOWNTO операторын қолданып төмендегідей кері цикл
ұйымдастырып, құруға да болады:
PROGRAM AUDAN 1;
VAR A, B, C : Byte;
P, S : Real; K : Byte;
BEGIN
For K:=6 Downto 1 Do Begin
Write (K,’ ’үшбұрыштың қабырғаларын енгіз’ );
Readln ( A, B, C );
P:= ( A + B + C ) / 2;
S:=SQRT (P*(P-A)*(P-B )*(P-C));
Writeln ( ‘ аудан S’ , K, ’=’ , S:5:2 );End;
Readln END.
Nersta.blogspot.com
• Экранға Х – тің барлық 1 – ден 100 – ге дейінгі бүтін мәндері үшін Y=x2-50*x-30 өрнегінің нәтижесін шығару командасы.
Программада Х идентификаторын өрнектің айнымалысы әрі циклдің параметрі ретінде белгілеп, 1 – ден 100 – ге дейін қайталанатын цикл
ұйымдастырамыз. Цикл параметрі Х 1 – ді меншіктеп, өрнектің Х =1 болғандағы мәнін шығарады. Цикл параметрінің келесі мәні 2 – ні
меншіктеп, өрнектің Х =2 болғандағы мәнін шығарады, әрі қарай цикл аяқталғанша өрнектің сәйкес мәндері шыға береді. Цикл параметрі
101 мәнін қабылдағанда, цикл тоқтайды.

• PROGRAM Tendeu 1;
VAR X:Byte; Y:Longint;
BEGIN
For X:= 1 To 100 Do
Begin
Y:= SQR ( X ) + 50*X-30;
Writeln (‘Y=’, Y );
End;
Readln END.
• Программаның блок – схемасы:
Дәл жоғарыдағы өрнектің Х – тің 1 – 100 – ге дейінгі бүтін жұп мәндері үшін нәтиже шығару
программасын құру.
PROGRAM Tendeu 3;
VAR X:Byte;
Y:=integer;
BEGIN
For X:=1 To 100 Do
If X Mod 2=0 Then
Begin
Y:= SQR ( X )+*X-30;
Writeln (‘Y =’, Y);
End;
Readln END.
Программаның блок – схемасы:  немесе бұл программа төмендегідей қысқаша етіп құруға да болады:
PROGRAM Tendeu 4;
VAR X:Byte;
BEGIN
For X:=1 To 100 Do
Begin
X:=X+1;
Writeln (‘Y=’,SQR (X)+50*X-30);
End;
Readln END.
Программаның блок – схемасы:

Nersta.blogspot.com
• WHILI … DO ЦИКЛДІК ОПЕРАТОРЫ ( ӘЗІРШЕ ЦИКЛІ ).
Әдетте, WHILE операторы қайталану саны алдын – ала белгісіз болған жағдайларда
қолданылады. Цикл денесінің әрбір орындалуының алдында, WHILE опероторында циклдің
орындалу шарты тексеріледі, шарттағы айнымалылар мәндерінің өзгеруіне әсер ететін
операторлар цикл денесінде беріледі. Егер цикл денесі бірнеше операторлардан тұрса, онда
ол операторлық жақшаларға алынады, жалпы жазылу түрі:
• WHILE шарт Do
цикл денесі;
Әзірше WHILE операторында жазылған шарт орындалып тұрса, цикл денесінің орындалуы
қайталанып тұрады. Егер шарт орындалмай қалса, онда қайталану процесі тоқтап, басқару
цикл денесінен кейін тұрған операторға беріледі. Шарттағы салыстырылатын айнымалылар
мәндері цмклге дейін беріліп, олардың жаңа мәндерінің өсімі цикл денесінде беріледі. Егер
WHILE операторындағы шарт бірде – бір рет орындалмаса, онда программа орындалуы
циклді аттап өтеді.Егер шарттағы айнымалы мәндері ешқашан өзгермесе, онда программа
мәңгі циклденіп қалады.
WHILE циклінің блок – схемасы:
• FOR операторымен құрған үшбұрыштың қабырғалары бойынша ауданын табу және
өрнектердің нәтижелерін шығару программаларын
WHILE операторымен де төмендегі мысалдардағыдай етіп құруға болады.
Герон формуласымен үшбұрыштардың ауданын табу программасы.
PROGRAM Audan1;
VAR A, B, C, K: Byte;
P, S :Real;
BEGIN K :=1; ( циклдің орындалу шарты )
Write K <=6 Do
Begin
Writeln (K,’үшбұрыштың қабырғаларын енгіз’);
Readln ( A, B, C );
P:= (A +B +C );
S:= SQRT (P*(P-A)*P-B)*(P-C));
Writeln (‘аудан S’,K,’=’ S:5:2);
Lnc (K); (K:=K+1 өрнегін ауыстыратын функция )
End;
Readln END.
Nersta.blogspot.com
• Экранға Х – тің барлық 1 – ден 100 – ге дейінгі бүтін мәндері үшін Y=X2-50*X-30
өрнегінің нәтижесін шығару программасы.
PROGRAM Tendeu 1;
VAR X:Byte;
Y: Integer;
BEGIN X:=1;
While X<=100 Do
Begin
Y:= SQR (X)+50*X-30;
Writeln(‘Y=’, Y);
Lnc (X);
End;
Readln END.
Программаның блок – схемасы:
Дәл жоғарыдағы өрнектің Х – тің 1 – 100 – ге дейінгі бүтін жұп мәндері үшін
нәтиже шығару программасын құру.
• PROGRAM Tendeu 2;
VAR X:Byte; Y: Integer;
BEGIN
X:=2;
While X=b Do
Begin
P:= P – B;
N:= N + 1
End;
Writeln (‘Rez1=’,N, ‘Rez2=’,P);
Readln END.

Nersta.blogspot.com
• REPEAT … UNTIL ЦИКЛДІК ОПЕРАТОРЫ ( Дейін ).
Бұл операторда WHILE операторы сияқты қайталану саны алдын – ала
белгісіз болған жағдайларда қолданылады.REPEAT циклінің WHILE
циклінен айырмашылығы циклді орындау шарты цикл денесінен кейін
тексеріледі. Цикл денесі жай немесе құрама оператор болуы мүмкін.
Ондағы операторлар REPEAT және UNTIL қызметші сөздерінің арасында
орналасқандықтан, цикл денесі операторлық жақшаларға алынбай
жазылады. Циклден шығу шарты орындалу үшін, цикл денесінде шартқа
әсер ететін ең кемі бір оператор болуы тиіс, әйтпесе цикл денесінің
орындалуы тоқтамай шексіз қайталана береді ( программа «мәңгілік
циклденіп» қалады ).Жалпы жазылу түрі төмендегідей:
REPEAT
Цикл денесі;
UNTIL шарт;
UNTIL оператолрында жазылған шарт орындалғанға дейін цикл денесінің
орындалуы қайталанып тұрады. Егер ондағы шарт орындалса, онда
қайталану процесі тоқтап, басқару цикл денесінен кейін тұрған операторға
беріледі. Шарттағы есептеуіш параметр мәні циклге дейін беріліп, оның
жаңа мәнінің өсімі цикл денесінде беріледі.

Nersta.blogspot.com

Ұқсас жұмыстар
Ішкі жыныс ағзалары
Қайталау операторы. Циклдік операторлар
Тексеру және таңдау операторлары. Циклдық программалауға арналған командалар туралы ақпарат
Тексеру және таңдау операторлары. Циклдық программалауға арналған командалар
Қайталау операторлары
ЦИКЛ ДЕНЕСІ
Цикл операторлары
Көшу операторы
Сызықтық бағдарлама құрылымы
Сызықты құрылымды алгоритмдер мен программаларды құру
Пәндер