Массивтер

Лекция

1.1 „Автоматтандыру есептерін программалау" курсының мақсаттары мен міндеттері.

„Автоматтандыру есептерін программалау" (АЕП) пәнін оқытудың мақсаты - есептерді алгоритмдеу негіздерін, программалауды автоматтандыру құралдарын, программалау тілдерінің сипаттамаларын, таңдалған тілдің операторлары мен мәліметтер түрлерін, ішкі программаларды қолдана отырып, күрделі программалар құруды үйрету. Сонымен қатар, стандартты модульдерді, мәліметтердің динамикалық құрылымын, программалық камтамасыздандыруын жобалау әдістерін, программалау стилін, алгоритмдерді іс жүзінде тексеру әдістерін, объектіге-бағдарлы тәсілдерінің негіздерін оқып-үйрену және осы білімді әртүрлі инженерлік есептерді шешуде қолдану болып табылады.

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

«Автоматтандыру есептерін программалау» курсын оқыту процесі осы ғылыми пәннің бүгінгі күн талабына сай болып, студенттерге нақты білім негіздерін беру, сонымен қатар программалау мен инженерлік есептерді шешудегі жетістіктерді қолдану және жоғары кәсіби маман даярлау үшін оған қажетті жаңа білімді өздігінен алуға, жоғары математикалық негіздері мен тәжірибелік дағдылықтарға үйрету.

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

Пәнді оқудың нәтижесінде студенттер әртүрлі алгоритмдердің құрылымдык сұлбаларын қолдануды, есеп талабына сәйкес қажетті құрылымдық мәліметтерді ұйымдастыруды, есепті шешу үшін есептеу әдістерін дүрыс пайдаланып, таңдалған программалау тілінің мүмкіндіктерін толығымен қолдана отырып, программалар құруды, оларды жоғары деңгейде жазуды және іс жүзінде тексеруді, сапалы программалық қүжаттарды құруды үйренуі қажет.

Студенттер есепті шешу әдістеріне және алгоритмдік концепциялар негіздеріне аса назар аударғаны жөн. Программалық объектілерге түсінік беру, программаларды құру, пайдалану және оларды өзгертуді білу керек. Құрастырылған алгоритмді басқарушы жүйелерді қолдана отырып, программаларға аудару және жүзеге асыру.

«Автоматтандыру есептерін программалау» пәні мектеп қабырғасында оқылған математика, есептеуіш техника және информатика, сонымен қатар, жоғары оқу орында оқылатын математика және информатика пәндері бойынша алынған білімге негізделеді.

Осы пәнмен өзара байланысты пәндер тізімі: жоғарғы математика, компьютерлік графика, информатика, объект-бағдарланған программалау, есептеу әдістері, басқару жүйелеріндегі микропроцессорлық кешендер, басқару объектілерін модельдеу және идентификаттау, автоматты реттеу жүйелер теориясы, технологиялық үрдістерді оптималды басқару.

1.2 Есептеуіш техника құралдарын пайдаланып ақпаратты өндеу және басқару жүйелерін әзірлеу. Компьютерлік жүйелердің ақпаратты өндеу және басқару әдістері мен міндеттері

5В070200 «Автоматтандыру және басқару» мамандығы саласында компьютерлік технологиялар кең қолданылады, сонымене қатар, бағдарламалау технологиялардың түрлі әдістері зерттеліп пайдаланылады. Автоматтандыру және басқару саласындағы негізгі түсініктер мен ұғымдарды қарастырайқ.

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

Кез-келген басқару үрдісінің міндеті – басқару объектісіне мақсаттылық өзара әрекеттесулерді ұйымдастырып жүзеге асыру болып табылады. Басқару үрдісі объектті қалаулы қалып-күйге өткізу мақсатында шараларды іздестіріп жүзеге асыру болып табылады.

Басқару ұғымы «басқару объектісі», «әсер ету», «мақсат», «объекттің жұмыс жасау алгоритмі», «басқару алгоритмі» сияқты ұғымдармен байланысты.

Басқару объектісі – берілген жағдайда оның қалып-күйі субъектті қызықтыратын және субъект оған мақсаттылық әсерін тігізе алатын қоршаған ортаның бір бөлігі (сурет 1.1). Басқару объектісін ерекшелегенде кемінде екі шарт орындалуы тиіс:

· объектке әсер тигізуге болады;

· бұл әсер бізді объектке қойылатын мақсаттарға жақындатуы, яғни оның қалып-күйін біздің қалаған бағытта өзгертуі мүмкін.

X – ортаның объектке әсерін тигізу арнасы; Y – объекттің ортаға әсерін тигізу арнасы; U – басқарудың объектке әсерін тигізу арнасы

Сурет 1.1 Басқару объектісі және оның орта және басқарумен өзара әрекеттесуі.

Басқару объектілерге келтірілетін мысалдар саны өте көп. Біздің мамандық саласында әдетте ол технологиялық (түрлі заттарды өндіру және с.с.), телекоммуникациялық, кеңселік және с.с. үрдістер.

Кез келген басқару үрдісінің бірінші кезеңі басқару объектісін ерекшелеп алу және әсер ету X,Y,U арналарын анықтау болып табылады.

Басқару есептерін шешу барысында «әсер ету» ұғымы тек ақпараттық мағынада қарастырылады. Басқару объектісін және әсер ету арналарын ерекшелеу тек басқарудың берілген мақсаты көз қарасынан орындалуы керек.

Басқару мақсаты – оларды басқару объектісі қанағаттандыруы тиіс болатын шарттарғ қасиеттер мен талаптар жиынтығы. Мақсат корректілі тұжырымдалған және техникалық тұрғыда жүзеге асырылатын кейбір критерий деп айтқан дұрыстау болады.

Басқару алгоритмі – басқару объектісінің нақтылы қалып-күйі белгілі болған жағдайда мақсаттылық әсер етуді (басқаруды) қалыптастыруға (синтездеуге) мүмкіндік беретін ережелер, әдістер және тәсілдер жиынтығы. Басқа сөзбен айтқанда, басқару алгоритмі түрлі ситуацияларда басқару мақсаттарына қалай жету керек екендігі туралы нұсқау болып табылады. Басқару алгоритмінің бар болуы кез келген басқару жүйенің тіршілік етуінің қажетті шарты болып табылады.

Басқару объектісі мен басқару алгоритмін жүзеге асыратын басқарушы құрылғыны біріктіру арқылы басқару жүйесін аламыз. Басқару жүйесі деп олардың өзара әрекеттесу үрдісі қойылған басқару мақсатының орындалуына әкелетіндей басқару объектісі мен басқарушы құрылғының жиынтығын атайды (сурет 1.2).

, – басқару объекті туралы ақпарат алу арналары.

Сурет 1.2 Басқару жүйесі

Басқару жүйесіне қатысты басқару мақсаты мен алгоритм сыртқы сипатқа ие. Ол басқару мақсаты мен алгоритм берілген басқару жүйе арқылы емес, басқа одан жоғары деңгейдегі жүйе арқылы анықталуына байланысты.

Сонымен, кез келген басқару үрдісі төрт аспектілерімен сипатталады:

1) объектке басқарушы әсер тигізілетін U арнасы;

2) басқарушы әсерлерді синтездеу үшін қажет болатын объект туралы ақпарат алынатын арналар (, );

3) басқару мақсаты;

4) басқару алгоритмі.

Басқару субъектісі – нақтылы техникалық жүйелер, үрдістер және механизмдер, тұлғалар, ұжымдарды, ұйымдарды, кәсіпорындарды, мемлекеттерді басқару жүйелері.

Объекттер қойылған мақсаттарға жетуі үшін субъект мақсаттар немесе берілген программаға негізделген объекттердегі басқару параметрлерін қалаулы өзгерістерге әкелетін басқару әсерлерді жүзеге асыруы тиіс.

Сонымен, басқару – ол бар ақпараттың негізінде белгілі бір мақсаттарға жетуге бағытталған үрдіс.

Басқару үрдістерін қарастыру барысында кибернетикалық тәсіл кең пайдаланылады. Кибернетика (ежелгі грек κυβερνητική / kybernetike сөзінен — «басқару өнері», kybernao сөзінен — «рульді басқарамын», κυβερνήτης / kybernētēs сөзінен — «кеменің рулін ұстап отырушы», жеке жағдайларда бұл сөздің түбірінен «губернатор» немесе ағылшын «government» — өкімет сөздері пайда болған) — машиналар, тірі ағзалар немесе қоғам сияқты түрлі жүйелерде басқару және ақпарат жіберу үрдістердің жалпы заңдылықтары туралы ғылым.

Кибернетиканың объектісі болып барлық басқару жүйелері табылады. Басқаруға бағынбайтын жүйелер негізінде кибернетиканың зерттейтін объектілер қатарына жатпайды. Кибернетика кибернетикалық тәсіл, кибернетикалық жүйе сияқты ұғымдарды ендіреді. Кибернетикалық жүйелер олардың материалдық табиғатына тәуелсіз абстрактілі түрде қарастырылады. Кибернетикалық жүйелердің мысалдары – техникадағы автоматты реттегіштер, ЭЕМ (ДК), адамның миі, биологиялық популяциялар, адам қоғамы. Мұндай әр жүйе ақпаратты қабылдауға, есте сақтауға, өндеу және алмасуға қабілетті өзара байланысқан объекттердің (жүйе элементтерінің) жиыны болып табылады. Кибернетика басқару жүйелерін және ой еңбегін автоматтандыру жүйелерін құрудың жалпы қағидаларын жетілдіреді. Кибернетика мәселелерін шешуге арналған негізгі техникалық құралдар — түрлі есептеуіш құрылғылар, ДК. Сондықтан, кибернетиканың жеке ғылым ретінде пайда болуы (Н. Винер, 1948) XX-шы ғасырдың 40-шы жылдары сондай машиналардың құрылуына байланысты, ал кибернетиканың теориялы және практикалық аспекттері тұрғысында дамуы - электронды есептеуіш техниканың прогресіне байланысты.

Автоматтандыру — ғылыми-техникалық прогресс бағыттарының бірі, энергия, материалдарды немесе ақпаратты алу, түрлендіру, жіберу және пайдалану үрдістеріне қатысудан адамды босаттатын, осындай қатысу дәрежесін немесе орындалатын операциялардың еңбексыйымдылығын елеулі түрде азайтатын өзін өзі реттеуші техникалық құралдар, экономика-математикалық әдістер және басқару жүйелерін пайдалану. Электронды техниканы және есептеу әдістерін қолданатын, кейде адамның ойлау функцияларын жүзеге асыратын, ақпаратты алу көздерін (сезгіш құралдарды, сенсорларларды), енгізу құрылғыларын, басқару құрылғыларын (контроллерлерді), орындаушы құрылғыларды, шығару құрылғыларын қосымша пайдалануды талап етеді. А втоматты деген ұғыммен қатар автоматтандырылған деген ұғым пайдаланылады, ол ЭЕМ негізінде басқару үрдісіне адамның қатысу дәрежесі салыстырмалы түрде жоғарылау екендігін білдіреді.

Технологиялық үрдісті автоматтандыру —адамның тікелей қатысуысыз немесе адамға аса маңызды шешімдерді қабылдау құзыретін қалдыратын технологиялық үрдістің өзін басқаруды жүзеге асыруға мүмкіндік беретін жүйелерді жүзеге асыруға арналған әдістер мен құралдар жиынтығы.

Әдетте, технологиялық үрдісті автоматтандыру нәтижесінде ТҮ БАЖ құрылады. Технологиялық үрдісті автоматтандырудың негізі – қабылданған басқару критерийге (оптималдылыққа) сәйкес зат және энергия ағындарын қайта тарату болып табылады.

Кәсіпорындағы технологиялық жабдықты басқаруды автоматтандыру жүйесі кәсіпорнын басқарудың автоматтандырылған жүйесімен (К БАЖ) байланысуы мүмкін. ТҮ БАЖ деп әдетте бүкіл өндірістегі немесе салыстырмалы түрде дайын өнімді шығаратын өндірістің жеке бір учаскесіндегі негізгі технологиялық операцияларды автоматтандыруды қамтамасыз ететін кешенді шешімді түсінеді. ТҮ БАЖ-дың құрамдас бөліктері ретінде жеке автоматты басқару жүйелері (АБЖ) немесе бірегей кешенге байланысқан автоматтандырылған құрылғылар болуы мүмкін. Әдетте ТҮ БАЖ технологиялық үрдісті операторлық басқарудың бір немесе бірнеше басқару пульттері түріндегі бірегей жүйесіне, үрдістің барысы туралы ақпаратты өндеу және архивтеу құралдарына, автоматтандырудың типтік элементтеріне: сезгіш құралдар, контроллерлер, орындаушы құрылғыларға ие. Барлық ішкі жүйелерді ақпараттық байланыстыру үшін өнеркәсіптік желілер қолданылады.

Басқару жүйенің құрамдас (және әдетте ең қымбат) бөлігі программалаудың түрлі технологиялары мен тілдерің пайдалану арқылы құрылатын программалық қамтамасыз ету (ПҚЕ) болып табылады.

Әдебиет

Негізгі әдебиет

