Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Whileшартdo






оператор

Шарт логикалық типтегі ө рнек болып табылады, ал do-дан кейінгі оператор цикл тұ лғ асы деп аталады. Циклдың ә р итерациясының алдында шарт есептеледі де егер ол ақ ихат болса онда цикл тұ лғ асы орындалады, кері жағ дайда циклдан шығ у орын алады.

Егер шарт ә рдайым ақ ихат болып қ ала берсе, онда циклденіп қ алу орын алуы мү мкін:

while 2> 1 do

write(1);

Циклденіп қ алғ ан программаны тоқ тату ү шін Ctrl-F2 клавиштер комбинациясын немесе кнопкасын басу керек. Pascal ABC-те while циклдың тұ лғ асы бос болуы мү мкін емес.

while цикл операторының repeat цикл операторынан негізгі ерекшеліктері:

1. while цикл операторының тұ лғ асында тек жалғ ыз оператор тұ руы мү мкін. Циклде бірнеше операторларды орындау ү шін цикл тұ лғ асы операторлық beginend жақ шаларғ а алынуы тиіс.

repeat операторында операторлық жақ шалар қ ойылмайды, себебі оларды қ ызметші repeatuntil сө здер алмастырады.

2. while операторында егер логикалық шарт бірден жалғ ан болып табылса цикл тұ лғ асы бір де бір рет орындалмауы мұ мкін.

repeat операторында логикалық ө рнек цикл тұ лғ асынан кейін жазылады. Сондық тан, цикл тұ лғ асы міндетті тү рде кемінде бір рет болса да орындалады.

Блок-схемаларда while цикл операторына 10.2 суретте кө рсетілген қ ұ рылым сә йкес

 

Сурет 10.2 - while оператордың жұ мыс жасау блок-схемасы

Мысал 10.2 (бұ л 10.1 мысал шешімінің екінші нұ сқ асы). Бір айнымалысы бар функцияны табуляциялау есебін шешу керек, яғ ни аргументі [-0.5, 2.5] аралық та 0.1 қ адаммен ө згеретін функцияның мә ндер кестесін есептеу керек. Бұ л есепте айнымалы циклдың басқ арушы айнымалысы болып табылады.

Алгоритмнің блок-схемасы 10.3 суретте. 10.2 мысалдың программасы:

Program P10_2;

Var a, b, x, y: real;

Begin

writeln(‘Бастапқ ы деректерді енгізің із’); read(a, b);

writeln (‘ x y(x)‘); x: = -0.5;

while x < = 2.5 do

begin

y: = ln(abs(x))/(a*a - b*b);

writeln(x: 8: 1, y: 8: 1)

x: = x + 0.1;

end;

End.

Сурет 10.3 - 10.2 мысалғ а блок-схема

10.3 Параметрлі цикл операторлары (for)

Параметрлі цикл (for сө зінен басталатын) операторы басқ арушы айнымалығ а мә ндердің ө спелі тізбектілігі меншіктеліп тұ рғ анда тұ лғ асындағ ы оператордың қ айталанып орындалуына ә келеді.

Басқ арушы айнымалы ретінде for операторы қ амтылғ ан локальды блокта сипатталғ ан айнымалыны белгілейтін идентификатор пайдаланылуы тиіс. Басқ арушы айнымалы санақ тап шығ у типіне ие болуы тиіс. Бастапқ ы жә не соң ғ ы мә ндері санақ тап шығ у типімен меншіктеу бойынша ү йлесімді болатын типке ие болуы тиіс.

for операторы орындала бастағ анда бастапқ ы жә не соң ғ ы мә ндері жалғ ыз рет анық талады да сол мә ндер for оператордың бү кіл орындалу барысында сақ талады.

for оператордың тұ лғ асында қ амтылғ ан оператор бастапқ ы жә не соң ғ ы мә ндер аралығ ындағ ы ә р мә н ү шін бір рет орындалады. Басқ арушы айнымалы ә рдайым бастапқ ы мә н арқ ылы инициализацияланады. for оператордың орындалу барысында басқ арушы айнымалының мә ні ә р қ айталануда бірлікке ө сіп тұ рады. Егер бастапқ ы мә н соң ғ ы мә ннен асатын болса онда for оператордың тұ лғ асында қ амтылғ ан оператор орындалмайды. Цикл операторында downto кілттік сө зі қ олданғ ан жағ дайда басқ арушы айнымалының мә ні ә р қ айталануда бірлікке азайып тұ рады. Егер мұ ндай оператордағ ы бастапқ ы мә н соң ғ ы мә ннен аз болса онда цикл операторының тұ лғ асында қ амтылғ ан оператор орындалмайды. Егер for цикл операторының тұ лғ асында қ амтылғ ан оператор басқ арушы айнымалының мә нін ө згертетін болса, онда ол қ ате болып саналады. for операторы орындалып аяқ талғ аннан кейін басқ арушы айнымалының мә ні анық талмағ ан болып қ алады, егер for оператордың орындалуы ө ту операторы арқ ылы ү зілмеген болса. Егер осы шектеулерді ескерсек, онда

 

Оператор: for V: = Expr1 to Expr2 do Body; оператор: for V: = Expr1 downto Exp2 do Body;
Келесі операторларғ а эквивалентті: begin Temp1: = Expr1; Temp2: = Expr2; if Temp1 < = Temp2 then begin V: = Temp1; Body; while V < > Temp2 do begin V: = Succ(V); Body; end; end; end; Келесі операторларғ а эквивалентті: begin Temp1: = Expr1; Temp2: = Expr2; if Temp1 > = Temp2 then begin V: = Temp1; Body; while V < > Temp2 do begin V: = Pred(V); Body; end; end; end;

мұ ндағ ы Temp1 жә не Temp2 - типтері V айнымалының негізгі типіне сә йкес болатын жә не олар программаның басқ а жерлерінде кездеспейтін қ осымша айнымалылар. Параметрлі цикл операторына жә не мысалдар:

for I: = 2 to 63 do

if Data[I] > Max then Max: = Data[I]

for I: = 1 to 10 do

for J: = 1 to 10 do

begin

X: = 0;

for K: = 1 to 10 do

X: = X + Mat1[I, K]*Mat2[K, J];

Mat[I, J]: = X; end;

for C: = red to blue do Check(C);

Кә дімгі жағ дайда кейбір айнымалы (индекстелген айнымалы) кө рсетілген аралық тағ ы мә ндерді қ абылдай бергенше операторлар жиынтығ ы белгілі бір рет орындалады. Мысалы, ертерек келтірілген P10 программаны келесі тү рде модификациялайық:

program P10A;

var

Count: integer;

begin

for Count: = 1 to 10 do

Writeln('Сә леметсіз бе жә не сау болың ыз! ');

Writeln('Бұ л соң ы! ')

end.

Бұ л программаның орындалу барысында қ арастырылатын цикл while жә не repeat циклдары сияқ ты орындалатынына жә не ол while циклына тіпті эквивалентті екендігіне кө з жеткізуге болады.

for циклы келесі программағ а эквивалентті:

index: = expr1;

while index < = expr2 do

begin

оператор

Inc(индекс)

end;

Сонымен, for циклының операторы екі форманың біреуіне ие:

for айнымалы: =бастапқ ы мә н to соң ғ ы мә н do


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал