Орындалатын программаны құру сатылары




Презентация қосу
C++ тілінің базалық құралдары
Кез келген табиғи тілдегі мəтінде 4 негізгі элементті бөліп қарастыруға болады:
- символдар
- сөздер
- сөз тіркестері
- сөйлемдер.
Осындай элементтер алгоритмдік тілде де бар, алайда мұнда сөздерді лексемалар (элементар конструкциялар),
сөз тіркестерін өрнектер, ал сөйлемдерді операторлар деп атайды.

Лексемалар символдардан, өрнектер лексемалар мен символдардан, ал операторлар символдар, өрнектер жəне
лексемалардан құралады
Тіл алфавиті немесе символдары – бұл тілдегі барлық мəтіндер жазылатын, ары қарай бөлінбейтін негізгі таңбалар;
Лексема немесе элементар конструкция – өзіндік мағынасы бар тілдің ең кіші бірлігі;
Өрнек белгілі бір мəннің есептелу ережесін береді;
Оператор кез келген бір əрекеттің аяқталған спатталуын береді.

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

Тілдің əрбір элементі синтаксис жəне семантика арқылы анықталады. Синтаксистік анықтаулар тіл элементтерінің
құрылу ережесін білдіреді, ал семантика олардың мағынасы мен қолданылу ережелерін анықтайды.

Біртұтас алгоритммен біріктірілген сипаттаулар жиыны мен операторлар алгоритмдік тілдің программасы болып
табылады. Программаны орындау үшін, оны процессорға түсінікті машиналық кодқа аудару керек. Бұл процесс
бірнеше сатылардан тұрады.
Орындалатын программаны құру сатылары
Программа алдымен препроцессорға беріледі, ол мəтін құрамындағы директиваларды (мысалы, мəтінге
тақырыптық файлдарды – программада қолданылатын элементтердің сипаттамасы сақталған мəтіндік
файлдарды қосуды) орындайды.

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

Жинақтауыш (компоновщик) немесе байланыстар редакторы бір объектілік модульге басқа объектілік
модульдерді жəне де кез келген программада болатын (мысалы, экранға мəлімет шығаруды жүзеге асыру үшін)
кітапхана функцияларын қамтитын модульдерді біріктіре отырып, программаның орындалатын модулін
қалыптастырады.

Егер программа бірнеше бастапқы файлдардан құралатын болса, олар жеке-жеке түрлендіріліп, осы жинақтау
сатысында біріктіріледі. Осының нəтижесінде шығатын атқарылатын модульдің кеңейтілуі .exe болады жəне ол
əдеттегі тəсілмен орындауға жіберіледі.

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

[ void | int ] атауы();

түріндегі жазба C++ тілінің ережелеріне сəйкес атауы конструкциясының орнына нақты бір басқа ат қойылуы
тиіс екенін, ал оның алдында void немесе int сөздерінің бірі болуы немесе ешбір түйінді сөз болмауы мүмкін
екендігін білдіреді.

Жүйелі жақшалар бірнеше элементтің ішінен біреуі ғана таңдап алынуы тиіс элементтерді топтастырады. Ал тік
жақшалардың өздері синтаксистік элемент ретінде қарастырылатын жағдайда ол ерекше түрде айтылады.
C++ тілінің алфавиті

C++ тілінің алфавиті келесі таңбаларды қамтиды:
- латын тілінің бас жəне кіші əріптері жəне астын сызу белгісі;
- 0-ден 9-ға дейінгі араб цифрлары, A жəне F арасындағы оналтылық цифрлар;
- арнайы белгілер: " { } , | [ ] ( ) + - / % *. \ ‘ : ? < = > ! & # ~ ; ^
- бос орын символдары: бос орын, табуляция символы, жаңа жолға көшу символы.

Алфавит символдарынан тіл лексемалары құралады. Олар:
- идентификаторлар;
- түйінді (резервтегі) сөздер;
- операциялар белгілері;
- тұрақтылар;
- ажыратқыштар (жақшалар, нүкте, үтір, бос орын симводары).

Лексемалардың шекараларық символдары ретінде ажыратқыштар немесе операциялар белгілері сияқты басқа
лексемалар қолданылады.
Идентификаторлар

Идентификатор – бұл программалық объектінің атауы. Оны құру үшін латын əріптері, цифрлар жəне астын сызу
белгісін қолдануға болады. Бас əріптер мен кіші əріптер əртүрлі символдар болып саналады, мысалы, sysop, SySoP
жəне SYSOP – үш түрлі атау.

Идентификатордың алғашқы символы əріп немесе астын сызу белгісі болуы тиіс, алғашқы символ ретінде цифрды
қолдануға болмайды. Атау символдарының ішіне бос орын қойылмайды.

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

- идентификаторларды астын сызу символымен бастамаған жөн, себебі олар жүйелік функциялардың немесе
айнымалылардың атауларымен сəйкес келуі мүмкін, сонымен қатар бұл программаның орындалу жылдамдығын
төмендетеді;

- сыртқы айнымалыларды анықтау үшін қолданылатын идентификаторларға жинақтауыштар шектеу қояды (əртүрлі
жинақтауыштарды немесе жинақтауыш нұсқаларын қолдану сыртқы айнымалылар атауларына да əртүрлі
талаптар қояды).
Түйінді сөздер
Түйінді сөздер – бұл компилятор үшін арнайы мағынасы бар алдын ала анықталған (резервтегі) идентификаторлар.
Оларды тек өз анықталған мағынасында ғана қолдануға болады.
Операциялар таңбалары, яғни белгілері – бұл операндтармен орындалатын əрекеттерді анықтайтын бір немесе
бірнеше символдар тізбегі. Операция таңбаларының ішіне бос орын белгісі қойылмайды. Құрамындағы операндтар
санына байланысты операциялар унарлы, бинарлы, тернарлы болып бөлінеді. Мəтін ішіндегі орнына, яғни
қолданылатын ортасына қарай бір таңбаның қызметі əртүрлі болуы мүмкін. Мынадай операциялар [ ], ( ) жəне ?
таңбаларынан басқа белгілер жеке лексема қызметін атқарады.

Тұрақтылар деп программадағы мəні өзгермейтін шамаларды айтады. Олар бүтін, нақты, символдық жəне
тіркестік тұрақтылар болып бөлінеді. Компилятор тұрақтыны лексема ретінде белгілеп алып, оны сыртқы бейнесіне
қарай белгілі бір типке жатқызады
Бір символдан тұратын символдық тұрақтылар компьютер жадында бір байт орын алады жəне стандартты char
типіне жатады. Қос символды тұрақтылар екі байт орын қажет етеді жəне int типіне жатады, мұндағы бірінші
символ адресі кіші байтта орналастырылады (мəліметтер типтері туралы келесі бөлімде жазылған).
Кері қиғаш сызық белгісі келесі мақсаттарда қолданылады:
- графикалық кескіні жоқ кодтарды (мысалы, \a – дыбыстық сигнал, \n – кур сорды келесі жолдың басына
көшіру) бейнелеу үшін;
- апостроф ('), кері қиғаш сызық (\), сұрақ белгісі (?) жəне тырнақша (")символдарын бейнелеу үшін;
- кез келген символды оналтылық немесе сегіздік кодтардың көмегімен бейнелеу үшін, мысалы, \073, \0xF5.
Сандық мəндер 0 мен 255 аралығында болу керек.
Кері қиғаш сызықтан басталатын символдар тізбектерін басқару тізбектері немесе escape-тізбектер деп атайды.
Жоғарыдағы кестеде олардың мүмкін болатын мəндері берілген. Басқару тізбегі жеке бір символ ретінде
қабылданады.

Егер кері қиғаш сызық белгісінен кейін кестеде көрсетілмеген символ кездесетін болса, онда оның нəтижесі белгісіз
болып саналады. Ал егер сандар тізбегінде цифрдан өзге символ кездессе, ол сандық кодтың соңы болып
есептеледі.

Басқарушы тізбектер тіркестік литералдар деп аталатын тіркестік тұрақтыларда қолданылуы мүмкін. Мысалы, егер
тіркес ішіне тырнақша жазу керек болса, оның алдына кері қиғаш сызық қойылады, сол арқылы компилятор бұл
тырнақшаның тіркесті шектейтін тырнақшалардан басқа екенін ажырата алады:
"\"Питер\" баспа үйі"
Барлық тіркестік литералдарды компиляторлар əртүрлі объект ретінде қарастырады.

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

Əрбір тіркестік литералдың соңына компилятор \0 басқару тізбегімен берілетін нөлдік символды қосып қояды.
Сондықтан тіркес ұзындығы оның жазуындағы символдар санынан əрқашанда бір символға артық болады.
Осылайша, " " бос тіркестің ұзындығы 1 байтқа тең болады. Бір символдық тіркес ("А") пен символдық тұрақты ('А')
арасындағы айырмашылыққа назар салыңыз. Бос символдық тұрақты қолданылмайды.
Түсініктемелер
Жол соңындағы түсініктемелер екі «тура қиғаш сызық» символдарынан (//) басталып, жаңа жолға көшу символымен
аяқталады, ал түсініктеменің екінші түрі /* жəне */ жақшалық символдар ішіне жазылады. Түсініктемелер ішінде тек
C++ тілі алфавитінің символдарын ғана емес, компьютерде теруге болатын кез келген символдарды енгізе беруге
болады.

Қабатталған түсініктеме-жақшаларды (/*) пайдалану стандарт бойынша рұқсат етілмейді, бірақ кейбір компиляторда
оларды пайдалануға болады.

C++ тіліндегі мəліметтер типтері
Кез келген программаның негізгі мақсаты мəліметтерді өңдеу болып табылады. Əр типтегі мəліметтер əртүрлі жолмен
өңделеді жəне сақталады. Кез келген алгоритмдік тілдегі əрбір тұрақтының, айнымалының, өрнектің немесе
функциялардың есептеу нəтижелері белгілі бір типке сəйкес келуі керек.

Мəліметтер типі бойынша төмендегілер анықталады:
- мəліметтердің компьютер жадындағы ішкі бейнесі;
- осы типтегі шамалар қабылдай алатын мəндер жиыны;
- осы типтегі шамаларға қолдануға болатын операциялар мен функциялар

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

Мəліметтердің негізгі (стандартты) типтерін көбінесе арифметикалық типтер деп те айтады, өйткені оларды
арифметикалық операцияларға қолдануға болады.
Негізі типтерді сипаттау үшін келесі түйінді сөздер анықталған:
- int (бүтін);
- char (символдық);
- wchar_t (кеңейтілген символдық);
- bool (логикалық);
- float (нақты);
- double (екі еселенген дəлдіктегі нақты сандар).

Алғашқы төрт тип бүтін сандық (бүтін), соңғы екеуі жылжымалы нүктелі типтер (нақты) деп аталады.
Компилятордың бүтін шамаларды өңдеу кезінде қалыптастыратын коды жылжымалы нүктелі шамаларға арналған
кодтан өзгеше болып келеді.

Стандартты типтердің компьютердегі ішкі бейнеленуі мен олардың мəндерінің диапазонын нақтылайтын төрт тип
спецификаторы бар, олар:
- short (қысқа);
- long (ұзын);
- signed (таңбалы);
- unsigned (таңбасыз).
Бүтін тип (int)
Компьютер жадындағы int типіндегі шамалардың алатын орны, яғни ұзындығы немесе өлшемі стандарт бойынша
анықталмайды, ол компьютер мен компиляторға байланысты болып келеді.

Осы типтегі шамалар үшін 16 разрядты процессорда 2 байт, ал 32 разрядты процессорда 4 байт бөлінеді.

Тип атауының алдында тұратын short спецификаторы компиляторға процессордың разрядтылығына қарамастан,
санға 2 байт бөлу қажет екендігін білдіреді. Ал long спецификаторы бүтін шамаға компьютер жадынан 4 байт орын
берілетінін көрсетеді. Сонымен, 16 разрядты компьютерде int жəне short int типтері бірдей, ал 32 разрядты
компьютерде int жəне long int типтері бірдей (яғни эквивалентті) болып саналады.

Бүтін типтегі шаманың компьютер жадындағы ішкі бейнесі – екілік кодпен берілген бүтін сан. signed
спецификаторын қолданғанда санның алғашқы биті оның таңбасын көрсетеді (0 – оң сан, 1 – теріс сан). unsigned
спецификаторы тек оң сандарды көрсетуге мүмкіндік береді, өйткені мұнда алғашқы разряд сан кодының бөлігі
ретінде қарастырылады. Осылайша, int типінің мəндер диапазоны спецификаторларға тəуелді болып келеді.

Алдын ала келісім бойынша барлық бүтін типтер таңбалы сандарды бейнелейді, яғни signed спецификаторын
жазбауға болады. Программада кездесетін тұрақтылар сыртқы түріне қарай кез келген бір типке жатқызылады.
Егер программалаушыға бұл типтен басқаша тип қажет болып жатса, онда ол L, l (long) жəне U, u (unsigned)
жалғауларының (суффикстерінің) көмегімен керекті типті көрсете алады.
Мысалы, 32L тұрақтысына long типі беріледі жəне ол компьютер жадынан 4 байт орын алады. L жəне U
жалғауларын қатар қолдануға да болады, мысалы, 0x22UL немесе 05Lu.
Символдық тип (char)
Символдық типтегі шамаға компьютердегі символдар жиынының ішінен кез келген таңбаны орналастыруға
жеткілікті орын бөлінеді, типтің атауы осыған байланысты түрде берілген. Əдетте, бұл 1 байтқа сəйкес келеді.
Басқа да бүтін типтер сияқты, char типі де таңбалы немесе таңбасыз болуы мүмкін.

Таңбасы бар шамаларда -128 бен +127 аралығындағы мəндерді сақтауға болады. Ал, unsigned спецификаторын
қолданғанда, мəндердің өзгеруі 0 мен 255 сандары аралығында болады. Бұл 256-символдық ASCII кодтары
құрамының кез келген символын сақтауға жеткілікті. char типіндегі шамалар осы көрсетілген диапазоннан
шықпайтын басқа бүтін сандарды сақтау үшін де қолданыла береді.

Кеңейтілген символдық тип (wchar_t)
wchar_t типі символдарды кодтау кезінде 1 байт жеткіліксіз болатын жағдайларда, мысалы, Unicode ортасында
жұмыс істеуге арналған. Бұл типтің ені жүзеге асырылуына тəуелді болады; əдетте ол short типіне сəйкес келеді.
wchar_t типіндегі тіркестік тұрақтылар L префиксімен жазылады, мысалы, L"Gates".

Логикалық тип (bool)
Логикалық типтегі шамалар тек true жəне false мəндерін ғана қабылдай алады. false мəнін бейнелеудің ішкі
формасы – 0 (нөл). Кез келген басқа мəн true болып қабылданады. Бүтін типке түрлендірілген жағдайда true
мəні бірге сəйкес келеді. Жылжымалы нүктелі типтер (fl oat, double, long double)
C++ тілінің стандарты нақты мəндерді сақтауға арналған мəліметтердің үш типін анықтайды, олар: float, double
жəне long double. Жылжымалы нүктелі мəліметтер типтері компьютер жадында бүтін санды типтерден басқаша
түрде сақталады. Компьютер жадындағы нақты санның ішкі бейнесі 2 бөліктен – мантисса мен дəрежеден
тұрады.
void типі
Аталған типтерден басқа C++ тілінің негізгі типтеріне void типі де жатады, бірақ бұл типтің мəндер жиыны
бос болып табылады. Ол мəн қайтармайтын функцияларды анықтау үшін, функцияның аргументтерінің жоқ
екенін көрсету үшін, нұсқауыштардардың базалық типі ретінде жəне типтерді түрлендіру операциясында
қолданылады.
Программа құрылымы
C++ тіліндегі программа функциялардан, сипаттамалардан жəне препроцессор директиваларынан тұрады.
Функциялардың біреуінің атауы main болуы тиіс. Программаның орындалуы осы функцияның бірінші
операторынан басталады.

Функцияны анықтаудың қарапайым форматы төмендегідей болады:
қайтарылатын_мəн_типі атауы ([ параметрлер ]){
функция тұлғасын құратын операторлар
}

Көбінесе функция кез келген бір мəнді есептеу үшін қолданылады, сондықтан функция атауының алдында оның
типі көрсетіледі.

- Егер функция мəн қайтармауы тиіс болса, void типі көрсетіледі;
- функцияның тұлғасы блок болып табылады, сондықтан ол жүйелі жақшаға алынады;
- функциялар қабаттасқан түрде берілмейді;
- əрбір оператор нүктелі үтірмен аяқталады (құрама оператордан басқасы).
Құрамында main, f1 жəне f2 сияқты функциялары бар программа мысалы:

Препроцессор директивалары
сипаттамалар
int main(){
негізгі функция операторлары
}
int fl(){
fl функциясының операторлары
}
int f2(){
f2 функциясының операторлары
}

Программа бірнеше модульден (бастапқы файлдардан) құралуы мүмкін. Енгізу/шығару туралы бірқатар алдын
ала ескертулер. C++ тілінде құрамдас енгізу/шығару құралдары жоқ, ондай операциялар стандартты
кітапханалардағы функциялар, типтер жəне объектілер көмегімен жүзеге асырылады. Көбінесе екі тəсіл
қолданылады: С тілінен мұраланған функциялар жəне C++ тілінің объектілері.
С тілі стиліндегі негізгі енгізу/шығару функциялары:

int scanf (const char* format, ...) // енгізу

int printf(const char* format, ...) // шығару

Бұлар шамалардың кез келген санын format форматы тіркесіне сəйкес форматталған түрде енгізу жəне шығару
əрекеттерін орындайды. Формат тіркесінде мəлімет шығару кезінде ағымға (экранға) көшірілетін немесе мəлімет
енгізу кезінде ағымнан (пернетақтадан) шақырылатын символдар жəне % белгісінен басталатын, енгізу жəне
шығару кезінде нақты шамалармен алмастырылатын түрлендіру спецификациялары болады.

С тілі стиліндегі енгізу/шығару функцияларын пайдаланатын программаның мысалы:
Айнымалылар жəне өрнектер

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

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

Аты a болатын бүтін жəне аты x болатын нақты айнымалыларды сипаттау мысалы:
int a; float x;

Айнымалыларды сипаттау операторының жалпы түрі:
[жады класы] [const] типі аты [инициалдаушы];
Осы оператордың құрамындағы бөліктерді жазу ережелерін қарастырайық:
- Міндетті түрде көрсетілмейтін жады класы auto, extern, static жəне register мəндерінің біреуін қабылдай алады.
Олар туралы төменде айтылады.
- const модификаторы программада айнымалының мəнін өзгертуге болмайтынын көрсетеді. Мұндай
айнымалыны атаулы тұрақты немесе жай ғана тұрақты деп атайды;
- Сипаттау кезінде айнымалыға бастапқы мəн меншіктеуге болады, бұл инициалдау деп аталады.
Инициализаторды екі формада жазуға болады, алғашқысы – теңдік белгісімен:
= мəні
немесе дөңгелек жақшада:
( мəні )

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

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

Идентификатордың əрекет ету аймағы – идентификатормен байланысқан жады аймағын пайдалану
(онымен қатынас құру) үшін осы идентификатордың өзін қолдануға болатын программа бөлігі. Əрекет ету
аймағына байланысты айнымалы жергілікті (локалды) немесе ауқымды (глобалды) болуы мүмкін.

Егер айнымалы блок ішінде анықталған болса (блок жүйелі жақшамен қоршалып тұрады), ол жергілікті
айнымалы болып табылады да, оның əрекет ету аймағы сипатталу нүктесінен блок соңына дейінгі аралықты
қамтиды. Ал егер айнымалы кез келген блоктан тыс анықталған болса, ол ауқымды айнымалы болып саналады
да, оның əрекет ету аймағы болып осы айнымалы анықталған сипаттау нүктесінен файл соңына дейінгі аймақ
есептеледі.

Жады класы программалық объектінің (жеке жағдайда, айнымалының) өмірлік уақытын, яғни пайдаланылу
кезеңін жəне көріну аймағын анықтайды. Егер жады класы айқын түрде көрсетілмесе, оны компилятор
жариялану мəтініне тəуелді түрде (контекстіне байланысты) анықтайды. Айнымалының өмірлік кезеңі (уақыты)
тұрақты (программаны орындап біткенше) жəне уақытша (блокты орындап біткенше) болуы мүмкін.
Идентификатордың көріну аймағы деп идентификатормен байланысты жады аймағына қарапайым қатынас құру
мүмкін болатын программа мəтінінің бөлігін айтады. Көбінесе идентификатордың көріну аймағы оның əрекет ету
аймағымен бірдей болып келеді. Мұндағы ерекше жағдай – ішкі блокта да дəл осындай атпен сипатталатын
айнымалы болған кезде туындайды. Мұндайда сыртқы айнымалы ішкі блоктың əрекет ету аймағына кіргенменен,
ол онда, яғни ішкі блокта көрінбейді. Дегенмен, егер бұл айнымалы ауқымды болса, онда оның көріну аймағына
қатынас құру операциясын :: пайдалана отырып, оны қолдана беруге болады.

Жады класын беру үшін келесі спецификаторлар қолданылады:
- auto – автоматтық айнымалы. Ол үшін жады стектен бөлінеді жəне қажет болғанда айнымалының анықтамасы
орналасқан оператордың əрбір орындалуы кезінде ол инициалданып отырады. Жадыны босату айнымалы
сипатталған блоктан шығатын кезде орындалады. Оның өмірлік кезеңі – сол айнымалы сипатталған сəттен блок
соңына дейінгі аралық болып табылады. Ауқымды айнымалылар үшін бұл спецификатор қолданылмайды, ал
жергілікті айнымалылар үшін ол алдын ала келісім бойынша қабылданады, сондықтан оны айқын түрде берудің
онша қажеті жоқ.
- extern – айнымалы программаның басқа жерінде (басқа файлда немесе мəтiннің төменгі бөлігінде)
анықталатынын көрсетеді. Олар өздері жарияланған программаның барлық модульдерінде қолдануға болатын
айнымалыларды құру үшін қолданылады
- static – статикалық айнымалы. Өмiрлік кезеңі – тұрақты. Ол айнымалының анықтамасы орналасқан оператордың
алғашқы орындалуы кезінде бір рет инициалданады. Сипаттау операторының орналасуына байланысты
статикалық айнымалылар жергілікті немесе ауқымды болуы мүмкін. Ауқымды статикалық айнымалылар өздері
сипатталған модульде ғана көрінеді (яғни пайдаланылады).
- register – auto спецификаторына ұқсас, бірақ мұнда айнымалыға, мүмкіндігінше, процессор регистрлерінен орын
(жады) бөлінеді. Егер компиляторда мұндай мүмкіндік жоқ болса, айнымалылар auto сияқты өңделеді.

Ұқсас жұмыстар
Программалық код терезесі
Бағдарламалау тілдері
Кездейсоқ айнымалы ұғымын қарастыру. Кездейсоқ айнымалымен жұмыс істейтін процедуралар мен функциялар. Тармақталу алгоритмін орындайтын программаны құру
Си тілінде құрылған программаның құрылымын сипаттау
ЖЕКЕ ЖОБА ЖАДЫНЫ БАСҚАРУ
Кездейсоқ сандар
Бағдармалауға қойылатын негізгі талап - бағдарламаның анықтылығы және сенімділігі
Pascal тілінде бағдарламалау
ТР және СИ подпрограммаларды пайдалануды салыстыру
Оралымды алгоритмдер
Пәндер