3. Float және double жылжымалы нүктелі нақты сандар типтері Нақты сандар компьютерде 2 бөліктен – дәреже мен мантиссадан тұрады. IBM-РС компьютерлерінде float типінің ені – 4 байт, оның бір разряды – сан таңбасы, 7 разряды – дәреже, 24 бит3 – мантисса.
Егер double типі аты алдында long сөзі тұрса, онда оған 10 байт орын беріледі.
Программалау практикасында көбінесе жылжымалы нүктелі нақты (аралас) сандар пайдаланылады.
Double типті сандар екі еселенген дәлдікпен 64 бит арқылы өрнектеледі. Double типінің ені – 8 байт, 1 бит – таңба, 11 бит – дәреже және 52 разряд – мантисса. Мантисса ені – санның дәлдігін, ал дәреже ені – оның диапазонын анықтайды.
Кейбір ЭЕМ-дерде мантисса үшін қосымша 32 бит беріледі де, санның дәлдігі артады. Ал кейде санның таңбасы мен дәрежесі үшін 32 бит беріліп, ол санның кескінделу диапазонын арттырады.
Мысалдар:
float s1, s2;
float sum=1.5;
Си тілінде объектілердің мәндерін байт арқылы анықтау үшін sizeof стандартты операторы қолданылады. Мысалы:
printf(“Данные типа double занимают %d байт\n", sizeof(double)); Символдық жолдар (қатарлар) Си тілінде символдық тіркестерді сипаттау үшін арнайы тип жоқ, олар көбінесе char типтегі элементтерден тұратын массив (жиым) ретінде қарастырылады. Жолдық немесе тіркестік символдар ЭЕМ жадында көршілес ұяшықтарда сақталады да, олардың соңында ‘\o’ символы тұрады. Символдар қатарының ұзындығын анықтау үшін strlen сөзі қолданылады.
#define – символдарды немесе солардан тұратын константаларды анықтау мақсатында қолданылады. Мысалы:
#define NULL ‘/o’
#define IZBAT “наука”
Нысандарды мәлімдеу (декларациялау) Си тіліндегі барлық мәліметтер алдын-ала мәлімденеді (декларацияланады). Мәлімдеу кезеңінде нысаналарға бастапқы мән беруге (инициалдауға) болады.
Мысалы: int j=10, m=3, n;
float c=-1.3, l=-10.23, n;
Си тілінде нысандардың декларациялау кезінде қолданылатын идентификаторлары арап цифрларынан (0-9) латын әріптерінен(a...z), астын сызу символынан құралады. (_). Идентификатордың бірінші символы сан болмайды.
Мысалы: const float t=3.1415926;
float pi=3.14;
Идентификатордың ұзындығы қолданылатын транслятор мен байланыстар редакторына (компоновщик) байланысты болады.
Нысандардың идентификаторына қолданылатын ажыратушылар:
- бос орындар;
- табуляциялау, жолға және бетке көшу символдары;
- түсініктемелер.
Түсініктемелер (комментарий) - /* және */ символдарының арасында орналасқан кезкелген символдар тізбегі немесе // қос символынан бастап жолдың соңына дейін орналасқан символдар тізбегі.