Оқу-ҽдістемелік материалдар «алгоритмдеу жҽне бағдарламалау негіздері» Баспа



Pdf көрінісі
бет5/11
Дата28.01.2017
өлшемі1,33 Mb.
#2921
1   2   3   4   5   6   7   8   9   10   11

CASE таңдау командалары.  
CASE  таңдау  операторының  кҿмегімен    берілген  блоктардың  кез-келген 
вариантын таңдауға болады. Егер орындалатын блокта бірнеше оператор болса, 
онда олар операторлыќ жаќшаға алынып жазылады. 
      CASE N OF 
      1:1 блок; 
      2:2 блок; 
      … … … … 
      N: N блок; END; 
 
    Таңдау командаларымен программа ќҧру. 
 
    11. Х айнымалысына байланысты Y-тің мҽнін есептеу. 
 
        5*X+50*A,                        егер X<-10 
        SQRT(X+A),           егер X<0 
        Y=   COS (A+B),             егер X<10 
        SIN (A+B),               егер X>=10 
 
        PROGRAM esepteu; 
        VAR      M:INTEGER; 
        X,A,B,Y: REAL; 
       BEGIN READLN (X,A,B); 
       IF X<-10 THEN M:=1ELSE X<0 THEN M:=2 
       ELSE IF X<10 THEN M:3 ELSE M:=4; 
       CASE M OF 
       1: Y:=5*X+50*A; 
       2: Y:=SQRT(X+A); 
       3: Y:=COST (A+B); 
       4: Y:=SIN (A+B); 
       END; 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 43-сі 
 
 
43 
      WRITELN (`Y=`, Y:5:2); END. 
 
  12.  Ќазаќстандыќтардың  олимпиадалыќ  ойындарда  алған  алтын  медальдары 
