Үйреншікті процедуралар және ензізу шығару функциясы. Цикл операторлары. Массив

Цикл деген сөз әр салада кездеседi. Оның беретiн негiзгi мағынасы — белгiлi бiр әрекеттi бiрнеше рет қайталау. Турбо Паскаль программалау ортасында да циклдар кездеседi. Олардың көмегiмен программаның қайталанатын бөліктерін программалауға болады. Циклдың оператордың үш түрi бар:

8.1. FOR циклiнiң санау операторы мынадай құрылымды:

FOR <цик_пар> := < бас_мағы> TO <соң_мағ> DO <оператор> Мұндағы FOR, TO, DO — тұрақты сөздер (осыған, дейiн, орындау):

<цик_пар> — параметрлiк цикл, Integerтипi.

<бас_мағы> — бастапқы мағынасы, Integerтипі.

<соң_мағы> — соңғы мағынасы, Integer типі.

<оператор> — Турбо Паскальдiң орындалатын операторы.

FOR операторын қолданғанда ең басында <бас_мағы> өрнегi анықталады және <пар_цик> := <бас_мағы> меншіктеуі орындалады. Осыдан кейiн :<цик_пар> <= <соң_мағы> шарты тексеріледі; егер шарторындалмаса, онда FOR операторы өз жұмысын тоқтатады;

Program Pifagor;

Var i,j:integer;{бiрден онға дейiнгi сандардың қатары}

p:integer; {бiр-бiрiмен қиылысқан сандардың қосындысы}

 begin

write(‘ ‘:4);

for j:=1 to 10 do

write(j:4);writeln;

for i:=1 to 10 do

begin

write(i:4);

for j:=1 to 10 do

write(i*j:4); {Пифагор кестесiн көрсету}

writeln;

end;

readln;

 end.

FOR циклiн пайдаланғанда 2 жағдай байқалады. Ол өсу қадамы (+1) және (-1)-ге тең болуы.

Өсу қадамы (-1)-ге тең болған жағдайда, ТО қызметшi сөзiнiң орнына DOWNTO қызметшi сөзi қолданылады. Мысалы

s:=0;

if n>=0 then

for i:=1 to n do{i-дiң әр мәнiне 1 қосылады}

s:=s+i

else

for i:=-1 downto n do {i-дiң әр мәнiнен 1 алынады}

s:=s+i;

Басқа екi қайталану операторлары орындау шартын және цикл қайталануын тексередi, бiрақ ол цикл санағымен байланыссыз.

8.2. WHILE цикл операторы:

WHILE <шарт> DO <оператор>

Мұндағы WHILE, DO — тұрақты сөздер (болмайынша [шартты орындау], істеу);

<шарт> — логикалық типті;

<оператор> -Турбо Паскальдің орындалатын операторы.

Егер <шарт> Trueболса, онда <оператор> орындалып, <шарт>қайтадан тексеріледі.

Егер <шарт> False болса, онда WHILE операторы жұмысын тоқтатады.

Мысал 2Машиналық эпсилонды есептеу программасы.

Program eps;

varepsil:real;

begin

epsil:=1; {эпсилонның мәнiн 1-ге меншiктеу}

while epsil/2+1>1 do

epsil:=epsil/2;

writeln(‘Машиналық эпсилон=’,epsil);

end.

8.3. REPEAT . . . UNTIL  цикл операторының құрылымы:

REPEAT <цик_ден> UNTIL <шарт>

Мұндағы REPEAT, UNTIL — қызметшi сөздер (қайталай беру, шарт орындалмағанша);

<цик_ден> — бір немесе бірнеше операторлардың тізімі;

<шарт> — логикалық типтiң өрнектелуi.

<цик_ден> операторы бiр рет болса да орындалады, одан кейiн <шарт> тексеріледі, егер: оның мағынасы False болса,<цик_ден> операторы қайталанып орындалады, басқа жағдайда REPEAT. . .UNTIL операторыөз жұмысын тоқтатады.

Мысалы —q1, q2  нүктелік зарядтардың 2<R<20 см аралығында әрбір 4 см сайын өзара әсер ету күштерін табу программасын құрайық. Математикалық формуласы:

F=(q1* q2)/(4*E*E0*R2)

PROGRAM F;

const E=1;E0=8.85; PI=3.14;

VAR A, B, H, Q1, Q2, F: real;

BEGIN

Readln(Q1, Q2);Readln(A, B, H);R:=A;

repeat

F:=Q1*Q2/4*PI*E*E0*R*R;

R:=R+H; Write(‘F=’,F);

Until R>B

End.

REPEAT. . .UNTIL begin. . . end операторлық жақша секiлдi, сондықтан UNTILдiң алдына нүктелi үтiр қою мiндет емес.