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

3.2. Типтерді түрлендіру

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

char  short  int  long  float  double

Оң жақтағылары сол жақтағылардан гөрі жоғары дәрежелі болып табылады.

Егер char мен short типтері араласса, нәтижесі – chort болады,

ал short пен int типтері араласса, нәтижесі – int болады,

ал int пен long типтері араласса, нәтижесі long,

ал long пен float типтері араласса, нәтижесі float,

ал float пен double типтері араласса, нәтижесі double болады.

Егер екі-үш тип араласып, ең үлкен дәрежелісі – float болса, әрқайсы­сы да және нәтиже де осыған келтіріледі.

Компилятор типтерді автоматты түрде түрлендіру үшін төмендегі негізгі ережелер жиынын пайдаланады:

  1. Егер операция екі түрлі типтегі мәліметтер үшін орындалатын болса, онда олар осы мәліметтер типтерінің арасындағы “жоғарғы” типке келтіріледі.

  2. “Жоғары” типтен бастап, “төмен” типке дейін реттелген типтер аттарының тізбегі келесідей түрде көрсетіледі:

d ouble

float

long

int

short

char

Меншіктеу операторында оң жақта орналасқан өрнектің есептелген нәтижесі осы оператордың сол жағына жазылған айнымалының типіне келтіріледі. Осындай процесс типтің “жоғарысына” немесе “төменіне” келтірілуі мүмкін.

Мысалы:

#include <stdio.h>

#include <conio.h>

main ()

{

char ch;

Int I; float fl;

fl=i=ch='A';

printf("ch=%c i=%d fl=%6.2f\n",ch,i,fl);

// ch=A i=65 fl= 65.00

ch=ch+1; // ch=66

i=fl+2*ch; // i=65.00+2*66=197

fl=2.0*ch+1; // fl=2*66+1=133

printf("ch=%c i=%d fl=%6.2f\n",ch,i,fl);}

// ch=B i=197 fl=133.00

Келтіру операциясы. Жоғарыда көрсетілген типтердің түрлендірілуі автоматты түрде орындалады. Мәліметтердің көрсетілген қажетті типіне келтіру үшін Си тілінде арнайы бір тәсіл бар. Бұл тәсілде типтерді бірыңғайлау үшін, айнымалының алдында дөңге­лек жақшада қажетті тип­тің аты жазылады. Жалпы түрге келтіру операциясы мынадай болып жазылады: (тип)өрнек. Мысалы:

int m;

float x,y;

y=pow(x,2)+sqrt((double)m);

3.3. Программа жұмысын басқару операторлары

Программа жұмысын басқару операторлары программаның басқарушы конструкциясы деп аталады. Олар:

  • құрама операторлар;

  • таңдау операторлары;

  • цикл операторлары;

  • көшу операторы.

Құрама операторларға жай құрама операторлар және блоктар жатады. Екеуі де жүйелі жақшаға алынып жазылады. Блокта жай құрама операторларға қарағанда, айнымалыларды сипаттау жолдары болады. Мысалы:

{ n++; жай құрама оператор

summa+=n;

}

{

int n=0;

n++; бұл блок

summa+=n;

}

Қатынас операциялары. Қатынас операциялары екі мәнді салыстыру үшін қолданылады. Си тіліндегі қатынас операциясының тізбегі мынадай: ==, !=, <, <=, >, >= .

Егер қарастырылатын қатынас нәтижесі ақиқат болса, шарттық өрнектің мәні 1-ге тең болып саналады. Егер ол жалған болса, шарттық өрнек мәні 0-ге тең болады. Қатынас операциясының приоритеті арифметикалық операция­лар­ға қарағанда, төмен және меншіктеу операторымен салыстырғанда жоға­ры болады. Ал қатынас операцияларын приоритет­теріне сәйкес етіп екі топқа бөлуге болады. Мұнда соңғы 4 операция­ның приоритеті 1-ші және 2-ші опе­ра­циялар приоритетімен салыстыр­ғанда жоғары болады.

Логикалық оператор. Екі немесе бірнеше шарттық өрнектерді біріктіру үшін логикалық оператор қолданылады. Си тілінде келесі логикалық опе­ра­торлар бар:

    1. және (&&) операциясы; f1 && f2

    2. немесе (or) операциясы; f1 f2 ( | коды - 124 )

  1. терістеу ! (not) операциясы. !f1

Терістеу (емес, қарсылық) операциясының приоритеті өте жоғары, одан тек жақша ішіндегі мәндердің проритеті жоғарылау болады. && операциясы­ның приоритеті | | (or) операциясымен салыстырғанда жоға­ры, ал осы екеуі­нің приоритеттері қатынас операцияларымен салыстыр­ғанда төмен, меншік­теу операциясынан жоғары болады.

Таңдау операторлары – бұлар шартты оператор және ауыстырғыш.