Басылым №1 18. 09. 2013ж беттің і


Клавиатурадан форматты түрде енгізу



бет3/6
Дата14.06.2016
өлшемі1.39 Mb.
#135140
1   2   3   4   5   6

Клавиатурадан форматты түрде енгізу.

scanf()функциясын шақыру операторы келесі құрылымға ие:



scanf(формат түріндегі жол, аргументтер_тізімі);

Бұл функция клавиатурадан енгізілген символдардың оқылуын қамтамасыз етеді. scanf()функциясында формат жолы мен аргументтер тізімі міндетті түрде болуы қажет. Келесі операторды қарастырайық:

scanf("%f",&a)

Мұндағы "%f" - формат жолы, &a – енізілетін мәндерге сәйкес аргументтер тізімі. Бұл оператор a айнымалысына сандық мәннің енгізілуін қамтамасыз етеді.

Клавиатурадан енгізілетін және scanf()функциясыменен қабылданатын символдық тізбекті кіріс ағымы деп атайды. Аргументтер тізімі – енгізілетін айнымалылар және әр айнымалының алдына & белгісі қойылады.

Формат жолы тырнақшаға алынады және спецификациялар тізімінен тұрады. Әр спецификация % белгісінен басталады, одан кейін *жолдың_ені, модификатор, спецификатор тұруы мүмкін. Соның ішінде спецификатор міндетті элемент болып табылады. *белгісі кіріс ағымында белгілі бір символдар санын жіберуге мүмкіндік береді.


С++-тегі форматтау функциялары мен флагтар
типті файлдағы лектік-объектілер жұмысы форматтау флагтарымен басқарылады:

Флагтар self( ) функциясы көмегімен орнатылады, unself( ) функциясы арқылы ажыратылады.

Мысалы: cout <
Флагтар

 skipws - енгізу барысында пробел литерлері алынып тасталады;

 left - шығарылатын мәндер әрічтің сол жақ шетімен тегістеледі, толықтырғыш

символдармен толықтырылады;

 right - шығарылатын мәндер өрістің оң жақ шетінен тегістеледі;

 internal - бұл символдар таңба символдар мен сан және санау жүйесі префиксі

арасында қойылады;

dec - бүтін сан 10-дық санау жүйесінде шығады;

oct - бүтін сан 8-дік санау жүйесінде шығады;

nex - бүтін сан 16-лық санау жүйесінде шығады;

 show base - бүтін санды шығарғанда санау жүйесінің префиксі шығарылады;

 show point - бөлшек санды шығарғанда ондық нүктесі қойылады және соңындағы

0-дер тіркеледі;

 uppercase - 16-лық санау жүйесіндегі А, ..., F және Е експоненциалдық символы

үлкен әріппен шығады;

 showpas - оң сандары шығарғанда + таңбасы қойылады;

 scientific - бөлшек сан експоненциалдық түрде жпзылады;

 presicion( ) – функциясы scientific немесе fixed флагы орнатылып тұрғанда, үтірлі санның бейнелену дәлдігін анықтайды;

 set precision( )- де сол секілді. Автоматты түрде – 6-ға тең. Бұл функция аргументсіз шақ

 width( ) - функциясы шығару өрісінің енінің ең кіші мәнін анықтайды ырылғанда ағымды дәлдік мәнін анықтайды

 setw( ) - функциясы да сол секілді. Аргументсіз функция ағымды мәнді қайтарады.

setfill( ), setprecision( ), setw( ) манипуляторлары ios класының параметрленген

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

Енгізу-шығару бағытын адрестеу

Қазіргі операциялық жүйе клавиатура мен экранды файлдық құрылғы ретінде қарастырады.

Клавиатура мәліметтерді оқып немесе экранға шығару программасының бағытын адрестеу үшін жүйеге клавиатураның орнына нақты файлды, мысалы DAN.

DAT қолдануға нұсқау беріледі.

Мысалы, орындалатын файл аты – PRIMER.

Нұсқау: 1) primer < dan.dat - файлдан оқу

2) primer > res.dat - файлға шығару.

Бірге: 3) primer < dan.dat > res.dat.

Стандартты потоктар мен нақты файл арасында немесе периферийлік құрылғылар арасында байланыс ұйымдастырудың 2 тәсілі бар:


  1. бағытын адрестеу;

  2. каналдар құру.

Канал дегеніміз - бір программадағы стандартты енгізу мен екінші программадағы стандартты шығару арасындағы тікелей байланыс. Мысал, procces1 | process2

Мұндағы process 1,2 екі программа.

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


  1. Енгізу-шығару мүмкіндіктерінің өзге тілдерден ерекшелігі қандай?

  2. Енгізу-шығару барысындағы басқару таңбаларының қойылу реттері қандай?


Дәріс №6. Басқару инструкциялары мен конструкциялары


  1. if инструкциясы

  2. if/else инструкциясы

  3. Switch/case /case конструкциясы

  4. ? шартты операторы+

if инструкциясы
С/С++ тілінде 4 базалық таңдау инструкциялары бар: if, if/else, swith/case және “?” операторы. Оларды жеке –жеке қарастырудан алдын, шартты өрнектерді құрудың жалпы принциптерін айтып өтелік. Таңдау иструкциясы программаның белгілі бір блоктарын таңдап орындауға қолданылады.

Бұл блоктар бір не бірнеше қатардан тұруы м‰мкін. Бірінші жағдайда қатар фигуралық жақшаға алынбайды, ал екіншіде блок т‰гел алынады.

If инструкциясы команданы не командалар блогын шарттың ақиқат не жалған болуына байланысты орындалады.

Қарапайым көрінісі (синтаксисі).

If (шарт) өрнек;

Егер шарт тексерудің нәтижесі ақиқат (true) болса, онда өрнек орындалады, одан соң келесі қатарлар орындалып кете береді.

Ал, егер шарт нәтижесі false мәнін (жалған) берсе, өрнек орындалмай, тастап кетіледі.

Мысал:


Мына бір программаның бөлігінде а айнымалының мәні 72-ден ‰лкен не тең болған сайын экранға “Добрый день” сөзі шығады.

If (a>=72)

printf (“Добрый день!”)

If инструкциясы бір емес бірнеше командаларды қамтитын болса, синтаксисі мынадай болады:

If(шарт) {

өрнек 1;


өрнек2;

...........

өрнек n;

}

Мысал:



# include

int main ()

{

int otl, hor, udov;



float cred;

printf (“/n өте жақсы деген баға алған пәндердің санын ендіреміз:”);

scanf (“%d”,&otl)

printf (“/n жақсы деген баға алған пәндердің санын ендіреміз:”);

scanf (“%d”,&hor);

printf(“/n қанағаттанарлы деген баға алған пәндердің санын ендіреміз:”);

scanf (“%d”, &udov);

cred=(otl*5+hov*4+udov*3)/ (float)(otl+hov+udov);

printf (“/n сіздің орташа балыңыз : %5,2 f/n”, cred);

if (cred>=4.5)

{

printf (“/n құтықттаймыз!/n”);



print(“/n Cіз конкурстан өттіңіз”);

}

return (0);



}
Бұл жерде if құтықттау сөздерін шығару не шығармауды басқарып тұр , яғни cred айнымалысының мәні 4,5- ке тең, не ‰лкен келесі қатарлар орындалады.
if/else инструкциясы 2

If/else инструкциясы шарттқа байланысты 2 өрнектің бірін таңдап орындауға м‰мкіндік береді.


Синтаксисі:

If (шарт)

өрнек1:

else


өрнек2:

Егер шарт тексеру мәні true болса, онда өрнек1 орындалады , кері жағдайда өрнек2

Мысалы:

If (ckeupressed==up)



iu_pixel_coovd++

else iu_pixel_coovd—

Келтірілген программа бөлігінде ckeypressed айнымалысының мәніне қарай тышқан көрсеткішінің горизонтал координатасы жоғарылайды (артады) не кемиді( төмендейді. (ckeyressed айнымалысы басылған клавиштің кодын меншіктейді)

Егер if және else-нің операторлық бөлімі бір емес бірнеше өрнектерден тұрса, онда оларды фигуралық жақшаға алу керек.

Мысал:

# include



int main()

{

char c;



int many, i, more;

more=1;


while (move==1)

{

printf(“ Tatop атауын ендіріңіз)



if (scanf (“% c”, & c)!= EOF)

{

while (c!=’/n’)



scant(“% c”, &c)

printf ( қанша заказ берілді?)

scanf (“% d”, &many);

scanf (“% c” , &c);

for (i=1; i<=many; i++)

printf (“*”);

printf (“/n”);

{

else



more=0;

{

return(0);



}
Бұл программа пайдаланушыға товар атауын ендіруді ұсынады. Егер файл соңы деген белгі берілмесе (ctrl+c клавиштері басылмаса), онда товар атауын әріптеп оқып, қатар соңын білдіретін символды(Enter клавиші басылғанша) кездестіргенше жалғастыра береді.

Келесі қатарға “қанша заказ берілді” сөзі шығады. Бұдан соң заказ берілген товарлар бірлігін ендіру қажет. Мұнан кейін ендірілген санға сәйкес, for циклі экранға жұлдызшалар қатарын шығарады.

Егер файл соңы деген белгі (ctrl+c клавишін басу) берілген болса , онда if –тің шартынан кейінгі қатарлар орындалмастан else денесі орындалады, яғни more-нің мәні 0-ге ауыстырылады. Демек цикл енді қайталанбай, программа аяқталады.
Switch/case /case конструкциясы

Бір айнымалыны бірнеше мәндермен тең не тең еместігін тексеруге тура келетін жағдайлар жиі кездеседі. Б±ны if/else/if конструкциясының көмегімен не осыған ±қсас конструкция switch/case көмегімен орындай аламыз. Оның синтаксисі мынадай.


switch (б‰тін санды өрнек)

case константа 1

өрнек 1

break;


case константа2

өрнек2


break;

.

.



.

case константаn

өрнекn

break;


detault
Үнсіз келісім бойынша әрекет break инструкцияның барлық тармақтарда (default тан бөлек) қайталанатынын байқаймыз. Егер өрнек1 ден кейінгі break-ты алып тастасақ, онда өрнек1 орындалғанан соң, switch конструкциясы ж±мысын аяқтаудың орнына, жалғасып өрнек2 де орындалады. Демек break тармақтардың бірі орындалған соң басқаларын орындамай, тастап кетуді атқарады.

Мысалы: Төмендегі фрагментті switch/cаse конструкциясын пайдаланып қайта жазамыз.


if (more= =smu)

f=5;


else if (more= = smd )

f=-5;


else if (more= = lmu)

f=10;


else f=-10;

switch (more )

{

case smu: f=5; break;



case smd: f=-5; break;

case lmu: f=10; break;

default: f=-10;

}

Бұл жерде more айнымалысының мәні біртіндеп case бұтақтарындағы smu, smd, lmu константаларымен (тұрақтыларының) салыстырылып тура келсе, f-ке сәйкес мәні меншіктеледі. Бадан соң break инструкциясы басқаруды } жабылған жақшадан кейінгі қатарға береді. Егер ешқайсысынада сәйкес келмесе, онда default инструкциясы орындалады. Default б±тағының болуы міндетті емес екендігін ескерте кетелік. Default блоктың соңғы қатары болғандықтан, одан кейін break инструкциясын жазудың қажеті жоқ.


Мысал:

іnt main()

{

char c= ‘a’;



int ivowel=0, iconst=0;

switch(c)

{

case ‘a’:



case ’A’:

case ‘e’:

case ’E’:

case ’i’;

case ‘I’:

case ’o’;

case ’O’:

case ’u’:

case ’U’: ivowel ++;break;

default: iconst++;

}

refurn(0);



}
Егер с айнымалысы aғылшын тілінің кез келген дауысты дыбысының ASCII кодына тең болса, (‘a’-әрпінің ASCII коды) онда ivowel айнымалысының мәні бірге артады, кері жағдайда iconst бірге артады.
? шартты операторы
? операторы қарапайым бір қатарлы шартты өрнектер қ±руға м‰мкіндік береді. Синтаксисі:

шарт ? өрнек бір : өрнек екі;

? операторы тернарлы деп аталады, өйткені ол тек 3 операнданы ғана керек етеді.

Мысал:


if (fr>=0.0)

fr=fr;
Мұны ? шартты операторының көмегімен бір қатарға жазуға болады:

fr=(fr>=0.0) ? fr : -fr;
Дәріс №6.Өзін-өзі тексеру сұрақтары немесе тестер

{Өзін-өзі тексеру сұрақтар тізімі немесе тесттер}




    1. Инчтрукция дегеніміз не?

    2. Конструкция дегеніміз не?


Дәріс №7. Цикл операторы.


  1. Цикл инструкциялары

Программалау негіздеріндегі қайталау алгоритмдерін ұйымдастыруда қолданылатын негізгі үш циклдық конструкция қарастырылған. Олардың бір-бірінен басты ерекшелігі циклдың қайталану шартына қарай цикл денесінің орындалу ретінің анықталуына байланысты.



While циклы

Жалпы форматы:

While <өрнек> инструкция

Мұндағы, <Өрнек> есептелінеді, егер мәні 0-ге тең емес болса, онда инструкция орындалады да өрнек қайта есептеледі және ол өрнек мәні 0-ге дейін қайталанады.



for циклы

For (өрнек1;өрнек2; өрнек3) инструкция

Мұндағы: өрнек1 және өрнек3 көбінесе меншіктеу немесе функцияны шақыру, ал өрнек2 қатынас өрнегі болып табылады. Өрнек1 цикл орындалғанға дейін қабылданғаннан кейін қатынас өрнегі тексеріледі. Егер қатынас өһрнегі ақиқат мән қабылдаса, онда циклдың денесі ретінде анықталған инструкция орындалады. Цикл денесі орындалған соң, яғни итерация аяқталғаннан кейін өрнек3 орындалады да қатынас өрнегі қайта тексеріледі. Осы процесс оның мәні жалған мән қабылдағанға дейін жалғасады.

Бұл өрнектердің кез-келгені болмаса да ; қойылуы міндетті.

Мысалы,

for(;;) {



}

Мұнда өрнек2 мәні барлық уақытта ақиқат деп есептелінеді, бұл шексіз циклды көрсетеді. Мұның жұмысы breаk немесе return инструкцияларының көмегімен тоқтатылуы мүмкін.



Цикл мысалы:

For(i=0,i
Do-while циклы

Жалпы форматы: Do инструкция while (өрнек);

Инструкция орындалған соң өрнек есептеледі, ақиқат болса онда инструкция қайта орындалады.

Break және Continue

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



Goto инструкциясы және белгі

Іштестірілген күрделі құрылымдарды үзу үшін кейде goto қолданылады. Ол көрсетілген белгіге көшеді. Белгі - айнымалы атауы секілді, белгілі бір атпен аталады да соңына : қойылады.

Мысалы,

for(…)


For(…) {…

If() goto error;


Дәріс №7.Өзін-өзі тексеру сұрақтары


    1. Цикл дегеніміз не?

    2. While циклының жалпы форматы қалай жазылады?


Дәріс №8. Функциялар және рекурсия


  • Функциялар. Функцияны сипаттау.

  • Функцияның формальды және нақты аргументтері.

  • Аргументтерді берілу тәсілдері.

  • Рекурсия. Рекурсивті алгоритмдер.



Функциялар. Функцияны сипаттау.
Си-дегі кез-келген программа - бұл айнымалылар сипаттамасы мен функциялар жиынтығы. Функциялар арсындағы байланыс мән қайтаратын аргументтер мен сыртқы айнымалылар арқылы орнатылады.

Return инструкциясы нәтижені шақыратын функциядан шақырған функцияға қайтару механизмін орындайды және return сөзінен кейін кез келген өрнек тұруы мүмкін.

Return <өрнек>; Өрнекті жақшаға да жазуға болады, бірақ ол міндетті емес.Си-дегі функция Раscal-ғы процедура мен функция секілді.

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

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




Функцияның формальды және нақты аргументтері.

Айнымалылар жергілікті және сыртқы болуы мүмкін. Жергілікті айнымалылар функция ішінде сипатталады да сонда ғана “көрінеді”. Сыртқы айнымалылар кез келген функция сыртында сипатталады да, сол функцияның кез келген жерінде қолданылады. Кез келген функцияны анықтау үшін форматы:



<тип нәтиже> <функция аты> (параметр тізімі)

{

<функция денесі>

}

Mысалы:


#include

Int max (int m, int n, int k);

Main ( )

{ int a,b,c;

Printf (‘a,d,c=’);

Scanf (“%i,%i”,&a,&b,&c);

Priktf (“max (a,b,c)=%i”, max (a,b,c));

Return (0);

}

Int max (int m, int n, int k);



{

Int d;


D=(m>n)? m:n;

D=(d

Return d;

}

Формальды және нақты параметрлер

Кез келген функцияның формалды аргументтер тізімі болады (болмауы да мумкін). Программадан функция шақырғанда аргумент тізімі беріледі.

Аргументтер адрес алу мысалын қарастырайық:

#include

int prim (int *pa, int *pb);

int main ( )

{

int ia, ib, ic;



scanf (“%i,%i”,&ia,&ib);

ic=prim (&ia,&ib);

printf (“kob=%d\n”,ic);

return (0);

}

int prim (int *pa, int*pb);



{

int q;


q=*pa * *pb;

return (q);

}

С++-те аргументтерді беру барысында көрсеткіш орнына тікелей сілтеме беруге болады. Сілтеме де аргументке сілтейді, бірақ көрсеткішті айқындау операторын қолдануды қажет етпейді. Мысалы, төмендегі С++ тіліндегі программада функцияны шақырғанда адрес алу операторы, ал функция денесінде көрсеткіш опраторлары қатыспайды.



#include

Int prim (int &pa, int &pb);

Int main ( )

Int ia, ib, ic;

cin >>ia; cin >>ib;

Ic=prim (ia,ib);

cout >< “kob=”<

Return (0);

}

Int prim (int &pa, int &pb)



{int q;

q=pa +pb;

return (q);

}
Аргументтерді берілу тәсілдері.


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

Айнымалы-сілтеме арқылы берілу тәсілі:

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

Функция аргументтері Char, int, float, double, массив типті бола алады. Функция аргументтері болмауы да мүмкін. Онда Void қызметші сөзі қолданылады және ол функцияның аргументтерінің жоқ екенін білдіреді.

Mысалы,


#include

Void primer(void);

Int main ( )

{

printf (“cанның кубын анықтау”);



Primer ( );

Return (0);

}

Void primer (void)



{

int t=8;


Printf (“t-ның кубы=%d\n”,t*t*);

}

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

Мысалы:

#include



void summ_pr(int *prmas);

int main()

{

int inmas[5]={10,4,16,0,45};



summ_mas(inmas);

return(0);

}

void summ_pr(int *prmas)



{

int t,s;


for (t=s=0; t<5; t++) s+=prmas[t];

printf(“массивтің элементтерінің қосындысы=%i \n”,s);

}

Функцияның аргументі ретінде массивті беру барысында массивті өлшемі белгісіз түрде де көрсетуге болады. Мына түрде void pr_mas(float mas[]) сипатталады.


Рекурсия. Рекурсивті алгоритмдер.
Өзін өзі шақыратын функция рекурсия деп аталады.Рекурсия тереңдігі дегеніміз – функция мәнін есептеуде өзін-өзі шақыру саны. Рекурсивті программалау стек принципіне сүйенеді.

Рекурсия түрлері мынадай:



  • сызықтық рекурсия;

  • параллель рекурсия;

  • қосалқы рекурсия;

  • жоғары ретті рекурсия.

Рекурсивті алгоритмдер мысалдары:

6!- алты факториялды есептеу алгоритмі:

#include

double fact(int n);

int n=6;

double f;

f=fact(n);

printf(‘6!=%10.0f\n”,f);

return (0);

}

double fact(int n)



{

if (n<1) return(1.0)

else

return(n*fact(n-1);



}

Евклид алгоритмі бойынша екі санның ең үлкен ортақ бөлгіші табу алгоритмі:

#include

#include

double euob(double n, double m);

int main ()

{

double f;



double n=1470;

double m=693;

f=euob(n,m);

printf(“f=%10.0f \n”, f);return(0);

}

double euob(double n, double m)



{

w=floor(fmod(n,m);

if (w==0) return(m);

else return(euob(m,w));

}
Дәріс №8.Өзін-өзі тексеру сұрақтары немесе тестер
1. Ішкі программа дегеніміз не?

2. Функция қандай типті мәндер қайтара алады?

3. Рекурсияның қандай түрлері бар?
Дәріс №9 Қатарлық тип. Атаулар. Жады.


  • Қатарлық тип.

  • Атаулар.

  • Жады.


Қатарлық тип

Қатарлық типтер символдар тізбегіне айтылады. қатарлық типтер char* (символ кµрсеткіші) типінде анықталады. Кµрсеткіш жадтағы орналасқан адресін білдіреді. қатарлық типті айнымалылар қатарлық типтегі бірінші тұрған символ адресіне байланысты болады. Мысалы:


char *str = "HELLO";
қатарлы тип пен қатарлы тип айнымалылардың жадта орналасуы кµрсетілген.

Сурет 9.1 Қатарлы тип пен қатарлы тип айнымалылардың жадта орналасуы


Литерал қатарлы типтер қос жоғары үтірлер аралығына жазылады. Компилятор әрқашан литерал қатарлы типтердің соңын білдіретін символ белгілеуі керек. қатарлы типтің кез-келген символын ажратып жазу мүмкін.
"Name\tAddress\tTelephone" // табулациямен ажратылған сµз
"ASCII character 65: \101" // 'A' арналады '101'
Бір қатарға симайтын ұзын қатарлы типтер (\) символы жәрдемінде ажратылып жазылуы мүмкін. мысалы:
“ biz inf 12 top \

studentteri Universitettin \

en bilgir studentteri”

Бұл “ biz inf 12 top studentteri Universitettin en bilgir studentteri” мағынасын береді.


Көп жағдайда программа “А” қатарлы тип пен ‘А’ символын шатастыру нәтижесінде қәте нәтиже береді. Бұл екеуі бір біріне тең емес, біріншісі А 2 байт және ‘\0’ символымен аяқталады, екіншісі бір байт кµлем иелейді.
Атаулар

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

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

C++ программалау тілі тµмендегі жарамды аттарды (идентификатор) жарату құралдарынан пайдаланады. Есім (ат) ең кемінде бір символ немесе одан кµп символдардан олар әріптер (‘A’..’Z’ немесе ‘a’.. ‘z’ ), цифралар (0..9) немесе тµменгі сызықша ( _ ) символдарынан тұрады. Тек бас символ цифра болмауы тиіс. Бас әріппен басталған есім кіші әріпінен басталатын есімінен айырмашылыққа ие.

Мысалы:

salary // жарамды



salary2 // жарамды

2salary // жарамсыз (цифрамен басталады)

_salary // жарамды

Salary // жарамды бырақ salary дан басқа


Жады
Компьютер программаны орындауда орындалатын программа кодтарын сақтау үшін Random Access Memory (RAM) жадынан пайдаланылады. Бұны біз сақталатын кейін бе келетін биттер (bit 0 және 1) тізбегін түсінеміз. Жад кейін 8 биттен тұратын байт бµліктерінен құралады. Байттар тізбегі жадта адрестеледі. Демек, әрі байт жадта µз адресіне ие.
Жадыдағы бит пен байттар

С++ программа компиляторы жадтағы орналасуына қарап, мәндерді орындалатын кодқа айналдырады. Мысалы:


int ayliq =12000;
қатарын компилятор жадта ayliq деп аталатын айнымалы үшін компьютер жадынан орын ажыратады. Жадтан қанша орын ажырату алдын – ала кµрсетіледі. Мысалы, integer бүтін сандар үшін компилятор жадтан 2 байт орын бµледі. Ayliq атты айнымалы мәні адрестелгенде бірінші байт орнын айнымалы адресі түсінеді және компилятор программаны орындағанда айнымалы мәні бірінші байт адресінен іздейді. Мысалы: 12000 мәні 1214 нµмерлі екі байт адресіне сақталады.
Figure 1.2 Representation of an integer in memory.

Salary
(a two-byte integer whose address is 1214 )


Программистер айнымалы мәнінің анық адресіне µте аз жағдайда қызығады. Бұл жадты жалпы ұйымдастырғанда және жадтағы адрестерді бµлгенде ғана қажетті.
Дәріс №9.Өзін-өзі тексеру сұрақтары

    1. Қатарлық типтер қандай типте анықталады?

    2. Идентификатор дегеніміз не?



Достарыңызбен бөлісу:
1   2   3   4   5   6




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет