Паскаль тілінің шартты соңынан тексеретін қайталау операторы-REPEAT

39

Паскаль тілінің шартты соңынан тексеретін қайталау операторы-REPEAT

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

Есте сақта: Бұл оператор REPEAT  және UNTIL түйінді сөздерін пайдаланып орындалады.

Жазылу пішімі:

REPEAT

<оператор 1>;

<оператор 2>;

…………

<оператор n>;

UNTIL <шарт>;

Repeat (оқылуы: рипит, қайталауболып аударылады) және Until (оқылуы: антил, дейін, шейін болып аударылады)

Мысал.  1 кг ірімшік 300 тг. тұрады. Ірімшіктің 100, 200, 300, …, 1000 граммына төленетін теңгені анықтайтын және есептің жауабын кесте түрінде шығаратын программа құру.   Қадам – 100 –ге тең.

Program esep3_3;

Var                                            {айнымалыларды сипаттау бөлімі}

m: Integer;                               {m  – бүтін сан }

z:real;                                       { z  – нақты сан }

BEGIN                                     {программа басы}

Цикл денесі

m:=100;                                    { m-нің бастапқы мәні}

repeat                                       {цикл басы}

z:=(300*m)/1000;                    {төленетін теңгені есесптеу}

WriteLn(m,  ‘  | ‘,z , ‘ тг.’);    {нәтижені экранға шығару}

m:=m+100;                             {m мәнін 1 қадамға жоғарылату}

until m>1000;                        {цикл шарты}

readln;

END.                                    {программа соңы}

Программа нәтижесі:

100       |  30 тг.

200       |  60 тг.

300    |  90 тг.

400    |  120 тг.

500  |  150 тг.

………………..

……………….

1000 |  300 тг.

 

Тапсырма№1:  Пернетақтадан енгізілген кез келген сандардың ішінен ең үлкенін табатын программаны құрыңыз.

 

Тапсырма№2: 1, 3, 5, …, 15 сандары квадраттарының қосындысын есептеу алгоритмін және бағдарламасын repeat операторын қолдана құру керек.

program kosyndy;

var x,y,s:integer;

begin                                                                       

x:=1; s:=0;

while x<=15 do

begin            

y:=sqr(x);

s:=s+y;

x:=x+2;

end;

writeln (‘s=’,s);

end.