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

67

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

 

Циклдік оператор
Арифметикалық цикл — For
Шартты алдын ала тексеретін  цикл — While
Шартты соңынан тексеретін цикл — Repeat
Қайталау операторы

 

 

 

 

 

 

 

 

 

 

 

 

While (оқылуы: уайл, аударылуы: әзірше) және Do (оқылуы: ду, орындау болып аударылады) түйінді сөздері  қолданылып орындалады.

Есте сақта: Пішімі: While <қайталану шарты> Do <цикл тұлғасы>;

Мысал.  x-тің х= 1, 2, 3, 4, 5, 6 мәндерінде у=  функциясының мәнін табу программасын құру.

Program esep3_2;

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

x,y: Integer;                        {х,y  – бүтін сандар }

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

x:=1;                                   {х-тің бастапқы мәні}

while (x<=6) do

                          {егер х-тің мәні 6-дан төмен немесе тең болғанда, цикл денесі орындалады}

begin                                                {цикл басы}

y:=exp(x)+2*sqrt(x);                      {у функциясын есептеу}

WriteLn(‘x =’, x, ‘  |  y =’, y);   {нәтижені экранға шығарамыз}

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

end;                                               {цикл соңы}

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

Программаны іске қосқанда келесі нәтижелер шығуы міндет:

х=1  | у=1

х=2  | у=4

х=3  | у=9

х=4  | у=16

х=5  | у=25

х=6  | у=36

Егер  бір цикл тұлғасында басқа циклдік құрылым бар болса, онда олар қабатталған циклдер деп аталады. Құрамына басқа цикл кіретін цикл сыртқы болып саналады да, сыртқы цикл тұлғасына кіретін цикл ішкі болып есептеледі.

Көптеген есептерді шығару үшін бірінің ішіне бірі қабаттасқан осындай күрделі циклдерді пайдалануға тура келеді. Күрделі циклдер қарапайым циклдерден құралады.

Мысал 2. (While,  For операторын қолдану арқылы)

z=x+2y функциясының мәнін есептеу, мұндағы х=2, 4, 5, 6, 8, 10    және   у=5, 6, 7, 8, 9

Program esep3_1;

Var

z,x,y:integer;

begin

while (x<=0) do

Цикл денесі

begin

for y:=5 to 9 do

begin

z:=x+2*y;

writeln(‘x=’, x,’| y=’, y, ‘| z=’, z);

x:=x+2;

end;

end;

readln;  end.

Тапсырма№1:  Қатесін табыңыз:

1-ден n – ге дейінгі сандардың квадраттарының қосындысын табатын программа құру керек.

Program  kvadrat;

Var s,  i , n: integer;

Begin

WriteLn (‘ n = ’) ;

Readln (n);

I:=1;

S:=0; I:= i+1;

While i<=n do  S:=S + sqr (i);

Begin

WriteLn (‘ S=’ , S);

End;

 

Тапсырма№2: (1*3*5*. . .*n) Тақ сандардың көбейтіндісін есептейтін прграмманы  компьютерде теріңіз және жұп сандардың көбейтіндісін (2*4*6*…*n) есептейтін программаны өз бетінше құрыңыз.

Program tak san;

Uses crt;

Var k,n:integer;

Begin clrscr;

Write (‘n=’); read (n);

K:=1; S:=1;

While k>=n do begin

S=S*k;  k:=k+2;

End;

End;

Writeln (‘S=’,S);

End.

Тапсырма№3: Мектептегі баға цифрмен белгіленеді және оның аты болады. Бағаның цифрмен жазылған мәні бойынша атын анықтайтын программа құрыңдар.

 

Үйге тапсырма:

Бағдаршамның көрсетуі бойынша көшеден өту программасын құру керек.