if(өрнек-шартты) оператор if(өрнек-шартты) оператор-1 elseоператор-2
Шартты-оператордың қысқартылған түрінде өрнек-шартты есептелінеді де, егер оның шамасы нольден басқа болса, онда шарттан кейінгі оператор орындалады, кері жағдайда ешқандай іс орындалмайды.
Шартты оператордың толық түрінде өрнек шарттың ноль емес шамасында программаның кейінгі операторына әрі-қарай өтуімен оператор-1 орындалады, ал өрнек-шарттың нольдік шамасында оператор-2 орындалады да, программаның келесі операторына өтеді.
Параметрлі цикл келесі схема бойынша құрылады:
26
for ( El; Е2; ЕЗ ) оператор
бұнда El; Е2; ЕЗ - скалярлы типтің өрнектері. Параметрлі цикл келесі алгоритммен шығарылады:
Өрнек Е1 есептелінеді. әдетте, бұл өрнек циклдің басына дайындық жасайды.
Өрнек Е2 есептелінеді және егер ол нольге тең болса, программаның келесі өту (циклден шығу) орындалады. Егер Е2 нольгетең болмаса, пункт 3 орындалады.
Оператор(циклдің денесі) орындалады.
Өрнек ЕЗ есептелінеді - циклдің қайталануға дайындағы орындалады. осыдан кейін қайтадан пункт 2 орындалады.
Циклдің денесінде кез келген типтің цикл операторының қайталауын тоқтату үшін break операторын қолданады. Циклдің денесінде кез келген жерінен циклдің келесі қайталауына өту үшін continue операторы колданады. Бұл операторлар өзінің қызметі бойынша Паскаль тілінің сәйкес операторларымен ұқсас.
C++ құрылымдық программалау үшін операторлардың толық жиынтығын
ұстанғанмен, оның ішіне бәрі бір өту операторы кіргізілген. goto таңба;
Таңба өту адресін береді және бір операторды белгілейді. Сол оператор goto операторы жататын құрамдық оператордың ішінде болу керек. Деректер жарияласуынан тұратын құрамдас операторға кіру оның басында болмаса рұқсат етілмейді.
№5 лекция. Си/Си++ препроцессорлық құралдар: Препроцессорлы өндеудің негізгі түсініктері. Препроцессорлы айнымалылар. Макро-анықтаулар (макростар).
Инкапсуляция
Программалауда негізі деректердің абстрактылық типтерінде ақпарат саналы түрде программаның кішігірім бөлігінде жасырынып қойылады. Әр объект екі түрде болады. Сыртқы көзқараспен қарағанда абстрактылық деректер типі (АДТ) абстракциялардың сипатын анықтайтын операциялардың жиынтығы болып табылады. Бұл АДТ анықтайтын программист объектінің ішкі күйін ұстау үшін қолданылатын айнымалыларының шамаларын көреді.
Мысалы, stack деректерінің абстрактылы типі үшін қолданушылар жіберілген операциялар - pop, push, top- тек сниаттамасын көреді. Басқа жағынан, stack-ті іске асыратын программистке деректердің нақты құрылымдарымен манипуляция жасау керек. Нақты белшектер тым абстрактылы обьектте инкапсуляцияланған.
Әр дара айнымалының өзінің жеке жиынтығы болады. Бұл шамалар клиенттермен тікелей байланыста болмай тек ғана класпен ассосацияланған әдістерімен өзгеру болады.
Объект күй мен сипаттың комбинациясы болып табылады. Күй дараның айнымалысымен түсіндіріледі, сипат әдіспен сипатталынады. Сыртынан клиенттер объектінің тек сипатын ғанабіледі. Ішінен әдістердің қажетті сипатын қамтамасыз етуі, күйді өзгертуі және басқа объектілермен өзара әрекеттесу туралы толық ақпарат алуға болады.
Кластардың әр түрлілігі ОБП ішінде кластар бірнеше әр түрлі түрледе болады және әр түрлі мақсаттар үшін
қолданылады. Кластардың үлкен бөлігін кслесі категориялар қамтиды:
деректер көзі және деректерді беруде келістірушелер
деректерді көруге арналган кластар
Бұл бітпейтін тізім. Егер класс екі категорияның арасында ажыратылса, онда оны екі класқа бөлуге болады. Деректердің администраторлары Data Manager (Data немесе State деп аталатын) кластары - бұл негізгі міндеті деректерді қолдау немесе бір нәрсенің күйі туралы ақпаратты қолдау болып табылатын кластар. Мысалы, картамен ойнау үшін Card
27
классы негізгі міндеті картаның түсін және рангісін сақтаудан тұрады. Кластар-администраторлар - бұл жобаның іргелі блоктары, маңыздылықтары.
Деректерінің көзі Data Source - бұл деректерді генерациялайтын кластар. Деректерді беру кезіндегі келістірушілер (Data Sinks) деректерді қабылдап және әрі қарай беру үшін (мысалы файлға жазу) қызмет атқарады. Көздер және келістірушілер, кластар-администраторлар айырмашылығы өз ішіне деректерді сақтамайды, оларды сұрау бойынша генерация жасайды (бұл деректер көздері) немесе шақырған кезде өңдейді (бұл деректер келістірушілер).
Қарау кластар да кезкелген тіркемеде керек болады. Барлықпрограммалар акпараттың шығумен (әдетте экранға) іске асырылады, сондықтан ішкі деректердіжәне олардың шығуын іске асыратын әдістерді бөлектеу болады. Объект өзі және оныңвизуализациясы бөліп алу пайдалы. Осы принципінебайланысты графикалық ақпаратты шығаруды қамтамасыз ететін жүйелер біраз жеңілденеді. Идеалдық жағдайда модель оның визуалдық көрсетуі туралы ақпараттарды қажет етпейдіжәне ұстамайды. Бұл сол бір модельді әр түрлі тіркемелерде қолдануға мүмкіндік жасайды.
Қосалқы кластарға құрамында пайдалы ақпарат болмаса дакүрделі тапсымаларды орындауды жеңілдететін кластар жатады.Мысалы, карталардың байланысты тізімі - колода.
Мысалы: Картамен ойнау.
Card классы өзінің болашақ қолдануын аз біледі, сондықтан кез келген типтегі карталық ойында қолдану мүмкіндік береді.
Card классы
Картаның түсін және рангысын сақтау Каратаның түсін қайтару
Картаның "бет суретін жоғары немесе төмен" күйін сақтау Экранда картаның суретін салу Экраннан картаны алып тастау
Card классы деректердің администраторы болып табылады, ол түстің және рангының шамаларын сақтайды және қайтарады және картаның суретін салады. Card класының анықтауды қарайық:
Класс Card
Suit - картаның түсін және рангысын қайтарады color - картаньщ түсін қайтарады
laceUp - бет суреттің жоғарғы немесе төмен жатқан күйінтексереді draw - экранда картаның суретін салады
erase - экраннан картаны алып тастайды
Достарыңызбен бөлісу: |