1. Культин H. Самоучитель. Программирование в Turbo Pascal 7.0 и Delphi. БХВ - Санкт-Петербург, 2009г.-407с.

2. Культин H. Turbo Pascal в задачах и примерах. БХВ - Санкт-Петербург, 2007. - 256с.

3. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0. - Киев «BEK+».1999.-460c.

4. Немнюгин CA. TURBO PASCAL. Практикум. Питер, 2002, -253с.

5. Немнюгин С. Изучаем Turbo Pascal. / Л. В. Перколаб, c. А. Немнюгин. СПб: Питер, 2007. – 320 с.

Қосымша әдебиет

6. М.Гук. Серия энциклопедия. Аппаратные средства IBM PC. Изд-во «Питер», 2007 г.

7. Пильщиков В.H. Сборник упражнений по языку Паскаль. - M.: Наука, 1989.


2 тақырып. Дербес компьютерді (ДК) программалауды автоматтандырудың программалық құралдары

Лекция

2.1 Дербес компьютердің программалық қамтамасыз етілуі туралы

Программалық қамтамасыз ету – ақпаратты өндеу жүйесінің программалар және сол программаларды пайдалану үшін қажетті программалық құжаттар жиынтығы. Сонымен қатар, ол деректерді өндеу жүйенің жұмыс жасауына қатысты программалар, процедуралар мен ережелер және құжаттамалардың жиынтығы.

Программалық қамтамасыз етуді тағайындамасы бойынша жүйелік, қолданбалы және аспаптыққа жіктейді, ал таратылу және пайдалану тәсілі бойынша еркін емес немесе жабық, ашық және еркін түрлеріне жіктейді.

Программалық қамтамасыз ету – есептеуіш жүйе орындайтын программалардың жиынтығы.

Программалық қамтамасыз ету (ПҚЕ) қатарына сонымен қатар ПҚЕ-ні жобалау және жетілдіру бойынша тіршілік етудің бүкіл саласы жатады:

· программаларды жобалау технологиясы (жоғарыдан төмен қарай жобалау, құрылымдық программалау және басқалары);

· программаларды тестілеу әдістері;

· программалардың дұрыстығын дәлелдеу әдістері;

· программалардың жұмыс жасау сапасын талдау және басқалар.

Программалық қамтамасыз ету (ПҚЕ) – ЭЕМнің ажыратылмас бөлігі. Ол ЭЕМ-нің техникалық құралдарының мүмкіндіктері мен пайдалану аясын кеңейтетін логикалық жалғасы болып табылады.

Классификациялау бойынша ПҚЕ-нің үш категориясы бар:

1) қолданбалы программалар, тұтынушыларға қажетті жұмыстардың орындалуын тікелей қамтамасыз етеді;

2) жүйелік программалар:

· ЭЕМ ресурстарын басқару;

· пайдаланылатын ақпараттың көшірмелерін құру;

· компьютер құрылғыларының жұмыс жасау қабілеттілігін тексеру;

· компьютер туралы анықтамалық ақпарат беру және басқалары;

3) аспаптық программалық жүйелер, компьютерге арналған жаңа программаларды құру үрдісін жеңілдетеді.

ПҚЕ келесі топтары қалыптасқан:

· операциялық жүйелер;

· программалау жүйелері;

· аспаптық жүйелер;

· біртұтас пакеттер;

· динамикалық электронды кестелер;

· машиналық графика жүйелері;

· деректер қорын басқару жүйелері (ДҚБЖ);

· қолданбалы программалық қамтамасыз ету.

Автоматтандыру және басқару бойынша маман әдетте дайын қолданбалы программаларды пайдаланады немесе программалау тілдері мен жүйелерін қолдана отырып өзінің программаларын жетілдіреді.

2.2 Программалауды автоматтандыру әдістері. Алгоритмдік тілдер және оларға қойылатын талаптар.

Программалау тілі – алгоритмді орындаушыға (мысалы, компьютерге) ыңғайлы түрде сипаттауға арналған формальды таңбалы жүйе. Программалау тілі компьютерлік программаны құру барысында пайдаланылатын лексикалық, синтакстік және семантикалық ережелер жиынтығын анықтайды. Ол программалаушыға деректер қалай сақталып, қалай жіберілетіні туралы, түрлі жағдайларда сол деректерге қандай амалдарды қолдану қажет екендігін, қандай оқиғаларға компьютер әрекет қайтаратынын және т.с.с. дәлме-дәл анықтауға мүмкіндік береді.

Алғашқы программаланатын машиналардың пайда болу кезінен бастап 8,5 мыңнан астам программалау тілдері ойлап шығарылған. Олардың санына жыл сайын жаңалары қосылады. Кейбір тілдерді тек өз жетілдірушілері пайдаланады, ал басқалары миллиондаған адамдарға мәлім. Кәсіби программалаушылар өз жұмысында кейде түрлі оншақты программалау тілдерін пайдаланады.

Тілдерді жетілдірушілер прораммалау тілі ұғымын әртүрлі тұжырымдайды. Жетілдірушілердің көбісі мойындаған кең тараған тұжырымдаулар қатарына келесілер жатады:

· функция: программалау тілі белгілі бір есептеу үрдісін орындау және жеке құрылғыларын басқаруды ұйымдастыру бойынша нұсқауларды компьютерге жіберу үшін пайдаланылатын компьютерлік программаларды жазуға арналған;

· есеп: программалау тілдің жаратылыс тілдерден айырмашылығы - ол бұйрықтар мен деректерді адамдан компьютерге жіберу үшін арналған, ал жаратылыс тілдер адамдардың өзара қатынас жасауы үшін пайдаланылады. "Программалау тілдері" ұғымын жалпылауға болады – ол бұйрықтарды, әрекет жасауға берілетін ширақ нұсқауларды беру тәсілі, ал адамзат тілдері сонымен қатар ақпаратпен алмасу үшін қызмет атқарады;

· орындалуы: программалау тілі деректер құрылымын анықтау, олармен әрекет жасау және есептеу үрдісін басқару үшін арнайы түзілістерді пайдалануы мүмкін.

Әр программалау тілі оның синтаксисі мен семантикасын анықтайтын формальды спецификациялар жиынтығы түрінде бейнеленілуі мүмкін.

Ол спецификациялар әдетте келесілердің сипатталуын қамтиды:

· деректердің типтері мен құрылымын;

· операциялық семантика (тіл конструкцияларын есептеу алгоритмі);

· тілдің семантикалық конструкциялары;

· примитивтердің библиотекасы (мысалы, енгізу-шығару нұсқаулары);

· тіл тағайындамасы мен мүмкіндіктерінің философиясы.

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

2.3 Процедуралы–бағытталған тілдер және объектке–бағытталған программалау туралы түсінік.

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

Әдетте процедуралы–бағытталған тілдер программаларды процедуралар немесе ішкі программалар жиынтығы ретінде береді.

Өндірістік есептердің көбісін процедуралы–бағытталған тілдерде жазылған программалар арқылы шешеді. Бұл тілдердің құралдары сәйкесінше есептерде жиі кездесетін амалдардың фрагменттерін оңай сипаттауға мүмкіндік береді. Процедуралы–бағытталған тілдер тұтынушының математикалық (сандық) әдістер және алгоритмдеу негіздері аясында білімі бар деп жорамалдайды (ғылыми-техникалық есептеулерге арналған базалық тіл Fortran, қазіргі Паскаль).

Даму барысында көптеген процедуралы–бағытталған тілдердің негізгі құралдары мен мүмкіндіктерін біріктіретін көпмақсаттық (әмбебап) программалау тілдері құрылған, мысалы: ПЛ/1 – экономикалық және ғылыми-техникалық ақпаратты өндеу, объекттерді басқару және с.с. есептерді шешуге арналған; АДА тілі – көптеген басқа тілдерді алмастыра алатын және ұзақ мерзімде программалық қамтамасыз етуді құру және жетілдіруді қамтамасыз етелатын көпмақсатты стандартты тіл; МОДУЛА тілі - машиналы–бағытталған және процедуралы–бағытталған тілдердің құралдары мен ерекшеліктерін біріктіреді, құрылғыларды басқару, хабарлар ағындарын басқару ішкі программаларын жазуға арналған құралдарды қамтиды.

Проблемалы- және процедуралы–бағытталған тілдердің арасындағы шекара айқын емес (шартты түрде анықталғаг).

Программаның қандай алгоритмдік тілде жазылғандығына тәуелсіз есептерді даярлап ЭЕМде шешу кезеңдері келесідей:

1. кезең. Есеп қойылымы: есепті жан-жақты тұжырымдау, шешу әдісін таңдау.

Бұл кезеңде есептің мағыналы сипатталуы қалыптастырылады, ол мақсаттарды сипаттаудан, бастапқы ақпаратты талдаудан, есепті шешу әдісін негіздеуден тұрады.

2. кезең. Есепті алгоритмдеу: алгоритмді тұжырымдау және құру.

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

Кейбір процедуралы программалау тілдері: Аda (жалпы тағайындалған тіл); Basic (Quick Basic); Си; КОБОЛ; Фортран; Модула-2; Pascal; ПЛ/1; Рапира; REXX.

Объектіге-бағытталған программалау тілдері.

Объектіге-бағытталған программалау тіл – объект ұғымын, оның қасиеттері мен өндеу әдістерін сүйемелдейтін программалау тілі.

Объектіге-бағытталған программалау тіл - мұрағаттау мен полиморфизмді сүйемелдейтін объектілі программалау тілі.

Объектіге-бағытталған программалау тіл – объектіге-бағытталған программалау принциптердің негізінде құрылған тіл.

Объектіге-бағытталған программалау тұжырымдамалардың негізінде объект - өрістерді (деректерді) және әдістерді (объект орындайтын амалдарды) біріктіретін кейбір субстанция ұғымы жатыр.

Мысалы, «адам» объекті «есімі», «фамилиясы» өрістеріне және «тамақтану», «ұйықтау» әдістеріне ие болуы мүмкін. Сәйкесінше біз программада Адам.Есімі:="Абай" және Адам.Тамақтану (нан) операторларын пайдалана аламыз.

Объектке–бағытталған программалау (ОБП) – негізгі тұжырымдамалары объект және класс ұғымдары болатын программалау парадигмасы.

Класс – объекттердің-экземплярлардың құрылысын сипаттайтын тип. Классты оған сәйкес объекттер құрылатын чертежбен салыстыруға болады. Әдетте класстарды олардың объекттері пән саласының объекттеріне сәйкес болатындай етіп жетілдіреді.

Прототип – оның бейнесі мен ұқсастығы бойынша басқа объекттер құрылатын үлгілі объект.

Объектілі программалау тілдерін оларда класстар мен объекттер бар объектілі және оларда алдын ала анықталған класстарды пайдалану мен қатар программалаушы өзінің тұтынушылық класстарын бере алатын объектке–бағытталған тілдерге бөледі.

Объектілі және объектке-бағытталған программалау деректер мен оларды өңдейтін ішкі программалар (процедуралар, функциялар) формальды түрде біріктірілмеген процедуралық программалау идеологияның даму нәтижесінде пайда болды. Сонымен қатар, қазіргі объектке-бағытталған программалауда оқиға (оқиғаға-бағытталған программалау) және компонент (компоненттік программалау) ұғымдарының маңызы елеулі.

Қазіргі кезде объектке-бағытталған программалау қолданбалы программалау саласында абсолютті лидер болып табылады (Java, C#, C++, JavaScript, ActionScript және басқа тілдер). Сонымен қатар, жүйелік программалау саласында әлге дейін процедуралық программалау парадигмасы алдыңғы орында және программалаудың негізгі тілі болып С тілі табылады. Сонымен қатар, операциялық жүйелердің қолданбалы және жүйелік деңгейлерінің өзара әрекеттесуінде елеулі әсерін объектке-бағытталған программалау тілдері тигізе бастады. Мысалы, C++ тілінде жазылған Qt жүйесі мультиплатформалық стандартқа айналды.

Объектке бағытталған принциптері ұсынылған программалау тілдердің біріншісі Симула тілі болған. Өзінің пайда болу мерзімінде (1967 ж) бұл программалау тілі шың мәнінде революционды идеяларды ұсынды: объекттер, класстар, виртуалды әдістер және басқалар, бырақ оның бәрі замандастармен орасан зор нәрсе ретінде қабылданған жоқ. Бырақ концепциялардың көбісін Алан Кэй және Дэн Ингаллс Smalltalk тілінде дамытылды. Дәл осы тіл кең тараған объектке-бағытталған тілдердің біріншісі болды.

Қазіргі замаңғы объектке бағытталған тілдерде келесі әдістер пайдаланылады:

· Типизациялау. Компиляциялау моментіндегі көптеген қателерді жоюға мүмкіндік береді, операциялар тек типтері лайықты болатын объекттерге ғана қолданылады. По

· Деректер абстракциясы. Объекттер предметтік саланың нақтылы мәністердің қарапайымдалған, идеалистелген сипаттауы болып табылады. Егер сәйкес модельдер шешілетін есепке адекватты болса, онда олармен жұмыс істеу объекттің барлық мүмкін болатын қасиеттері мен реакцияларының төмен деңгейлі сипатталуымен жұмыс істуге қарағанда едәуір ыңғайлы.

· Инкапсуляция. Инкапсуляция – оған сәйкес кезкелген класс қара ящик ретінде қарастырылуы тиіс принцип – классты тұтынушы класстың тек интерфейстік бөлігін ғана көріп пайдалануы тиіс (яғни, класстың декларацияланған қасиеттері мен әдістер тізімін) және оның ішкі іске асырылуына ұғынбау керек. Сондықтан оларға оқу немесе жазу бойынша қол жеткізу тікелей емес әдістер арқылы іске асырылатындай етіп деректерді классқа инкапсуляциялау керек. Инкапсуляциялау әдісі класстар арасындағы байланыстар саны минимумдеуге және сондықтан класстардың тәуелсіз іске асырылуы мен модификациялауын қарапайымдауға мүмкіндік береді.

· Мұрагерлік. Мұрагерлік деп класс-тегінің (ата-бабаны кейде суперкласс деп атайды) барлық қасиеттері мен әдістерін сақтап қалып және қажет болса жаңа қасиеттер мен әдістерді қосып бір класстан екінші классты туындылау мүмкіндігін атайды. Мұрагерлік қатынас арқылы байланысқан класстар жиынтығын иерархия деп атайды. Мұрагерлік нақтылы әлемнің иерархиялық сияқты қасиетін бейнелеуге арналған.

· Полиморфизм. Полиморфизм деп бірдей бір программалық код (полиморфты код) оны шақыруда қай класстың объектті пайдаланатына тәуелді әртүрлі орындалатын құбылысын атайды.

· Полиморфизм әдістің сигнатурасын міндетті түрде сақтап қалып тек-класс әдісінің іске асырылуын ұрпақ-класс ішінде өзгерту арқылы қамтамасыз етіледі. Ол тек-класс интерфейсін өзгеріссіз сақтап қалуды қамтамасыз етіп кодтағы әдіс аталуын түрлі класстармен байланыстыруды іске асыруға мүмкіндікбереді – қай класс объектісінен шақыру жүзеге асырылатын болса сол класстан берілген атаулы әдіс алынады. Мұндай механизм динамикалық (кеш) байланыстыру деп аталады. Ал статикалық (ерте) байланыстыру программаны компиляциялау барысында іске асырылады.

Негізгі тұжырымдамалар. Жүйе объекттерден тұрады. Объекттер белгілі бір түрде өзара әрекеттеседі. Әр объект өз күйі және тәртібі арқылы сипатталады. Объект күйі деректер өрістерінің мәндері арқылы беріледі. Объект тәртібі әдістер арқылы беріледі.

Объекке-бағытталған программалау тілі (ОБП-язык) — объекке-бағытталған программалауға қолайлы тіл.

Объекке-бағытталған программалау тілдердің қысқаша тізімі:

C#; C++; Java; Delphi; Eiffel; Simula; D (программалау тілі); Io; Objective-C; Object Pascal; VB.NET; Visual DataFlex; Perl; Php; PowerBuilder; Python; Scala; ActionScript 3.0; JavaScript; JScript.NET; Ruby; Smalltalk; Ada; Xbase++; X++; Vala.

Жалпы тағайындалған объекке-бағытталған тілдермен қатар мамандандырылған ОБ тілдері де бар.

3 лекция Пайдаланушының ДК мен байланысын қамтамасыз ететін сұхбаттық құралдары. Программалаудың біртұтас жүйелері. Техникалық есептер қойылымдарының жіктелуі. Есептеудің типтік құрамды бөліктері: талдау, синтездеу, шешім қабылдау. Ғылыми-техникалык есептер алгоритмдер сұлбаларының мысалдары

3.1 Программаларды құру құралдары

Ең жалпы жағдайда таңдап алынған программалау тілінде программаны құру үшін келесі компоненттер қажет:

1.Мәтіндік редактор. Программа мәтіні әдетте ағылшын тілі сөздерінен шығатын кілттік сөздер және түрлі операцияларды жазуға арналған стандартты символдар жиынтығы арқылы жазылатын болғандықтан ол мәтінді кез-келген редакторда қалыптастыруға, нәтижесінде программаның бастапқы мәтінің қамтитын мәтіндік файл алуға болады. Бырақ, нақтылы программалау тіліне бағытталған және мәтінді енгізу барысында кілттік сөздер мен идентификаторларды түрлі түспен және шрифттермен ерекшелеуге мүмкіндік беретін арнайы редакторларды пайдаланған ыңғайлы. Ондай редакторлар барлық танымал тілдер үшін құрылған және олар тікелей енгізу барысында программа синтаксисінің дұрыстығын автоматты түрде тексере алады.

2. Бастапқы мәтін программа-компиляторарқылы машиналық кодқа аударылады. Егер синтаксис қателері анықталатын болса, онда нәтижелі код құрылмайды. Бұл кезеңде дайын программаны алуға болады, бырақ жиі жағдайда оған кейбір компоненттер жетіспейді, сондықтан компилятор әдетте аралық объектілі код (екілік файл, стандартты кеңейтілімі.OBJ) береді.

3. Үлкен программаның бастапқы мәтіні әдетте бірнеше тасымалдаушылардан (бастапқы мәтіндерді қамтыған файлдардан) тұрады, себебі барлық мәтіндерді бір файлда сақтау ыңғайсыз – оларды түсіну қиын. Әр модуль объектілі кодты қамтитын жеке файлға компиляцияланады, кейін оларды бір бұтінге біріктіру қажет.

Сонымен қатар, оларға түрлі стандартты функцияларды іске асыратын (мысалы, sin немесе cos математикалық функцияларын есептейтін) ішкі машиналық кодын қосу керек. Мұндай функциялар компилятормен бірге берілетін библиотекаларда (стандартты кеңейтілуі.LIB файлдарында), қамтылған. Модульдердің генерацияланған коды мен оған қосылған стандартты функцияларды бір бүтінге жай ғана біріктіру емес, ал ондай біріктіруді операциялық жүйе талаптарын ескере отырып орындау керек, демек, белгілі бір форматқа сәйкес программаны алу.

Объектілі код арнайы программа – байланыстар редакторы немесе жинақтаушы арқылы өңделеді. Ол программа объектілі модульдер мен стандартты функциялардың машиналық кодтарын библиотекадан тауып алып біріктіреді және шығысында жұмысқа қабілетті қосымшаны – нақтылы платформа үшін орындалушы кодты қалыптастырады.

Егер бір себептерге байланысты объктілі модульдердің бірі немесе қажетті библиотека табылмаған болса (мысалы библиотеканы қамтыған каталог дұрыс көрсетілмеген) онда жинақтаушы қателік туралы хабарлайды да дайын программа пайда болмайды.

4. Орындалушы код – ол аяқталған программа, оны қажетті операциялық жүйе орнатылған кез-келген компьютерде іске қосуға болады. Әдетте, нәтижелі файлдың кеңейтілуі.ЕХЕ.

3.2 Программалаудың біртұтас жүйелері.

Жоғарыда айтылғандай программаны құру үшін қажет:

· мәтіндік редактор;

· компилятор;

· байланыстар редакторы;

· функциялар библиотекалары.

Әдетте, стандартты жеткізілімге ең кемінде соңғы үш компонент кіреді, бырақ жақсы біртұтас жүйе өз құрамында арнайы мәтіндік редакторды қамтиды, сонымен бірге, оның ішінде программаны құрудың барлық кезеңдері автоматтандырылған: бастапқы мәтін енгізілгеннен кейін оны компиляциялау және жинақтау бір клавишті басу арқылы орындалады. Компиляциялау үрдісі әдетте экранда бейнеленеді: бастапқы мәтіннің қаншама қатары компиляцияланғаны көрсетіледі немесе табылған қателер туралы хабарлама беріледі. Программалық қамтамасыздандыруды жетілдіруге арналған түрлі біртұтас орталар (IDE) пайдаланылады. Жетілдіру орталар мысалдары: Microsoft Visual Studio, Eclipse, Turbo Pascal, Borland C++, Borland Delphi, PascalABC.NET, Lazarus.

Замануи біртұтас орталарда және бір компонент — жөндеуші (дебаггер) бар, ол орындалу барысында программа жұмысын талдауға мүмкіндік береді. Оның көмегімен бастапқы мәтіннің жеке операторларын ретімен қадамдап орындау кезінде түрлі айнымалылардың мәндері қалай өзгеретінің байқауға болады. Жөндеушісіз ірі қосымшаны жетілдіру өте қиын.

Жылдам жобалау орталары. Соңғы жылдары программалауда (әсіресі Windows операциялық жүйесі үшін программалауда) визуалды деп аталатын тәсіл пайда болды. Оған дейін графикалық қосымшаларды жетілдіру үшін маңызды кедергі түрлі басқару және олардың жұмысын бақылау элементтерін құру күрделігі болған. Windows-тың кез-келген программа терезесіне қарау жеткілікті. Оның ішінде көптеген стандартты басқару элементтері (кнопкалар, мәзір пункттері, тізімдер, ауыстырып-қосқыштар және т.с.с.) бар. Windows талаптарына сай бұл элементтерді құру үрдісін қолмен сипаттау, көзбен координаттарын анықтау, арнайы бұйрықтар арқылы олардың күйін бақылау оте көп жұмысты талап етеді. Мысалы, екі санды қосатын жай программа үшін қажетті есептеуді орындау үшін бір оператор қажет (бастапқы мәтіннің бір жолы) және қосымшаны Windows-та жұмыс істеуге дайындау, батырманы және екі енгізу өрістерін құру үшін кодтың бірнеше жүз жолы керек.

Жылдам жобалау орталарында (Rapid Application Development, RАD-орталары) бұл үрдіс автоматтандырылған. Безендіру мен басқарудың барлық қажетті элементтері қолдан программалау арқылы емес, ал мауыс арқылы жобаланатын терезеге «тасымалданатын» дайын визуалды компоненттер көмегімен құрылады да қызмет көрсетіледі. Одан кейін олардың қасиеттері мен тәртібі сәйкесінші элементтердің қасиеттерін визуалды түрде көрсететін жай редакторлар арқылы бапталады. Ол кезде сол элементтерді құру және жұмыс істеуіне жауапты программаның қосымша бастапқы мәтіні автоматты түрде генерацияланады. Ол шешілетін есептің тек логикасына алаңсыз ойлануға мүмкіндік береді. Нәтижеде программалау жобалаумен алмасады – ұқсама тәсіл және визуалды программалау деп аталады.

Компоненттерді өздігінше құру қиын емес, сондықтан бүгінгі таңда әлемде танымал RАD-орталарына арналған мыңдаған тегін және ақылы компоненттер таратылады, олардан компоненттер библиотекалары - объекттілі репозиторийлер қалыптастырылады. Компоненттер бастапқы кодтың оншақты қатарын жазып, кең мүмкіндіктерге ие болатын дайын қосымшаны құруға мүмкіндік беретін «құрылыс кірпіштері» рөлін атқарады. Программаларды құрудың мұндай компоненттік тәсілі өте перспективті болып саналады, себебі артық күш салусыз және заңды негізде бөтен еңбекті қайтадан пайдалануға рұқсат етеді.

3.3 Техникалық есептер

Кез келген техникалық жүйенің мүмкіндіктері қоғамдық қажеттіліктерге сәйкес болмаған жағдайда ол техникалық есепті шешудің потенциальды объектісіне айналады, оның мақсаты анықталған кемшілікті жою болып табылады.

Техникалық есептер жүйесін елестету үшін, біріншіден, техникалық жүйенің өзінің және жоғарғы жүйенің құрылымын, сонымен қатар, олардың техникалық күйін; екіншіден, өз (қоғамдық) қажеттіліктер жүйесін «көру»; үшіншіден, осы екі жүйені салыстыру керек – әрбір қанағаттандырылмаған қажеттілік сол сәтте техникалық кемшілік пен техникалық есепті туындылайды.

Кез келген техникалық есепті шешу барысында негізгі төрт кезеңнен өту керек: 1 Есеп қойылымы; 2 Шешу нұсқаларын іздеу; 3 Шешу нұсқаларын талдау; 4 Нұсқаларды бағалау және шешімді таңдау.

Есеп қою барысында мақсатты, шектеулерді және шешімді таңдау критериін анықтау арқылы бастапқы проблемалық жағдайды дәлдіктеу орындалады.

Барлық осы категориялар шешімді іздеу нәтижесінде келетін қалаулы күйді анықтайды.

Мақсат техникалық немесе қоғамдық қажеттілікке сәйкес болатын қалаулы нәтижені сипаттайды. Мақсатты анықтау – «Шешу нәтижесінде не болады?» деген сұраққа жауап беру. Әдетте мақсаттың тұжырымдамасында екі күй: бастапқы және соңғы қалаулы күй көрсетіледі.

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

Шектеулердің үш деңгейі болады:

- физикалық жүзеге асырылуы (шешім табиғат заңдарына сәйкес болуы тиіс);

- техникалық жүзеге асырылуы (шешім қоғамның ресурстары мен ғылыми-техникалық потенциалына сәйкес болуы тиіс);

- экономикалық табыстық.

Шешімді таңдау критерийі бойынша шешімді оптимизациялау жүргізіледі.

Есеп кою нәтижесінде «шешу моделі» пайда болады, ол келесі кезеңдердің бағдары болады. Көрсетілген себептерге байланысты бұл аса маңызды кезең болып табылады.

Техникалық есепті шешу алгоритмі кестеде келтірілген

Кесте

Техникалық есепті шешу кезең аталуы Мазмұны
Есеп қойылымы 1. Техникалық есептің шарттарымен танысу: - техникалық объектіні анықтау; - техникалық объекттің схемасын (жұмыс істеу принципі) құру 2. Есепті шешудің соңғы мақсатын анықтау: - объектінің өзгеретін сипаттамасын анықтау (қай сипаттамасын өзгерту керек); - объектінің өзгермейтін сипаттамасын анықтау (есеп шешу барысында қай сипаттамасын өзгертуге болмайды);
Шарттарды нақтылау, есеп моделін құру 1. Техникалық объектінің жұмыс істеу негізіне қойылған физикалық принципті анықтау. 2. Объект сипаттамаларының келіспеуші парасын айқындау.
Есеп моделін талдау 1. Техникалық қайшылықты тұжырымдау. 2. Физикалық қайшылықты тұжырымдау.
Техникалық есептің түбегейлі шешімін табу 1. Өте оңды соңғы нәтижені тұжырымдау. 2. Физикалық қайшылықты жою және - ұқсама-есептердің типтік модельдер фонды; - физикалық қайшылықтарды жоюдың стандартты тәсілдер фонды; - физикалық эффекттер мен құбылыстар фонды; көмегімен физикалық формада түбегейлі шешімді табу. 3. Есеп шешудің физикалық формасынан техникалыққа өту (техникалық қайшылықты жою): - объектінің жұмыс істеу тәсілін тұжырымдау; - объектінің осы тәсілді іске асырушы принципті схемасын әзірлеу.
Техникалық есептің алынған шешімін бағалау Алынған шешімнің өте оңды соңғы нәтижеге сәйкестік дәрежесін тексеру. Сәйкестік дәрежесі жеткіліксіз болған жағдайда кез келген пункттен бастап өзгертілген (дәлдіктелген) іздестіру шектеулермен шешім іздеуді қайталау мүмкін.

3 тақырып. Есептерді алгоритмдеу негіздері.

Лекция

4.1 Алгоритм анықтамасы. Алгоритмдерді бейнелеу тәсілдері.

Алгоритм анықтамасы. «Алгоритм» сөзі Абу Абдуллах Мухаммед ибн Муса аль-Хорезми ғалым есімінен туындылаған деп саналады.

Алғашқы тұжырымдама бойынша алгоритм –нәтижеге жету үшін, шектеулі уақытта белгілі бір есепті шешу үшін белгілі бір орындаушының амалдар тізбегін сипаттайтын дәл нұсқаулар жиынтығы. Компьютер жұмысындағы параллельділіктің дамуы бойынша “тізбегі” сөзін жалпылау “реті” сөзімен ауыстыра бастады. Ол алгоритмдің кейбір амалдары бірінен кейін бірі орындалуы, ал кейбіреулері тәуелсіз болуы мүмкіндігіне байланысты.

Алгоритм – ол белгілі бір орындаушының операторлар жиынынан алынған операторлар жүйесі. Ол алгоритмдік үрдістердің белгілі бір класын толығымен анықтайды. Ол үрдістер:

· дискреттік;

· детерминді;

· потенциалды тұрғыда ақырғы;

· белгілі бір конструктивті объекттерді түрлендіреді.

Алгоритмнің операторлары мен алгоритмдік үрдістің операциялары (элементарлы амалдар) арасында гомоморфты сәйкестік орын алады. Сондықтан алгоритмді алгоритмдік үрдістің моделі деп санауға болады.

Алгоритмге қойылатын жалпы талаптар:

· детерминділік — анықтық. Уақыттың әр моментінде жұмыстың келесі қадамы жүйенің күйі арқылы бірмәнді түрде анықталады. Сонымен, бірдей бір бастапқы деректер үшін бірдей бір нәтиже (жауап) қайтарады. Сонымен қатар, ықтималдық алгоритмдер де бар. Оларда жұмыстың келесі қадамы жүйенің ағымдағы күйіне және генерацияланатын кездейсоқ санға тәуелді.

· түсініктілік — алгоритм орындаушы үшін оған (орындаушыға) қол жетерлік, оның бұйрықтар жүйесіне кіретін бұйрықтарды ғана қамтуы тиіс.

· аяқталулық (ақырғылық) — бастапқы деректер корректілі түрде берілгенде алгоритм саны шектеулі қадамдардан кейін жұмысын аяқтап, нәтижені беруі тиіс. Екінші жағынан, ықтималды алгоритм нәтижесін ешқашан бермеуі де мүмкін, бырақ оның ықтималдығы 0 ге тең.

· Көпшілікке ортақшылық — алгоритм бастапқы деректердің түрлі жиынтықтарына қолданылуы тиіс.

Маңызды рөльді рекурсивтік алгоритмдер атқарады (кері қайтудың белгілі бір шартына жеткенше өзін өзі шақыратын алгоритмдер). Соңғы кездері белсенді түрде параллельдік алгоритмдер жетілдірілуде. Олар бір мезгілде бірнеше операцияларды орындауға қабілетті есептеуіш машиналарға арналған.

4.2 Алгоритмдердің блок-схемаларын безендіру ережелері.

Программалаудағы Блок-схема — бұйрықтарды, амалдарды, деректерді және с.с. белгілейтін стандартты графикалық элементтерді (тік төртбұрыштарды, ромб, трапециялар және с.с.) пайдаланып, программа немесе алгоритмдің графикалық бейнеленуі.

Блок-схемаларды орындау ережелерін анықтайды:

ГОСТ 19.701-90 (ИСО 5807-85) - Алгоритмдер, программалар, деректер және жүйелер схемалары. Шартты белгілеулері және орындау ережелері.

Сурет 4.1 – Алгоритмдердің блок-схемаларын графикалық бейнелеу мысалдары.

4.3 Алгоритм құрылымдарының түрлері.

Негізінде, алгоритмдердің сызықтық, тармақталу, параллель және циклдік құрылымдарын қарастырады.

Цикл — программалаудың жоғары деңгейлі тілдерінде нұсқаулар жиынтығын қайталап бірнеше рет орындау үшін арналған басқарушы құрылымның түрі. Сонымен қатар, басқа тәсілмен (мысалы, шарт бойынша өту арқылы) ұйымдастырылған кезкелген көп рет орындалатын нұсқаулар тізбегі болуы мүмкін.

Сурет 4.2 – Сызықты және тармақталу алгоритмдерінің блок-схема мысалдары

Көп рет орындалу үшін арналған нұсқаулар тізбегі, цикл тұлғасы деп аталады. Цикл тұлғасының бір рет орындалуы итерация деп аталады. Кезекті мәрте итерация орындалатындығын немесе цикл аяқталатындығын анықтайтын өрнек шығу шарты немесе цикл аяқталу шарты деп аталады (немесе оның ақихаттығының интерпретациялануына тәуелді– циклді аяқтау немесе жалғастыру қажеттілігі белгісі ретінде жалғастыру шарты деп аталады). Итерацияның ағымдағы нөмірін сақтайтын айнымалы цикл итерацияларын санауыш немесе жай цикл санауышы деп аталады. Циклдың санауышты қамтуы міндетті емес, санауыштың жалғыз болуы міндетті емес – циклден шығу шарты цикл ішінде өзгеретін бірнеше айнымалыларға тәуелді болуы мүмкін, немесе сыртқы шарттар арқылы анықталуы мүмкін (мысалы, белгілі бір уақыттың басталуына), соңғы жағдайда санауыш мүлдем қажет болмауы да мүмкін.

Кез келген циклды орындау цикл айнымалыларын бастапқы инициализациялауды, шығу шартын тексеруді, цикл тұлғасын орындауды және әр итерацияда цикл айнымалысын жаңартуды қамтиды. Сонымен қатар, программалау тілдерінің көбісі циклді мезгілден бұрын аяқтау, яғни шығу шартының ақихаттылығына тәуелсіз циклден шығу құралдарын ұсынады.

Цикл түрлері. Шартсыз циклдер

Кейде программаларда олардан шығу шарты программа логикасында көзделмеген циклдар пайдаланылады. Мұндай циклдарды шартсыз немесе аяқталмайтын циклдер деп атайды. Олардың типсіздігіне байланысты шексіз циклдерді құруға арналған арнайы синтасистік құралдары программалау тілдерінде көзделмеген, сондықтан ондай циклдарды кәдімгі (немесе шартты) циклдарды құруға арналған құрылымдар арқылы құрады. Шексіз қайталануды қамтамасыз ету үшін ондай циклде шартты тексеру жоқ (егер синтаксис рұқсат етсе, мысалы, Ада тілінің LOOP…END LOOP циклындағыдай) немесе тұрақты мәнбен алмастырылады (Паскальда while true do …).

Алдынғы шартты цикл – ол басында көрсетілген шарт ақиқат болып тұрғанша орындала беретін цикл. Бұл шарт цикл тұлғасын орындау алдында тексеріледі, сондықтан цикл тұлғасы бір де бір рет орындалмауы да мүмкін (егер шарт ең басынан жалған болса). Программалаудың процедуралық тілдерінің көбісінде ол while операторы арқылы жүзеге асырылады, сондықтан оның екінші аталуы while-цикл.

Кейінгі шартты цикл – ол шарты цикл тұлғасы орындалғаннан кейін тексерілетін цикл. Сондықтан, цикл тұлғасы әрдайым кемінде бір рет болса да орындалады. Паскаль тілінде бұл циклды repeat..until; операторы, С тілінде — do…while операторы жүзеге асырады.

а – алдыңғы шартты цикл, б – кейінгі шартты цикл

Сурет 4.3 – Циклдік алгоритмдерінің блок-схемалар мысалдары

Ортасынан шығу циклы – шартты циклдің ең ортақ формасы. Синтаксис тұрғысында мұндай цикл үш құрылыс арқылы ұйымдастырылады: цикл басы, цикл соңы және циклдан шығу бұйрықтары. Цикл басының құрылысы программадағы цикл тұлғасы басталатын нүктені таңбалайды, цикл соңының құрылысы – цикл тұлғасы аяқталатын нүктені. Түлғаның ішінде циклдан шығу бұйрығы болуы тиіс. Ол бұйрық оррындалған кезде цикл аяқталады да басқару цикл соңының құрылысынан кейінгі операторға беріледі. Әрине, цикл бір реттен көп орындалуы үшін шығу бұйрығы шартсыз емес, ал циклдан шығу шарты орындалған кезде ғана шақырылуы тиіс.

Жоғарыда қарастырылған циклдерге қарағанда циклдің мұндай түрінің принципиалды айырмашылығы цикл басынан кейін шығу бұйрығына дейін орналасқан цикл тұлғасының бөлігі әрдайым орындалады (циклдан шығу шарты бірінші итерацияның өзінде ақихат болған жағдайда да), ал шығу бұйрығынан кейін орналасқан цикл тұлғасының бөлігі соңғы итерацияда орындалмайды.

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

Программалау тілдердің бір қатары ортасынан шығу циклын ұйымдастыру үшін арнайы құрылыстарды қамтиды. Мысалы, Ада тілінде ол үшін LOOP…END LOOP құрылысы және EXIT немесе EXIT WHEN шығу бұйрықтары бар:

LOOP

... Цикл тұлғасының бөлігі

EXIT WHEN <шығу шарты>;

... Цикл тұлғасының бөлігі

IF <шығу шарты> THEN

EXIT;

END;

... Цикл тұлғасының бөлігі END LOOP:

Мұндағы цикл ішінде екі типтегі шығу бұйрықтарының саны кезкелген болуы мүмкін. Шығу бұйрықтардың өздері принципиалды тұрғыда ажыратылмайды, әдетте тек шығу шарты тексерілетін кезде EXIT WHEN қолданылады, ал жай EXIT-ті циклдан шығу күрделі шартты оператор нұсқаларының біреуінде іске асырылады.

Ұқсама құрылыстары көзделмеген тілдерде ортадан шығу циклін кезкелген шартты цикл және циклдан мерзімнен бұрын шығу операторы (С тіліндегі break сияқты) немесе шартсыз өту goto операторы арқылы модельдеуге болады.

Санауышы бар цикл – ол ішіндекейбір айнымалы өз мәнін берілген бастапқы мәннен соңғы мәнге дейін белгілі бір қадаммен өзгертетін және осы айнымалының әр мәні үшін цикл тұлғасы бір рет орындалатын цикл. Программалаудың процедуралық тілдерінің көбісінде мұндай цикл for операторы арқылы жүзеге асырылады. Ол операторда санауыш (цикл айнымалысы), өтулердің талап етілетін саны (немесе санауыштың шекті мәні) және, мүмкін, санауыш өзгеретін қадамы. Мысалы, Оберон-2 тілінде мұндай циклдың түрі:

FOR v:= b TO e BY s DO

... цикл тұлғасы

END

(мұндағы v - санауыш, b – санауыштың бастапқы м


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: