Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дәріс.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
49 Кб
Скачать
☆

Меншіктеу операциясы.

Меншіктеу операциясынан сол жақ операндасына сәйкес тек модификацияланған мәндер қолданылады (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) өрнегіне эквивалентті.

Меншіктеу операциясының екі түрлі жазылуы бар:

  1. Толық формасы:

айнымалы_аты =өрнек;

Алдымен өрнек есептеледі, содан кейін оның нәтижесі айнымалы_аты –на меншіктеледі. Мысалы: y=(x+2)/(3*x)-5;

Бір оператордың көмегімен бір мәнді бірнеше айнымалыға меншіктеуге болады, мысалы: x=y=z=0; /* x, y, z=0 */

немесе z=(x=y)*5; - алдымен x айнымалысына y айнымалысының мәні меншіктеледі, одан кейін x*5 өрнегі есептеледі, одан кейін нәтиже z айнымалысына меншіктеледі.

  1. Қысқа форма:

айнымалы_аты операция =өрнек;

мұнда операция – (+ , -, *, /, %) арфметикалық операцияларының біреуі;

Мысалы: 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 */

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