53
Дӛңгелек жақшаға алынған кез келген меншіктеу операторы анықталған
мәні бар ӛрнек болып табылады, мысалы:((s=13+12)<=30) деген ӛрнек
ақиқат мәнді болып табылады.
Арттыру немесе кеміту (инкремент және декремент) операциялары ++
және -- тҥрінде жазылады. Бҧлар кез келген операндтың мәндерін бірге
арттыруға немесе кемітуге мҥмкіндік береді.
Инкремент, яғни арттыру операциясы (++) және декремент (--), кеміту
операциясы айнымалы (тек айнымалы мәнін) мәнін бірге арттырады немесе
кемітеді. Олар айнымалы мәнін ӛзгертеді, яғни жасырын тҥрдегі меншіктеу
амалы болып табылады. Кейде олар жеке оператор тҥрінде жазылады:
i++; немесе ++i;
Бҧл екеуі де мынадай амалмен бірдей болып саналады:
i = i + 1;
Бҧл екеуін ӛрнектерде жиі қолданады. Мысалы:
sum = sum + х * --i;
Инкремент пен декремент екі формада жазылады: префикстік және пост-
фикстік. Постфикстік арттыру былай жазылады: х++, ал префикстік арттыру
былай жазылады: ++х. Префикстік амалдар негізгі операция алдында, ал
постфикстік амалдар негізгі амалдан кейін орындалады.
Постфикстік формада х айнымалысының мәні оны қолданғаннан кейін ӛз-
гереді, ал префикстік формада – айнымалы мәні оны қолданғанға дейін ӛзге-
реді, яғни бір деген санға артады. Мысалы:
k=10;
x=k++; /* x=10 k=11 */
x=++k; /* x=12 k=12 */
Арттыру/кеміту операцияларын ӛрнек ішінде де орындау мҥмкіндігі бар.
Мысалы:
sum=a+b++; /*алдымен a,b қосылады, сонан соң b 1-ге артады */
sum=a+ ++b; /*алдымен b 1-ге артады, сосын барып a,b қосылады */
Арттыру/кеміту операцияларының приоритеттері ӛте жоғары, тек жақша
ішіндегі операциялардың приоритеті олардан жоғары болады.
Құрама оператор бірнеше операторды жҥйелік жақшаға алып біріктіру
ҥшін қолданылады. Ол шартты және циклдік операторларда жиі қолданылады.
Мысалы:
#include
#include
main()
{
int a = 5, b = 6, c = 7, d;
clrscr();
d = (a++ - (--b)) + (c - a--); //d=2 a=5
printf("d=%i a=%d",d,a);
getch();
}
54
3.2 Типтерді түрлендіру
Егер ӛрнекте әртҥрлі типтегі сандар мен айнымалылар қолданылса, онда
олар жалпы бір типке тҥрлендіріледі. Біз қарастырған барлық негізгі типтер
ішінде тӛменнен жоғары қарай бағытталған тҥрлендірілу реттілігі бар. Егер
оларды оңған солға қарай реттеп орналастырсақ, мынадай болып шығады:
char
short
int
long
float
double
Оң жақтағылары сол жақтағылардан гӛрі жоғары дәрежелі болып табылады.
Егер char мен short типтері араласса, нәтижесі – short болады;
short пен int типтері араласса, нәтижесі int болады;
int пен long типтері араласса, нәтижесі long;
long пен float типтері араласса, нәтижесі float;
float пен double типтері араласса, нәтижесі double болады.
Егер екі-ҥш тип араласып, ең ҥлкен дәрежелісі float болса, әрқайсысы да
және нәтижесі де осыған келтіріледі.
Компилятор типтерді автоматты тҥрде тҥрлендіру ҥшін тӛмендегі негізгі
ережелер жиынын пайдаланады:
2. Егер операция екі тҥрлі типтегі мәліметтер ҥшін орындалатын болса, онда
олар осы мәліметтер типтерінің арасындағы ―жоғарғы‖ типке келтіріледі.
3. ―Жоғары‖ типтен бастап, ―тӛмен‖ типке дейін реттелген типтер
аттарының тізбегі келесідей тҥрде кӛрсетіледі:
double
float
long
int
short
char
Меншіктеу операторында оң жақта орналасқан ӛрнектің есептелген нәтижесі
осы оператордың сол жағына жазылған айнымалының типіне келтіріледі.
Осындай процесс типтің ―жоғарысына‖ немесе ―тӛменіне‖ келтірілуі мҥмкін.
Мысалы:
#include
#include
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
55
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-ші опера-
циялар приоритетімен салыстырғанда жоғары болады.
Достарыңызбен бөлісу: |