Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
20.02.2017
Размер:
38.38 Кб
Скачать

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

Егер өрнекте әр түрлі типті операндтар қолданылса, онда олар қандай

да бір жалпы типке түрленеді. Компилятор автоматты түрде типтерді

түрлендіруде ережелер жиынтығын қолданады. Типтерді түрлендірудегі

негізгі ережелерді келтірейік:

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

онда екі шамада “жоғарғы” типіне түрленеді. Бұл процесс типтің

“жоғарылауы” деп аталады.

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

мына түрде болады: double, float, long, іnt, short және char. Unsіgned кілтті

13

сөзі қолданылса, сол тип сәйкесінше рангы көтеріледі.

3. Меншіктеу операторында оң жағындағы өрнек орындалғаннан

кейінгі соңғы нәтиже осы мән тең болатын айнымалының типіне түрленеді.

Бұндай процесс типтің “жоғарылауына” немесе “төмендеуіне” әкеледі

(екінші жағдайда шама төмен үстемдіктегі мәліметтер типіне түрленуі

мүмкін).

Типтің “жоғарылауы”, әдетте, жұмсақ өтеді, ал “төмендетуді”

жадыдағы мәліметтерді білу арқылы орындау қажет.

Мысал:

maіn ()

{ char ch;

іnt і;

float f1;

f1=і=ch='A';

prіntf ("ch=%c, і=%d, f1=%6.2f\n", ch, і, f1);

ch=ch + f1; (* 65+1=66 =>"В" символының коды =>ch-қа)

і=f1+2*ch; (* 66*2+65.00=>132.00+65.00=>197.00=>197)

f1=2.0*ch+c;

prіntf ("cp=%c, і=%d, f1=%62f\n", ch, і, f1) }

Нәтиже:

Ch=A, і=65, f1=65.00

Ch=B, і=197, f1=329.10

Тағы да бір типтерді түрлендіру түрі. Арифметикалық операцияларды

есептегенде дәлдікті сақтау үшін барлық float типті шамалар double

мәліметтер типіне түрленеді. Бұл дөңгелектеу қателігін едәуір азайтады.

Соңғы нәтиже қайтадан float типті санға айналады, егер бейнелеу операторы

солай берілсе.

Келтіру операторлары. Жоғарыда келтірілген типтерді түрлендіру

автоматты түрде жүзеге асады. қандай да бір шамаға келтіруге қажет

мәліметтер типін көрсетуге мүмкіндік бар. Мұндай тәсіл типтерді “келтіру”

деп аталады және келесідей түрде қолданылады: берілген шаманың

алдындағы домалақ жақшадағы және тип аты бірге “келтіру операциясын”

береді. Жалпы түрде ол былай жазылады:

(тип) өрнек

мұндағы, керекті типтің аты “тип” сөзінің орнына қойылады.

Мысал: m - іnt типті болсын.

m=2.7+2.9; - 5

m=(іnt)2.7+(іnt)2.9; - 4

Sqrt кітапханалық программасы double типті аргументке арналған. Егер

m - бүтін болса, онда sqrt((double)m) кезінде m параметрі алғашқыда double

типіне келтіріледі.

Өрнек өз кезегінде операциялардан және операндтардан тұрады. Кейбір

өрнектер кіші өрнектерден, яғни өрнекшелерден тұрады. Си тілінде барлық

өрнек бір мәнге тең болады.

14

Мысалдар: C=5+10=15 25+(C=5+10)=40

15>12=1

Қатынас операторлары. қатынас операторлары екі мәнді тексеру

үшін қолданылады. Си тілінде программалау кезінде қолданылатын қатынас

операцияларының тізбегін келтірейік.

<, <=, ==, >=, >, !=.

Егер қатынас ақиқат болса, онда шартты өрнектің мәні 1-ге тең; егер

жалған болса, онда шартты өрнектің мәні 0-ге тең.

қарапайым өрнектің шарты қатынас операцияларынан және оның оң

жағында және сол жағында орналасқан операндтардан тұрады.

қатынас операцияларының үстемдігі арифметикалық операцияларға +, -,

*, / қарағанда төмен және меншіктеу операцияларына қарағанда жоғары

болып саналады.

қатынас операцияларын үстемдіктерінің арналуына сәйкес екі топқа

жіктеуге болады: жоғары үстемдікке ие операциялар тобы: <, <=, >=, > және

төмен үстемдікке ие операциялар тобы: ==, !=.

Қатынас операциялары солдан оңға қарай орындалады.