Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Whileшартdo
оператор Шарт логикалық типтегі ө рнек болып табылады, ал do-дан кейінгі оператор цикл тұ лғ асы деп аталады. Циклдың ә р итерациясының алдында шарт есептеледі де егер ол ақ ихат болса онда цикл тұ лғ асы орындалады, кері жағ дайда циклдан шығ у орын алады. Егер шарт ә рдайым ақ ихат болып қ ала берсе, онда циклденіп қ алу орын алуы мү мкін: while 2> 1 do write(1); Циклденіп қ алғ ан программаны тоқ тату ү шін Ctrl-F2 клавиштер комбинациясын немесе кнопкасын басу керек. Pascal ABC-те while циклдың тұ лғ асы бос болуы мү мкін емес. while цикл операторының repeat цикл операторынан негізгі ерекшеліктері: 1. while цикл операторының тұ лғ асында тек жалғ ыз оператор тұ руы мү мкін. Циклде бірнеше операторларды орындау ү шін цикл тұ лғ асы операторлық begin … end жақ шаларғ а алынуы тиіс. repeat операторында операторлық жақ шалар қ ойылмайды, себебі оларды қ ызметші repeat … until сө здер алмастырады. 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 оператордың орындалуы ө ту операторы арқ ылы ү зілмеген болса. Егер осы шектеулерді ескерсек, онда
мұ ндағ ы 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
|