Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
texpr_wpor.docx
Скачиваний:
20
Добавлен:
13.03.2015
Размер:
113.63 Кб
Скачать

Си тіліндегі арифметикалық арттыру және азайту операциялары

Арттыру жєне азайту операциялары: ++ жєне - -.

Б±л операциялар кез келген операторѓа 1-ді ќосуѓа немесе азайтуѓа м‰мкіндік береді. Кµрсетілген операциялардыњ екі формасын ажыратады, постфикстік жєне префикстік. Олар µз арасында тек ќай кезде арттыру немесе азайту болатынына байланысты ажыратылады. Арттыру жєне азайту операциялары µрнектіњ ортасындада орындалуы м‰мкін, жєне де осы операциялар µрнек есептелгеннен кейін де, есептелмей т±рып та орындалуы м‰мкін. Мысал ќарастырайыќ:

Мысал: L=10 болсын;

онда, х=L++; x айнымалысына 10 мєнін меншіктеу болады.

х=++b; x айнымалысына 11 мєнін меншіктеу.

Екі жаѓдайда да L 11-ге тењ болады.

2-мысал:

Sum=a+b++;

Sum=a+ ++b;

b++ - постфикстік т‰р: b айнымалысы оныњ мєні ќолданылѓаннан кейін µзгереді. ++b - префикстік т‰р: b айнымалысы оныњ мєні ќолданылмай т±рып µзгереді.

Бірінші жаѓдайда: “a жєне b-ны ќосу, нєтижесін sum-ѓа меншіктеу жєне b айнымалысын бірге арттыру”.

Екінші жаѓдайда: “b айнымалысын бірге арттыру, a жєне b-ны ќосу, жєне нєтижесін sum-ѓа меншіктеу”.

Мысал

{ maіn()

іnt a, b, s=0;

a=b=g;

s=a+b++;

prіntf("%d %d\n", s, b)

s=a+ ++b;

prіntf("%d %d\n", s, b)

}

Азайту жєне арттыру операциялары жоѓарѓы ‰стемдікке ие, тек домалаќ жаќшалардыњ ‰стемдігі жоѓарыраќ.

Си тілінде типтерді түрлендіру

Егер µрнекте єр т‰рлі типті операндтар ќолданылса, онда олар ќандай да бір жалпы типке т‰рленеді. Компилятор автоматты т‰рде типтерді т‰рлендіруде ережелер жиынтыѓын ќолданады. Типтерді т‰рлендірудегі негізгі ережелерді келтірейік:

1.Егер операция екі єр т‰рлі типтер мєліметтері бойынша орындалса, онда екі шамада “жоѓарѓы” типіне т‰рленеді. Б±л процесс типтіњ “жоѓарылауы” деп аталады.

2.“Жоѓары” типтен “тµменгі” типке дейінгі реттелген типтер тізбегі мына т‰рде болады: double, float, long, іnt, short жєне char. Unsіgned кілтті сµзі ќолданылса, сол тип сєйкесінше рангы кµтеріледі.

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 типті санѓа айналады, егер бейнелеу операторы солай берілсе.

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