(жылдар бойынша таңдау). 
 
       PROGRAM OLYMP; 
       VAR   M:INTEGER; 
       BEGIN READLN (M); 
       CASE M OF 
       1996: BEGIN 
       WRITELN (`Грек-рим кҥресі - Ю.Мельниченко`); 
       WRITELN (`Ќазіргі бессайыс - А.Парыгин`); 
       WRITELN (`Бокс - В.Жиров`); 
       2000: BEGIN 
       WRITELN (` Жеңіл атлетика - О.Шишигина`); 
       WRITELN (`Бокс - Б.Саттарханов, Е.Ибраимов`); END; 
       END. 
 
  13. Ҽртҥрлі елдердің астаналары туралы мҽлімет алу программасы. 
 
      PROGRAM COUNTRY; LABEL 10; 
      VAR   M:INTEGER; X:STRING; 
      BEGIN READLN (X); 
      IF X=`¤збекстан` THEN M:=1 ELSE IF X=Ресей` THEN M:=2 
      ELSE IF X= `Франция`THEN M:=3 ELSE IF X= `Жапония` THEN 
      M:=4 ELSE IF X=`Болгария` THEN M:=5 ELSE GOTO 10 
      CASE OF 
     1: WRITELN (`Астанасы - Ташкент, тҧрғыны -2.5 млн. адам`); 
     2: WRITELN (`Астанасы - Москва, тҧрғыны -7.2 млн. адам`); 
     3: WRITELN (`Астанасы - Париж, тҧрғыны -6.5 млн. адам`); 
     4: WRITELN цикл денесі; 
     (`Астанасы - Токио, тҧрғыны -12.8 млн. адам`); 
     5: WRITELN (`Астанасы - София, тҧрғыны -3.5 млн. адам`); 
     END. 
    10: END. 
6 Қайталану (Циклдік)  командалары 
 
Программаның  белгілі бір  бҿлігінің  орындалуын  бірнеше  рет  қайталау  
ҥшін    қолданылатын    командаларды    қайталану    командалары        деп  атайды. 
Кҿптеген  есептеулерде    айнымалылардың    ҽртҥрлі    мҽндері    ҥшін    кейбір  
операторлар  бірнеше    рет    қайталанып    орындауды  қажет    етеді.    Бҧл  
операторларды,  қайталап  орындалуы  ҥшін,  программаға қайта  – қайта жаза 
берсек,  онда  программа  қҧру  ҥшін  кҿп  уақыт  кетеді,  ҽрі  программалық  текст 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 44-сі 
 
 
44 
ҿте  ҧзақ  жҽне  оқуға  ынғайсыз  болып  жазылады.  Сондықтан  программалық 
текстер  қысқа  ҽрі  оқуға  жеңіл  болу  ҥшін  қайталану  процесін  циклдық 
операторлар  қолданып  ҧйымдастырады.  Циклдік  процесс  ҧйымдастыру  ҥшін 
келесі операторлар қолданылады:  
1.FOR – параметрлі циклдік оператор
2.WHILE – алдын – ала циклдің орындал шартын тексеретін оператор; 
3.REPEAT –  соңында циклдің тоқтау шартын тексеретін оператор. 
 
Циклдік  операторлар  қҧрылымдық  операторлар  тобына  жатады,  ҿйткені 
қҧрамына  бірнеше  операторлар  кіреді.  Программада  алдымен  циклдің 
тақырыбы  жазылады,  онан  кейін  қайталанатын  операторлар  бҿлімі  –  цикл  
денесі    жазылады.  Цикл  денесі  бір  немесе  бірнеше  операторлардан  тҧруы 
мҥмкін. Барлық циклдық операторлардың келесі ерекшелігі бар: 
а) Қайталанатын операторлар ( циклдің денесі ) бір – ақ рет жазылады; 
ҽ) Циклге тек қана басынан ( тақырыбы ) ғана кіруге болады; 
б) Циклің айнымалылары алдын – ала циклге дейін анықталуы тиіс
в)  Цикл  денесінде  кҿшу  операторын  (  Goto  )  қолданып  программаның 
басқа бҿліктеріне шығуға болады. 
д)  Цикл  ҧйымдастырғанда,  міндетті  тҥрде  циклден  шығу  шарты 
орындалатынын  қарастыру  керек,  ҽйтпесе  программа  орындалуы  циклге 
келгенде тоқтап тҧрып қалады ( программа «мҽңгі циклденіп» қалады ). 
Цикл  денесінің  ҽр  қайталауында  цикл  айнымалыларының  мҽндері  де 
ҿзгеріп,  жаңа  мҽн  қабылдап  отырады.  Қайталану  саны  циклдің  тақырыбында 
жҽне  цикл  денесінде  берілетін  айнымалылардың  мҽндеріне  байланысты 
болады. 
 
FOR циклдік операторы ( Ҥшін циклі ). 
 
Параметрлі  циклдік  операторлар  цикл  денесінің  қайталануы  арқылы 
алдын  –  ала  белгілі  болғанда  қолданылады.Жалпы  жазылу  тҥрі  тҿмендегідей 
болады: 
FOR K : = M TO N DO  
ЦИКЛ ДЕНЕСІ ; 
МҦНДАҒЫ : К – циклдік айнымалы ( есептеуіш ), ҽр цикл орындалғанда 
К – ға 1 қосылып тҧрады. 
М – К айнымалысының алғашқы мҽні. 
N – К айнымалының соңғы мҽні. 
 
Цикл  денесі  жай  немесе  қҧрама  оператордан  тҧруы  мҥмкін,  егер  цикл 
денесі  қҧрама  оператордан  тҧрса,онда  ол  операторлық  жақшаға  алынып 
жазылады.Циклдің параметрі ( К ) тек қана айнымалы болуы тиіс, ал М жҽне N 
ҿрнек  болуы  да  мҥмкін  (  нақты  Real  –  типтен  басқа  ).  Кҿбінесе  цикл 
параметріне  бҥтін  типті  айнымалы  қолданылады,  оның  мҽні  циклдің  ҽр 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 45-сі 
 
 
45 
орындалуынан соң 1 – ге артып отырады ( қадам 1 – ге тең ). 
 
FOR циклінің блок – схемасы: 
 
 
 
 
Цикл  денесінің  орындалуы  FOR  операторындағы  К  параметрінің  мҽні 
соңғы  М  параметрінің  мҽніне  жеткенге  дейін  қайталанады.    Егер  К  мҽні  М 
мҽнінен  асып  кетсе,  онда  қайталану  процесі  тоқтап,  басқару  циклі  денесінен 
кейін  тҧрған  операторға  беріледі.  Сондай  –  ақ  FOR  жҽне  DOWNTO 
операторларының кҿмегімен кері циклдер ҧйымдастыруға болады, кері циклдің 
жалпы жазылу тҥрі тҿмендегідей:  
FOR := N DOWNTO M 
Цикл денесі; 
 
Мҧндағы: К – циклдік айнымалы ( есептеуіш ), ҽр цикл орындалғанда – 1 
– ге азайып тҧрады. 
М – к айнымалысының алғашқы мҽні. Т – К айнымалысының соңғы мҽні. 
 
Енді FOR операторымен циклдер қҧру мысалдарын қарастырайық: 
Алты  бұрыштың  қабырғалары  берілген.  Ҥшбұрыштардың  ауданын 
программаның бір орындалуында шығару керек. 
а)Егер  есепті  шығару  ҥшін  сызықты  программа  қҧратын  болсақ,  онда 
Цикл денесі 
   K :=m, n,
 


ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 46-сі 
 
 
46 
программада  ҥшбҧрыштың  қабырғаларын  ендіру  жҽне  оның  жарты  периметрі 
мен ауданын есептеу формулаларын тҿмендегідей етіп алты рет жазу керек: 
 
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. 
 
ҽ)  Программаны  тармақталу  командалары  кҿмегімен  тҿмендегідей  етіп 
қҧруға болады: 
 
 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  операторымен  қҧратын  болсақ,  онда 
программада  ҥшбҧрыштың  қабырғаларын  ендіру  жҽне  оның  жарты  периметрі 
мен ауданын есептеу формулаларын тҿмендегідей цикл денесінде бір  – ақ рет 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 47-сі 
 
 
47 
жазса жеткілікті. Цикл денесі К параметрінің 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. 
   
Экранға  Х  –  тің  барлық  1  –  ден  100  –  ге  дейінгі  бҥтін  мәндері  ҥшін 
Y=x
2
-50*x-30 өрнегінің нәтижесін шығару командасы. 
 
Программада  Х  идентификаторын  ҿрнектің  айнымалысы  ҽрі  циклдің 
параметрі  ретінде  белгілеп,  1  –  ден  100  –  ге  дейін  қайталанатын  цикл 
ҧйымдастырамыз.  Цикл  параметрі  Х  1  –  ді  меншіктеп,  ҿрнектің  Х  =1 
болғандағы мҽнін шығарады. Цикл параметрінің келесі мҽні 2  – ні меншіктеп, 
ҿрнектің  Х  =2  болғандағы  мҽнін  шығарады,  ҽрі  қарай  цикл  аяқталғанша 
ҿрнектің сҽйкес мҽндері шыға береді. Цикл параметрі 101 мҽнін қабылдағанда, 
цикл тоқтайды. 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 48-сі 
 
 
48 
  PRAGRAM 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  –  ге  дейінгі  бҥтін  жұп 
мәндері ҥшін нәтиже шығару программасын құру. 
 
PRAGRAM 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. 
БАСЫ 
Цикл денесінің орындалуын Х – 
тің   мҽні 1 – ден 100 – ге дейін 
қайталау 
  
Y := SQR ( X ) + 50 * X - 30; 
Нҽтиже шығару 
Соңы 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 49-сі 
 
 
49 
 
Программаның блок – схемасы: 
 
немесе бҧл программа тҿмендегідей қысқаша етіп қҧруға да болады: 
 
PRОGRAM 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. 
 
Программаның блок – схемасы: 
Басы 
Цикл  денесінің  орындалуын Х-тің 
мҽні 1-ден 100-ге дейін қайталау 
X mod 2 = 0  
Y:=sqr (x)+50*x-30; 
Нҽтиже  шығару  
Соңы 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 50-сі 
 
 
50 
 
 
Whilе … Do циклдік операторы ( ӘЗІРШЕ циклі ) 
Ҽдетте,  WHILE  операторы  қайталану  саны  алдын  –  ала  белгісіз  болған 
жағдайларда  қолданылады.  Цикл  денесінің  ҽрбір  орындалуының  алдында, 
WHILE  опероторында  циклдің  орындалу  шарты  тексеріледі,  шарттағы 
айнымалылар  мҽндерінің  ҿзгеруіне  ҽсер  ететін  операторлар  цикл  денесінде 
беріледі. Егер цикл денесі бірнеше операторлардан тҧрса, онда ол операторлық 
жақшаларға алынады, жалпы жазылу тҥрі: 
 
WHILE шарт Do 
цикл денесі; 
 
Әзірше  WHILE  операторында  жазылған  шарт  орындалып  тҧрса,  цикл 
денесінің  орындалуы  қайталанып  тҧрады.  Егер  шарт  орындалмай  қалса,  онда 
қайталану  процесі  тоқтап,  басқару  цикл  денесінен  кейін  тҧрған  операторға 
беріледі.  Шарттағы  салыстырылатын  айнымалылар  мҽндері  цмклге  дейін 
беріліп,  олардың  жаңа  мҽндерінің  ҿсімі  цикл  денесінде  беріледі.  Егер  WHILE 
операторындағы шарт бірде – бір рет орындалмаса, онда программа орындалуы 
циклді аттап ҿтеді.Егер шарттағы айнымалы мҽндері ешқашан ҿзгермесе, онда 
программа мҽңгі циклденіп қалады. 
WHILE циклінің блок – схемасы: 
 
Басы 
Цикл денесінің 
орындалуын Х – тің   мҽні 
1 – ден 100 – ге дейін 
қайталау 
 
X:=X+1; 
Sqr(x)+50*x-30 
Нҽтиже
 шығару  
Соңы 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 51-сі 
 
 
51 
 
FOR операторымен қҧрған ҥшбҧрыштың қабырғалары бойынша ауданын 
табу жҽне ҿрнектердің нҽтижелерін шығару программаларын  
WHILE операторымен де тҿмендегі мысалдардағыдай етіп қҧруға болады. 
 
Герон формуласымен ҥшбұрыштардың ауданын табу программасы. 
 
PROGRAM Audan1; 
VAR A, B, C, K: Byte; 
   P, S :Real; 
BEGIN K :=1;            ( циклдің орындалу шарты ) 
  WHILE 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. 
Экранға  Х  –  тің  барлық  1  –  ден  100  –  ге  дейінгі  бҥтін  мәндері  ҥшін 
Y=X
2
-50*X-30 өрнегінің нәтижесін шығару программасы. 
PROGRAM Tendeu 1; 
VAR X:Byte; 
    Y: Integer; 
Цикл денесі 
Шарт 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 52-сі 
 
 
52 
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<= 100 Do 
Begin 
    Y:=SQR(X)+50*X-30; 
     Writeln (‗Y=‘,Y); 
      Lnc (X,2); 
End; 
Readln END. 
Басы 
Х:=1; 
Х<=100 
Y:=SQR(X)+50*X-30; 
Y  нҽтиже шығару  
X:=X+1; 
Соңы 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 53-сі 
 
 
53 
 
Программаның блок – схемасы: 
 
Сандардың қатынасының мәндерін есептейтін стандартты Mod және 
Div функцияларын While циклі арқылы ауыстыру программасы. 
 
PROGRAM San; 
VAR A, B, K, P, N :integer; 
BEGIN 
Readln ( A, B );                                {екі сан енгізу } 
P:= A;N:=0; 
                            {Циклдің орындалу шарты} 
While P>=b Do 
Begin 
P:= P – B; 
N:= N + 1 
End; 
Writeln (‗Rez1=‘,N, ‗Rez2=‘,P); 
Readln END. 
Басы 
Х:=2; 
Х<=100 
Y:=SQR(X)+50*X-30; 
X:=X+2; 
Соңы 
Y  нәтиже шығару  

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 54-сі 
 
 
54 
Repeat … Until циклдік операторы ( ДЕЙІН ). 
 
Бҧл  операторда  WHILE  операторы  сияқты  қайталану  саны  алдын  –  ала 
белгісіз болған жағдайларда қолданылады. REPEAT циклінің WHILE циклінен 
айырмашылығы циклді орындау шарты цикл денесінен кейін тексеріледі. Цикл 
денесі  жай  немесе  қҧрама  оператор  болуы  мҥмкін.  Ондағы  операторлар 
REPEAT  жҽне  UNTIL  қызметші  сҿздерінің  арасында  орналасқандықтан,  цикл 
денесі  операторлық  жақшаларға  алынбай  жазылады.  Циклден  шығу  шарты 
орындалу ҥшін, цикл денесінде шартқа ҽсер ететін ең кемі бір оператор болуы 
тиіс,  ҽйтпесе  цикл  денесінің  орындалуы  тоқтамай  шексіз  қайталана  береді  ( 
программа «мҽңгілік циклденіп» қалады ).Жалпы жазылу тҥрі тҿмендегідей: 
 
REPEAT 
Цикл денесі; 
UNTIL шарт; 
 
UNTIL операторында жазылған шарт орындалғанға дейін  цикл денесінің 
орындалуы  қайталанып  тҧрады.  Егер ондағы  шарт орындалса,  онда  қайталану 
процесі  тоқтап,  басқару  цикл  денесінен  кейін  тҧрған  операторға  беріледі. 
Шарттағы  есептеуіш  параметр  мҽні  циклге  дейін  беріліп,  оның  жаңа  мҽнінің 
ҿсімі цикл денесінде беріледі. 
 
REPEAT циклінің блок – схемасы:  
 
Барлық  циклдік  операторлармен  программалар  қҧрғанда,  Do,  While, 
Repeat операторларынан кейін нҥктелі ҥтір қойылмайтынын ескеру қажет. Егер 
цикл  денелерінде  басқаруды  циклдің  сыртындағы  таңбаға  кҿшіретін  оператор 
кездессе,  онда  циклдің  қайталануы  бірден  тоқтайды.  Егер  циклдің  орындалу 
шарты  басынан  орындалмаса,  онда  цикл  жҥрмейді.  REPEAT  циклінде 
Цикл 
Денесі 
Шарт 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 55-сі 
 
 
55 
программа  орындалуы  цикл  соңындағы  шартқа  бармай  тҧрып,  цикл  денесі 
міндетті  тҥрде  бір  рет  орындалады.  Цикл  денесінде  басқаруды  цикл  сыртына 
жіберетін шартсыз кҿшу операторы тҧрса, онда басқару Goto операторындағы 
белгісі бар цикл сыртындағы операторға беріліп, цикл ертн аяқталуы мҥмкін. 
REPEAT операторымен қайталану процестерін ҧйымдастыру мысалдары: 
 
S=1+2+3+4+5 қатарын есептеу программасын құру. 
 
а) есептің сызықты программасы тҿмендегідей қҧрылады: 
 
PROGRAM Syzyk; 
VAR S:integer;                               {айнымалыларды сипаттау} 
BEGIN 
S:=0;                  {S – тің қосынды есептемей тҧрғандағы алғашқы мҽні} 
     S:=S+1;S:=S+2; 
     S:=S+3;S:=S+4;S:=S+5; 
     Writeln (‗S=‖,S);                        {нҽтиже шығару} 
Readln END. 
ҽ)  Сызықтық  программадан  қатардың  қосындысын  есептеу  формуласын 
шығарып  алып,  программаны  тармақталу  командаларымен  қҧруға  болады. 
Қатардың қосындысының формуласы: 
S:=S+K; 
Мҧндағы: S – қосындының алдыңғы мҽні; 
К - ҽр жолы 1 – ге артып отыратын параметр. 
 
PROGRAM Tarmak; 
LABEL : 
VAR X, K: integer;                     {айнымалыларды сипаттау} 
BEGIN S:=0; K:=1;                    {S – пен К – ның алғашқы мҽндері} 
  1:S:=S+K; 
     K:=K+1;        {K – ның жаңа мҽні ҽр жолы 1 – ге ҿсіп отырады} 
     If K<5 Then Goto 1;                  {шарт тексеру} 
     Writeln (‗S =‖, S);                      {нҽтиже шығару} 
Readln End. 
 
б) Енді программаны REPEAT операторымен қҧрып кҿрсетелік: 
 
PROGRAM Kaitalanu; 
VAR S, K :integer; 
BEGIN S:= 0; K:=1; 
     REPEAT 
     S:=S+k; 
     K:=K+1; 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 56-сі 
 
 
56 
     Until K>5; 
 {циклдің тоқтау шартын тексеру} 
  {нҽтиже шығару} 
Readln END. 
 
Программа блок – схемасы: 
 
 
       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Y  =X

функциясын  Х  –  тің  мәндері  1,  4,  7,  10  болғанда  шығару 
программасын REPEAT циклімен құру. 
 
PROGRAM Funct; 
VAR X:Byte; Y: integer;             {айнымалыларды сипаттау}        
BEGIN  
X:=1;                                       {Х – тің алғашқы мҽні} 
                                             {цикл басы} 
 
REPEAT 
 
Y:=SQR(X); 
Басы 
S:=0; k:=1; 
S:=s+k; 
K:=k+1; 
k>5 шарты  
орындалғанша цикл  
денесін  қайталау 
S  Нҽтиже шығару  
Соңы 

ПОҼК 042-11.1.20/03-2014
 
Баспа  №1 кҥні 11.09.2014 ж.  121 беттің 57-сі 
 
 
57 

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   11




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет