Алфавит, базалы типтері жне деректерді сипаттау
Тілді алфавитіне ДЭЕМ стандартты пернелік татасында болатын барлы символдар енеді.
• A...Z, a...z латын ріптері;
• 0...9 сандары;
• операциялар табалары жне блгіштері.
{}[]().,->&* + - ~ !/%?:; = <> | # А
Кейбір операциялар символдарды комбинацияларымен белгіленеді, операциялар символдарыны шамасы біршама жадайда колданатын контекстке байланысты болады.
Деректерді базалы (алдын-ала аныталан) типтері екі топа бірі ктірілген: бтін типтегі деректер жне згермелі нктемен деректер (блшекті).
Бтін типті деректер (signed) табасы бар жне (unsigned) табасы жо кдімгі бтіндер. Деректі крсету шін (шамаларды диапазонына) олданатын разрядтарды саныбойынша кдімгі бтіндер (int), ыса бтіндер (sоrt int) жне зын бтіндер (long int) болып блінеді. Символды деректер (char) бтіндер сияты аралады, табамен жне табасыз болады.
Айнымалыны const сипаттамасымен жарияланан идентификаторын жариялаанда аныталан шамадан басаны беруге болмайды. Константаны жариялаанда инициализацияланан шамалар міндетті болып табылады.
Программада программистермен аныталатын типтерді деректері жарияланады жне олданылады, мысалы, нсауыштар, сілтемелер, деректер агрегаттары, деректерді санап -шыу типтері.
№4 лекция. Си-де Си++- ке осымшалар. Функциялар. Си++ осымшасы. Орындауды уаыт библиотекасы (Run-time library)
Деректерді базалы типтеріні шамалы жиынтыына арамастан (бтін жне блшекті арифметикалы деректер жне жолды литералды) C++ тілінде деректермен операция жасауды клемді жиынтыы аныталан, оларды ішіндегі бліктер тікелей машиналы командалара сйкес келеді. Барлы программалау тілдері сияты операциялар рнектерді ру шін ызмет атарады. рнектер операндтарды реті жне операцияларды белгілері болып табылады жне кейбір шамаларда есептеу шін ызмет аткарады.
Жоарыда крсетілген негізгі операцияларды олдану ерекшеліктерін арайы.
"::" (екі кос нкте ) программада екі бірдей ат белгілі болан жадайда сол жердегі программа объектіні атын анытау шін олданады, мысалы, егер бір ат глобалды, ал екіншісі ат функцияны ішінде жарияланан. Егер бір ата екі ос нкте келетін болса, онда бл глобалды ат болады.
анытауа ммкіндік жасады. Жааша орнектерді мына трде (x=2)*(y=3)+(z=4) руа болады, біра бл программаны крнектілігін тмендетеді. Осы орнекті нтижесі 24-те болады, біра сол уаытта айнымалылар x,y,zжаа шамалар алады.
Жай беруден баса да рамдас операцияларды жиынтыымен беру де болады, бнда беру рнегі екі орынды операциямен бірігеді. х+=у жазуы х=х +у рнегіне эквивалентті. Бтін операндтар шін сола жне оа жылжу операциясы аныталан. Операция el<<2 орындаанда бірінші операндыны биттері сола elразрядына жылжиды жне бірінші операндты типі болады, босатылан о разрядтар нольмен толтырылады. el>>e2 оа жылжыанда, егер elunsignedтипі болса, босатылан сол разрядтар нольмен толтырылады, алsignedтипіні el босатылан сол разрядтарына белгіленген разрядтар айталанады.
Бтін операндыларыны стінен разрядты логикалы кбейту , логикалы осу жне шыарып тастайтын (немесе бір шамалылы жаа шыару) операциялары болу ммкін. Бл операцияларда операндтар биттерді реті трінде аралады жне операция екі
операндпен сйкес разрядты р жбыны стінен орындалады. Мысалы, рнекті ( х >> ( р - п + 1 ) ) & ( ~(~0 <<п )) нтижесі ретінде нмірі р биттен бастап, бтін unsigned х-тен п биттерді белгілеу жне белгіленген биттерді оа жылжуы крсетіледі.
C/C++ -де шартты рнек деп аталатын конструкция бар. Шартты рнек схема бойыша рылады:
шарт ? рнек 1: рнек 2;
Кезкелген скалярлы рнек шартты рнек ретінде бола алады. Егер шартты рнекті есептеу нтижесі нольге те емес болса, онда барлы рнекті шамасы - 1 болады, шартты рнекті нольдік шамасында барлы рнекті шамасы - 2 болып аныталады, Шартты рнекті екінші жне шінші операндтары не екі арифметикалы тип, не біртипті рылымдар немесе біріктірмелер, не бірдей типті нсауыштары, не біреуі бір типке нсауыш, ал екіншісі операнд - NULL немесе void* типі болады.
х > 0 ? 1 : 0 - рнегі 1 айтарады, егер х нлден лкен болса, арама-арсы жадайда 0 айтарады.
рнек тірмен блінген рнектерді реті трінде болады. Бл жадайда барлы рнектер солдан оа арай есептеледі жне тізімдегі соы рнекті шамасы айтарылады. Мысалы, рнекті х = 2, е * 3, х +1 нтижесінде шама 3 алынады жне х шамасы 2 болады. Кбейту е * 3 нтижесі пайдаланбайды.
2.5. Си/Си++ операторлары
Операторлар - бл синтаксистік конструкция, ол программада орындалатын істерді анытайды. С /С++-де келесі операторларды типтері бар: оператор-рнектер, тадау операторлары, цикл-операторлар жне ткізу-операторлар. Кейбір операторларды синтаксисіістерді сол немесе баса орындау ретін тадайтын жадайлара ызмет атаратын рнектерден трады. С -де булевалы рнектер жо боландытан, жадайлар ретінде скалярлы шамалар беретін кезкелген рнектер олданылады, егер осы шамалар нльге те емес болса, жадай орындалды деп саналады, егер ол нльге те емес болса, жадай орындалмайды. Бірнеше операторлар фигуралы (операторлы) жашамен оршалып , бір рамдас оператора, жинаталады. Операторды бітуіні белгісіне (рамдас оператордан баса) нкте тір ызмет атарады, бл жадайда ол операторды блігі болып табылады. Кез келген операторды алдында идентификатор трінде ос нктемен блініп таба ойылады. Таба, тек ткізу операторында, оны крсету шін олданылады. Е арапайым трі нкте тірмен бітетін толы рнекті крсететін оператор-рнек болып табылады, мысалы, х = 3; у = (х +1) * t; i++;
Оператор трінде жасалан рнек есептеледі, біра оны шамасы жоалады жне рнек-операторды ісі есептеуді алып жретін осымша эффекттерден трады. Мысалы, меншіктеу, автолкею, автокішірею операцияларын орындау.
С/С++-де тадау операторлары шартты-оператор жне ауыстырмалы осыштан трады. Шартты-оператор программалауды баса тілдеріні шартты-операторларымен сас болады, ысаран жне толы трде олданыла алады, оан сйкес келесі схемалар болады: