Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekC++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
513.02 Кб
Скачать

[Gl] Дәріс №2. Тілдің қарапайым объектілері.[:]

Дәріс беруші: КЖ кафедрасының

аға оқытушысы Туребаева Р.Д.

Тілдің қарапайым объектілері.

Сұрақтар:

  1. Мәліметтер типтері.

2. Сандар.

3. Атау – идентификатор.

4. Тұрақты немесе константа.

5. Айнымалылар.

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

Тілдің ары қарай бөлінбейтін ең қарапайым бірлігі лексем (token деп те айтады) деп аталады.

Лексемнің 5 типі бар: операциялар (operator), айыру таңбалары (separator), идентификаторлар (identifier), түйінді сөздер (keyword) және константалар (constant).

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

Константалар және кез келген айнымалылар бүтін саннан, нақты саннан, символдан немесе сөз тіркесте-рінен құралады.

1. Мәліметтер типтері. Мұнда мәліметтердің бірнеше негізгі типтері қолданылады.

Олар:

· char – символдық, яғни таңбалық тип,

· short – қысқа бүтін сан,

· int – бүтін сан типі,

· long – екі еселенген бүтін сан,

· float – нақты (жылжымалы нүктелі) сан типі,

· double – екі еселенген нақты сан типі.

· unsigned – таңбасыз бүтін сан,

Алғашқы төрт тип бүтін сандарды сипаттау үшін қолданылады. Төмендегі кестеде әр түрлі типтердің IBM PC-ге арналған ұзындықтары көрсетілген.

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

Бірақ оларға мынадай талаптар қойылады:

int > =short; short пен int типтерінің ұзындығы >= 16 бит;

Int типін стандарт бекітпеген, ол компьютерге немесе компиляторға байланысты өзгеріп отырады. 16-разряд-ты процессорде ол 2 байт (32768), ал 32-разрядтысында – 4 байт (2 147 483 647 ).

ТурбоСи-де int = short (32768)

long > = int; long типінің ұзындығы >= 32 бит;

(ТурбоСи-дегі long 2 147 483 647 )

Signed және unsigned модификаторлары да сандар шамасына әсер етеді, олар:

unsigned short int – 2 байт, оның диапазоны 0 ..65536;

unsigned long int – 4 байт, диапазоны 0..+4 294 967 295.

Unsigned типі int, long, short түйінді сөздерімен сипатталатын типтердің модификаторы ретінде қолданылады.

Char типін 0–255 аралығындағы таңбасыз бүтін сан-дарды сипаттауға қолдануға болады, ДК жадында бұларға бір байт орын бөлінген.

Мысалы:

char c1;

char ck=’k’;

Нақты сандар компьютерде 2 бөліктен – дәреже мен мантисса-дан тұрады. IBM-РС компьютерлерінде float типінің ені – 4 байт, оның бір разряды – сан таңбасы, 7 разряды – дәреже, 24 бит – мантисса.

Егер double типі аты алдында long сөзі тұрса, онда оған 10 байт орын беріледі.

Программалау практикасында көбінесе жылжымалы нүктелі нақты (аралас) сандар пайдаланылады.

Double типті сандар екі еселенген дәлдікпен 64 бит арқылы өрнектеледі. Double типінің ені – 8 байт, 1 бит – таңба, 11 бит – дәреже және 52 разряд – мантисса. Мантисса ені – санның дәлдігін, ал дәреже ені – оның диапазонын анықтайды.

Си тілінде объектілердің мәндерін байт арқылы анықтау үшін sizeof стандартты операторы қолданылады.

Мысалы:

printf(“Данные типа double занимают %d байт\n", sizeof(double));

2.Сандар. Сандар мен айнымалылар бүтін және нақты болып екіге бөлінеді.

Бүтін сандар: +4, -100, 15743, 0 , т.с.с.

Дербес ЭЕМ-дер үшін қолданылатын бүтін сандар (ағылшынша іnteger) бұрын -32768 бен +32767 аралығында ғана жазылған еді, қазір компьютер типіне байланысты ол басқаша да бола береді.

Мұнда ондық, сегіздік және он алтылық бүтін сандар да пайдаланылады. Он алтылық сандардың алдына 0х белгісі қойылады. Мысалы, 0хA12 немесе 0х8B2.

Сегіздік сандар алдына 0 қойылады: 0556, 07012, т.с.с.

Нақты сандар (ағылшынша float) кәдімгі табиғи аралас сандар тәрізді санның бүтіні мен бөлшегін нүкте арқылы бөлген күйде жазы-лады.

Мысалы: 2.65, 0.5, -0.862, -6.0.

Ал өте үлкен немесе өте кіші нақты сандар көрсеткіші бар экспоненциал сандар ретінде mЕ±р түрінде жазылады да, олардың диапазоны әлде қайда кең болады, мұндағы m-санның мантиссасы деп аталады, Е-онның дәрежесі дегенді білді-реді, ал р- дәреженің өз мәні.

Мысалы:

1,25•106 1.25Е+6 0,0005 0.5Е-3

-5,2 • 10-12 - 5.2Е-12 -180000 -1.8Е+5

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

Идентификатор – міндетті түрде әріптен басталатын сандар мен әріптердің тізбегі.

Оның ұзындығын өте үлкен етудің қажеті жоқ, өйткені атауларды теру және кейіннен сақтау біраз уақыт керек етеді. Бірақ оларды өте қысқартпай, мағынасына сәкес атау беру қалыптасқан. Мыса-лы: X, x_2, cymka, bec, p23ps6, dt54as, ALFA, baga2, salmak, Omega2, т.с.с.

Бас әріп пен кіші әріп бірдей болып саналмайды.

4. Тұрақты немесе константа деп программаның орындалу барысында мәндері өзгеріссіз қалатын шамаларды айтады.

Тұрақтыға программа басындағы директива арқылы мән берсек те немесе оны программаның сипаттау бөлімінде идентификатор түрінде белгілеп алып мән берсек те болады. Олар сандық, символдық және тіркестік (іnt, float, char, strіng) мәндерді қабылдай алады.

Символдық және тіркестік (строковый – strіng) мәндер үшін орыс, қазақ әріптерін және кез келген символдарды пайдалануға болады. Олар тырнақша ішіндегі таңбалармен жазылады, мысалы: “S=“ , “сумма” , “функцияның мәні”, “y=“ және т.б.

Тұрақтыларды анықтау мысалдары:

  1. Атау арқылы:

const типi тұрақты = мәні

const float m=99999999;

const F=765; // типі int болады

const char s=‘B’; // символдық тип

const Menіng_atjm = “Ақметов Болат” ;

const C=”Turbo С”;

const float Pi = 3.14159;

const float Pi2 =2 * Pi;

Егер const Pi = 3.14159; (типі көрсетілмесе) деп сипаттасақ, онда Pi мәні 3 тең болады

  1. Директива арқылы:

#define тұрақты мәні

#define pi 3.14159 // pi=3.14159 болады

#define EULER 2.718282 // EULER=2.718282

#define директивасының форматы (параметрлері бар макросты анықтаушы)

#define макрос_ идентификаторы(аргументері) алмастыратын_мәтін

Макрос идентификаторы мен аргументтер арасында бос орын болмау керек. Макросты шақыруды келесі өрнекпен орындауға болады:

макрос_идентификаторы(аргументтер)

Мысалы: #define CIRC(x) (3.14159 * (х) * (х)) макорсы шеңбер ауданын есептеуге мүмкіндік береді.

Егер программада S = CIRC(4); операторы кездессе, онда аргументі тұрақты болғандықтан (3.14159 * (4) * (4) ) өрнек мәні компиляция кезінде есептеліп S-ке меншіктеледі.

Егер макросты шақыру келесі түрде жазылса

S = CIRC(a + b);

Онда макрос кеңейтілгеннен кейін мәтін түрі:

S = (3.14159* (a+b) * (а + b) ) ; болады.

Макрос аргументі айнымалы болғантықтан өрнек мәні компиляция кезінде емес программа орындалған уақытта есептеледі.

Егер макросты жақша қоймай сипаттасақ онда келесі өрнек есепетеледіде 3.14159 * а + b * а + b нәтижесі қате болады.

Екінші мысал, эллипс ауданын есептеу:

#define Еll(х,у) (3.14159 * (х) * (у))

Макросты шақыру келесі түрде жазылуы мүмкін:

S = Ell(Rl, R2);

Есептеулердің алынған нәтижелеріне қарағанда макростар функцияларға эквивалентті . Мысалы , шеңбер ауданын есептеу функциясын келесі формаға келтіруге болады :

double circ(double x)

{ return 3.14159 * х * х;

}

Және оны шақыру операторы:

S = circ(a + b);

Егер макросты шақыру операторы келесі түре болса S = circ(а++);

S = (3.14159 * (а++) * (а++)); онда шеңбер ауданы дұрыс есептелінеде, ал а-ның мәні 1 орнына 2 тең болады.

Егер шеңбер радиусын 1 өсіріп алып ауданын есептемек болсақ макросты келесі түре шақырғанда S = circ(++a); макрос келесі түрде кеңейтіледіде

S=(3.14159 *(++а)*(++а));

радиусы екі рет 1-ге өседіде келесі нәтижеге әкеледі S = (3.14159 * (а + 1) * (а + 2) ) ;

Егер макрос орнына жоғрыда келтірілген функцияны қолдансақ, мұндай эффекттер болдмайды.

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

Олар идентификаторлармен белгіленіп, әр уақытта әр түрлі мәнге ие бола алады. Айнымалылардың белгіленулері: alfa, y, x_3, summa, baga, a1b8, т.с.с. Айнымалы атауы оның орындайтын міндетіне сәйкес, түсінікті және қарапайым болғаны жөн. Айныма-лыларды сипаттау оларды пайдалану алдында кез келген жерде орналасады да, алдында олардың типі көрсетіледі.

Оның жазылу форматы:

<тип> <идентификатор1>, ...,<идентификаторN> ;

Мысалы:

іnt a, b=5, d, D;

float c, alfa=2.15, b4=1.336e2;

char symbol, cc;

string coz, coilem;

Айнымалыларды сипттау үшін алдында сипатталған тұрақтылар мен мәні анықталған айнымалыларды қолануға болды: int xl = 1, х2 = 2 * xl;

Айнымалыларды жариялау бөлек оператор болуы мүмкін немесе ол кейбір операторлар ішінде істелінеді , мысалы , цикл операторында :

for ( int i = 0; i < 10; i++)

Сипаттау кезінде бірден бастапқы мән меншіктеуге болады, оны айнымалыны инициалдау дейді. Си тілі-нде символдық тіркестерді сипаттау үшін арнайы тип жоқ, олар көбінесе char типтегі элементтерден тұра-тын массив (жиым) ретінде қарастырылады. Жолдық немесе тіркестік символдар ЭЕМ жадында көршілес ұяшықтарда сақталады да, олардың соңында ‘\0’ символы тұрады. Символдар қатарының ұзындығын анықтау үшін strlen сөзі қолданылады.

char m1[]=”Таңбалар жолы”;

char m[44]=”Только ограничтесь одной строкой”;

Сілемді жариялау үшін сілем атынан кейін квадраттарды жақшаларда элементтердің саны көрсетіледі.

Мысалы,

float mas[20];

Арифметикалық немесе логикалық амалдар таңбасымен біріктірілген айнымалылар, атаулар, функциялар, жиымдар (массивтер) тізбегі өрнек деп аталады.

Математикадағы формулалар, арифметикалық өрнектер, алгебрадағы көпмүшеліктер программалау тілінде тек осы өрнек ұғымы арқылы беріледі.

Программалау тілінің белгілі бір іс-әрекетті орындай алатын тиянақты мағынасы бар ең қарапайым сөйлемі оператор деп аталады.[kgl]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]