- •Жалпы мәліметтер
- •Си программалау тілі элементтері
- •Си тілінің әліпбиі (алфавит)
- •Препроцессор директивалары
- •Си тіліндегі программаның құрылымы
- •Меншіктеу операциясы.
- •С тіліндегі енгізу-шығару құралдары
- •С тілінде форматтап енгізу және шығару
- •Istream - енгізу құралдары;
- •Iostream - енгізу-шығару құралдары.
Меншіктеу операциясы.
Меншіктеу операциясынан сол жақ операндасына сәйкес тек модификацияланған мәндер қолданылады (l-мән), сонымен қатар мәндерін өзгертуге болатын кейбір аталған жады облыстарына ссылкалар қолданылуы мүмкін.
Меншіктеу операцияларын жіктей отырып меншіктеу операцияларынң қарапайым және күрделі операциялары бар екенін айта кетейік.
= - қарапайым меншіктеу: операнда өрнегінің мәнінін белгісін операнданың оң жақ бөлінен сол жақ бөлігіне меншіктейді. Мысалы: P=10.3-2*x
*= - көбейтуден кейінгі меншіктеу: сол жақ бөліктін операндасын меншіктейді. Мысалы: P*=2 өрнегі P=P*2 өрнегіне эквивалентті.
/= -бөлуден кейінгі меншіктеу: сол жақ бөліктегі операнданы меншіктеу. Мысалы:P/=2.2-d өрнегі P=P/(2.2-d) өрнегіне эквивалентті.
%= -модуль бойынша бөлуден кейінгі меншіктеу: сол жақ бөліктегі операнданы меншіктеу. Оның қалдық бөлігін бүтін санды бөлудегі мәнін операнда мәніне меншіктеу. Мысалы: N%=3 өрнегі N=N%3 өрнегіне эквивалентті.
+= - қосындыдан кейінгі меншіктеу: екі операндалар қосындысың мәндерін операнданың сол жақ бөлігіне меншіктеу. Мысал: A+=B өрнегі A=A+B өрнегіне эквивалентті.
-= - алу амалынан кейінгі меншіктеу: со жақ және оң жақ мәндерінің алымдарын операнданың сол жақ бөлігіне меншіктеу. Мысал: Х=4.3-z өрнегі X=X-(4.3-z) өрнегіне эквивалентті.
<<= - разрядтардың солға жылжуынан кейінгі меншіктеу: сол жақ бөліктегі поерандалардың бүтін санды мәніне разряд санына байланысты биттік бейнелеудің соға қарай жылжуынан алынған мәнді меншіктеу. Ол бүтін санды операнданың оң жақ бөлігіндегі мәнге тең болады. Мысалы: a<<=4 өрнегі a=a<<4 өрнегіне эквивалентті.
>>= - разрядтардың оңға жылжуынан кейінгі меншіктеу: сол жақ бөліктегі поерандалардың бүтін санды мәніне разряд санына байланысты биттік бейнелеудің оңға қарай жылжуынан алынған мәнді меншіктеу. Ол бүтін санды операнданың оң жақ бөлігіндегі мәнге тең болады. Мысалы: a>>=4 өрнегі a=a>>4 өрнегіне эквивалентті.
&= - поразрядты конъюкциядан кейінгі меншіктеу: сол жақ бөліктегі бүтін санды операнда мәніне поразрядты конъюкциядан және биттік бейнелеуіндегі бүтін санды операнданың оң жақ бөлігін меншіктеу. Мысалы: e&=44 өрнегі e=e&44 өрнегіне эквивалентті.
|= - поразрядты дизъюнкциядан (НЕМЕСЕ) кейінгі меншіктеу: сол жақ бөліктегі бүтін санды операнда мәніне поразрядты дизъюнкциядан және биттік бейнелеуіндегі бүтін санды операнданың оң жақ бөлігін меншіктеу. Мысалы:a|=b өрнегі a=a|b өрнегіне эквивалентті.
^= - ерекше поразрядты дизъюнкциядан кейінгі меншіктеу: сол жақ бөліктегі бүтін санды операндаға ерекше поразрядты операциясын екі операнда мәнінің биттік бейнелеуінен алынған мәнді меншіктеу. Мысалы: z^=x+y өрнегі z=z^(x+y) өрнегіне эквивалентті.
Меншіктеу операциясының екі түрлі жазылуы бар:
Толық формасы:
айнымалы_аты =өрнек;
Алдымен өрнек есептеледі, содан кейін оның нәтижесі айнымалы_аты –на меншіктеледі. Мысалы: y=(x+2)/(3*x)-5;
Бір оператордың көмегімен бір мәнді бірнеше айнымалыға меншіктеуге болады, мысалы: x=y=z=0; /* x, y, z=0 */
немесе z=(x=y)*5; - алдымен x айнымалысына y айнымалысының мәні меншіктеледі, одан кейін x*5 өрнегі есептеледі, одан кейін нәтиже z айнымалысына меншіктеледі.
Қысқа форма:
айнымалы_аты операция =өрнек;
мұнда операция – (+ , -, *, /, %) арфметикалық операцияларының біреуі;
Мысалы: x*=5; /* x=x*5; */
s+=7; /* s=s+7; */
y/=x+3; /* y=y/(x+3); */
Қысқа форма айнымалы осы оператордың толық формасының екі жағында да кездескен жағдайда қолданылады..
С тілінде айнымалының мәнін 1-ге азайту (--) және арттыру (++) операциялары бар. Операциялар префикстік (++i және --i) және постфикстік (i++ и i--) болуы мүмкін. Бұл операцияны өрнектерде қолданған кезде, егер операция префикстік болса, онда операция бірінші орындалады (i-дің мәні өзгертіледі), содан кейін барып қана өрнек есептеледі. постфикстік операцияны қолданған кезде операция өрнек есептелгеннен кейін ғана қолданылады.
Мысалы: b=7;
n=1;
1. c=b*++n; /* n=n+1; c=b*n; яғни c=14 */
2. c=b*n++; /* c=b*n; n=n+1; яғни c=7 */
