С++ тіліндегі әртүрлі операциялар


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 31 бет
Таңдаулыға:
Кіріспе1
I. Унарлы операция7
1. 1. Адрестік операциялар9
1. 2. Белгіні өзгерту операциясы10
1. 3. Биттік операция11
1. 4. Көлемін анықтау операциясы11
1. 5. Операция арттыру және азайту12
1. 6. Жадты динамикалық реттеу операциясы13
1. 7. Қол жеткізу (доступ) операциясы14
II. Бинарлы операция14
2. 1. Аддитивті(қолданбалы) операция15
2. 2. Мультипликативті операция16
2. 3. Жылжыту операциясы16
2. 4. Разрядтік операциялар17
2. 5. Салыстыру(қатынас) операциясы19
2. 6. Логикалық бинарлы операциялар20
2. 7. Меншіктеу операциясы20
2. 8. Меншіктеу операциялардың арнайы формалары21
2. 9. Құрылымдалған объектінің компоненттерін таңдау операциясы24
2. 10. Класс компоненттеріне жүгіну операциясы24
2. 11. Мәндерін есептеу процессін басқару, рет-ретімен есептеу операциясы25
2. 12. Функция шақыру операциясы25
2. 13. Типті анық түрлендіретін операциясы26
2. 14. Индексация операциясы27
III. Үш операнды бар операция27
Қорытынды28
Қолданылған әдебиеттер30
КіріспеКомпьютер эрасының барысында есептеу машинасының құлы болған етін. Сол кездердегі бағдарлама құрушылар өздерінің командаларын тек қана бір тілде жазуға мәжбүр болды, яғни тек қана екілік код түрінде жазды, сонымен бағдарламашылар нөл мен бірліктің ізбасары ретінде көрінді. Уақыт өте келе алгоритмдер де күрделіне түсті, сонымен бірге бағдарламалауға көп көңіл бөлу қажет болды. Осылайша көптеген қиыншылықтарды бастан кешіре келе өмірге Фортран, Бейсик, Паскаль сияқты әйгілі, жоғары сатылы тілдер пайда болды.
XXI - ғасыр адамзат дамуының жаңа сатысы - ақпаратты қоғамға өтумен сипатталады.
Қазіргі ақпарат заманында информация ағымын компьютер информацияны жеделдетіп өңдеудің негізгі құралы болып табылады. Инженерлік - техникалық, экономикалық есептерді шешу және мәліметтерді компьютер арқылы автоматтандырып өңдеу мықты программаларды талап етеді.
70-80 жылдары жаңа программалау тілдерінің стандарты болып бекітілген, үлкен қуатты иеленетін, эффективті және бейімді атағына ие болған С тілі пайда болған. Бұл тіл ең жоғарғы сатыдағы және компьютерде жұмыс істеуге өте тиімді тіл болып табылды.
1983 жылы жақсартылған С тілінің жаңа версиясы С++ әлемге келді. Сол уақыттан бастап тілдің қарқынды дамуы басталды. Бірнеше жылдардан өте ол қазіргі біздің кең пайдаланатын тіліне айналды.
С++ тілмен жұмыс істейтін көптеген әйгілі платформалар бар: Microsoft C++ (Dos, Windows), Borland, Visual C++ (Windows), GNUC++ (Linux), Xcode (iMac) .
Адамның қызметінің әр түрлі салаларында программаларды қолдану - бағдарламалық қамтамасыз етуді қажет етеді.
Құралды тіл ретінде С++-ті қолдану компактлі программаларды тезірек алуды қажет етеді. Көптеген жағдайда С++ тілінде жазылған программа ассемблер тілінде программа жылдамдығымен салыстырылады, яғни С++ есептеу операциялары тез орындалады. Оның ерекшеліктері:
- құрылымдық программалауда операторлардың толық жиынтығын қамтамасыз етеді;
- операциялардың үйреншіксіз үлкен жиынтығын ұсынады, операциялар машиналық кодқа сәйкес келеді, яғни бірден тура трансляцияға жібереді;
- операциялардың көп түрлілігі нәтижелік кодтың минимизациясына қажетті әртүрлі жиынтықтарды таңдауға мүмкіндік береді;
- айнымалылар мен функциялардың орындалуын қолдайды. Программа объектісіндегі көрсеткіш осы объектінің машиналық адресіне сәйкес келеді. Көрсеткіштерді біртіндеп қолдануды эффективті орындалатын программалар ретінде жүргізуге болады, яғни көрсеткіштер объектіде ЭЕМ істелінетін ең тиімді жолмен жүзеге асырылады. С++ арифметикалық көрсеткіштерді де қолдайды, сонымен бірге сақтаудың адресімен жеткіліксіз өлшемдер мен манипуляәиялауға мүмкіндік береді.
С++ тілін енгізу және оның кеңінен таралуы программалауды дамытуға маңызды кезең болып табылады. Бұл «процедуралық-белгіленген тіл», жүйелік және қолданбалы программаларды жазу үшін қажетті жалпыға бірдей белгіленген стандартты сақтай отырып, программамен қамтамасыздандыру жоспарында жаңа технологиялық қадамдарға мүмкіндігі бар программалау практикасына енген және «объектілі-белгіленген программалау» деген атау алған.
Объектілі-белгіленген парадигманың программалау практикасына енуі информатика дамуының жаңа аймағын, таңдалған программаның технологиялық деңгейінің жоғарлауын, программаны жоспарлауда, орындауда, және қайта колдануда шығынды азайтуды, ЭЕМ мүмкіндіктерінің интеллектуалды кеңеюін береді.
С++ - бұл жалпыға белгіленген, өзінің эффективтілігімен, тиімділігімен және ауыспалығымен жақсы танымал программалау тілі. Оның көрсетілген дәрежелері тіпті программалық шығымның кез келген түрін жоспарлаудың жақсы сапасын қамтамасыз етеді.
С++ тілі BCPL және B тілдердің негізінде құралған Си тілінен дамыған. BCPL тілі компилятордан жазуға және операциялық жүйені бағдарламамен қамтамасыз етуге арналған. Бұл тілді 1967 жылы Мартин Ричард ойлап тапқан. Кен Томпсон B тілінің көптеген мүмкіндіктерін BCPL дубликатында және В тілін UNIX операциялық жүйелерінің алғашқы версияларын құру үшін 1970 жылы Bell laboratories-те DEC PDP-7 компютерінде қолданылды. BCPL және B тілдердің қолданылуы тиімсіз болды. Онда мәліметтің әрбір элементі жадыда бір сөздің орнын алады және мәлімет элементтерін өңдеуде ауыртпалығын тигізеді.
1980 жылы Бьерн Строустроп С++ бағдарламалау тілін әлемге танытқан. Си тілінің бірқатар қасиеттерін реттеуді қамтамасыз етеді және ең маңыздысы объектіге-бағытталған бағдарламалық мүмкіндік береді. Бұл бағдарламалық тіл әлемде революциялық идея танытты.
С++ тілінде объектілерге әртүрлі операциялар қолданылуы мүмкін:
- меншіктеу операциясы;
- қарым-қатынас операциясы;
- арифметикалық;
- логикалық;
- ығысу операциясы.
Бұл операциялардың орындалу нәтижесі - сан.
Операциялардың үш түрі бар: унарлы, бинарлы, тернарлы.
Унарлы бір, бинарлы екі, ал унарлы үш объектіге немесе операндқа қолданылады. Тернарлы операция - шартты.
Операцияның ішінде қолданылатын белгілер - операнд деп аталады.
Операцияларды өспелі тізбек ретінде қарастырамыз: ең кішіден, ең үлкенге.
Сонымен, С++ тілінде әр операциялардың орындалу реті бар. Оны тағы басқаша, приоритет деп атайды. Ол операциялардың өзінен кейін басқа операция қатар-қатар, рет-ретімен орындау тәртібі болып табылады.
С++ тілінде оператор дегеніміз - нүктелі үтірмен аяқталатын код жолы. Оператор, операнд пен операцияны шатаспайық, әрбірінің қолданылатын облысы бар.
Мысалға, келесі операторды алайық:
y = x + 5;
Бұл жерде екі түрлі операция орындалады: қосу және меншіктеу. Қосу операциясы бірінші орындалып, одан кейін алынған нәтиже меншіктеледі.
Ассоциативтілік екі түрлі: солдан оңға және оңнан солға қарай орындалатын деп бөлінеді. Ол тек екі бірдей ретімен орындалатын операциялар болғанда ғана көмекке келеді.
Мысалы:
y = x + z + 5;
Қосу операциясы солдан оңға қарай орындалады.
y = x = z = 5;
Ал, меншіктеу операциясы оңнан солға қарай.
Әр операция бір нәтижені қайтарады. Мысал:
5 + 2
Бұл операция 7 санын қайтарады. Тағы бір мысал:
y = 5 + (x = 3) ;
Біріншіден жақшадағы меншіктеу операциясы орындалып, ол 3 санын қайтарады. Одан кейін, бұл қайтарылған сан қосу операциясында оң жақта қолданылады. Қосу операциясы 8 санын қайтарады. Нәтижесі y-ке меншіктеледі.
Нәтиже тек бүтін сандардан тұрмайды, кей операциялар буль сандарын қайтарады.
Мысалы:
x == 5;
Егер x 5-ке тең болса 1 санын(true-ақиқат), басқа жағдайда 0(false-жалған) нәтижесін қайтарады.
Орын тәртібі кестесі.
- Унарлы операция
операнданың адресін алу операциясы
int i;
int *i_ptr;
i_ptr = &i
Адрес бойынша меншіктеу немесе нұсқау, ссылка ашу, болмаса операция атын алып тастайды (операнд көрсеткен объектінің адресіне доступ) . Операнд боп адрес болады;
*i_ptr = 10; // i = 10
Бірге арттыру (инкремент немесе автоарттыру) :
префикстік операция - операнданың нәтижесін 1-ге арттыру қолданылмас бұрын;
постфикстік операция - қолданылған кейін.
Операнд константа бола алмайды немесе басқа оң жаққа кіретінін білдіреді. ++5 немесе 84++ жазылуы дұрыс емес. Операнд боп кез келген енгізулер бола алмайды. Мысалы, ++(j+k) дұрыс емес. Унарлы операцияның операнды ++ және - әрқашан сол жаққа кіреді, мысалы, әртүрлі типтегі айнымалылар) ;
Көлемін анықтау операциясы (байт), операнды көрсетілген типтегі объект үшін. Екі түрлі форматта:
Sizeof унарлы_операция
sizeof(тип)
Бұл операциялар нұсқау типінде айнымалылармен жұмыс істеуге арналған. * операциясы нұсқау арқылы адрестелген шамаға жанама адрестейді. Операция нәтижесі операнд нұсқалған шама болып табылады. Нәтиже типі нұсқаумен адрестелген шама типі болады. Егер нұсқау мүмкін болмайтын адресте тұрса, нәтиже анықталмайды. Мүмкін болмайтын адрестер:
- нөлдік нұсқау;
- сілтеген кезде активті емес болған объектінің адресі;
- объект типі түзетілмеген;
- орындалатын бағдарламада қолданылмайтын.
& операциясы операндтың адресін береді. Операнд кез келген аты берілетін өрнек бола алады. Функция немесе массив аты да операнд бола алады. Бірақ, бұл жағдайда операция белгісі қажеті жоқ, себебі массив пен функция аттары адрес ретінде болады. Операцияның нәтижесі операндқа нұсқау болады. Нұсқаумен адрестлеген тип операнд типі болып табылады. Операция бит өрістері болған құрылым элементтеріне және жад классы register болатын объектіге қолданылмайды.
Операнд боп кез келген l-белгі бола алады. Операция операнд сілтеген объектінің адресін немесе функциясын қайтарады. Register спецификаторы бар объект операция орындалмайды, себебі жадыда сақталмаған және анықталған адресі жоқ.
Операнд боп адресі бар белгі бола алады. Операция жанама адрестеудің тағы бір аты операция атау алу, ол объектінің атына қарамай орындалады.
1. 2. Белгіні өзгерту операциясыОперанд боп арифметикалық типі бар кез келген белгі бола алады. Операция оң таңбаны терістейді және керісінше.
Операнд боп арифметикалық типі бар кез келген белгі бола алады. Операция дәл мағынада ештеңе жасамайды. Кейбір деректерде оның болуы унарлы минусқа симметриялы болсын деп енгізген деп түсіндіреді. Бірақ, симметрияның мағынасы формальді тілде толық түсіндірілген жоқ.
С++ тілінде теріс таңбаға меншіктеу мүмкіндігі бар (біз осындай интуитивтік операцияға назар аударамыз) . Ұқыпты программистер бұл фактіні, айнымалыға оң таңба меншіктеуді, ерекше атап кетуге мүмкін. Сонымен, сол қызметке арнап унарлы плюс С++ тіліне енгізілген.
Формальді тілде әр лексемада өзінің аты мен қолданылу облысы бар. Бұда алдымызда айтып кеткен плюс операция болып табылады. Ары қарай унарлы операцияның симметрия түсінігінің мағынасы ашылады. Унарлы минус жұмыс істейді. Ол операндты -1-ге көбейтуге эквивалентті. Унарлы плюс операндты +1-ге көбейтуге эквивалентті. Ол ештеңе жасамайды.
1. 3. Биттік операцияОперанд боп кез келген интегралды типтегі белгі бола алады. Операцияны екілік кодты биттік инверттік(енгізу) .
Операнд боп кез келген арифметикалық типтегі айнымалы бола алады. С++ тілінде логикалық мағынаны беру үшін, бүтін сандар, 0 - жалған, 1 - ақиқат, қолданылады. Және де, логикалық операцияларда нөлдік емес мағынадағы операнд 1 санымен беріледі. Сондықтан, нөлдік мағынаның терістеуі 1, ақиқат, ал нөлдік емес болса, 0, жалған, деп белгіленеді.
1. 4. Көлемін анықтау операциясыС++ тілінде бұл операция екі түрде: бірінші жағдайда, кез келген бір мән операнд бола алады, бұл мән операция символының оң жағында жазылады, және бұл мәннің нәтижесі бір нақты объектінің байттағы көлемі болып табылады. Екінші жағдайда, операнд болып, типтің аты болады, бұл енгізу операция символынан соң жақша ішінде жазылады, бұл жағдайда нәтиже мәліметтер типінің байттағы көлемі болады. Бұл операцияның нәтижесі size_t типіндегі константа болады. Бұл туындалған бүтін санды белгісі жоқ тип нақты жүзеге асады.
1. 5. Операция арттыру және азайтуНақтылап айтсақ, белгілі бір мөлшерге, қысқартылған бірлікке артады, бәрі операнд типіне байланысты. Операция қосымша эффекті - операндтың нәтижесін өзгертеді. Сондықтан, тек сол жақтағы арифметикалық типтегі мән немесе бір типтегі нұсқау операнд бола алады. С++ тілінде префикстік және постфикстік инкремент деп бөлінеді.
Префикстік формада нәтиже табылуына дейін операндтың мәнін арттыруы жүреді. Нәтижесінде, операнд пен берілгендердің нәтижелері тең болады. Постфикстік формада нәтиже тапқаннан кейін операндтың мәнін арттыруы жүреді. Сондықтан, берілгендердің нәтижесі операндтан кіші болады. Префикстік операцияда инкремент белгісі сол жағында, ал постфиктік - оң жағында жазылады.
Инкремент операциясы нұсқауға қатысты операндтың мәнін байттық санын артады. Бұл жерде байттық сан сол типтегі объектінің ұзындығына, яғни, мөлшеріне, бірлікке тең.
Бұл операция инкрементке симметриялы. Дәл сондай қосымша эффект, операндқа тиісті шектеулер (сол жақтылық қасиет, арифметикалық тип немесе нұсқау типі, префикстік пен постфикстік формалар, адрестің мәнін өзгеруі) .
Префикстік операцияда декремент белгісі операндттың сол жағында, ал постфикстік операцияда - оң жағында жазылады.
1. 6. Жадты динамикалық реттеу операциясыДинамикалық реттеудің екі түрлі операциясы бар: new, delete. Форматы: new тип_аты немесе new тип_аты (инициализатор)
Көлемі тип атымен анықталған мәлеметтер типіне сәйкестелген негізгі жадының ішіндегі бос орнын бөледі және қолжетімді етіп алады. Бөлінген орынға инициализатормен міндетті емес есептейтін мән енгізіледі. Орындалуы сәтті аяқтағанда, new операциясы жадыда бөлінген орнының адресін қайтарады. Егер керек болатын көлем бөлінбесе(жады жоқ), new операциясы нөлдік мән қайтарады. Қолданылу синтаксисі:
нұсқау = new тип_аты(инициализатор)
Мұндағы инициализатор - дөңгелек жақшадағы жадыда бөлген орнын жүктейтін өрнек, жазуға міндетті емес. Алынатын адрестің мәні меншіктелетін нұсқау new операциясында тип аты дәл сол мәліметтер типіне кіруі тиіс.
New-мен бөлінген орнын анық босату үшін delete. Форматы:delete нұсқау;
Мұндағы, нұсқау жадыда босатылатын орнын адрестейді. Массив үшін жадыда бөлінген орнын босату үшін, келесі оператор орындалады:
delete [] нұсқау;
Мұндағы, нұсқау массив жадыда бөлінген орнымен байланысқан.
Динамикалық жадыда орын бөлу үшін арналған. Операнд ретінде типтің аты мен, мүмкін, инициализатор өрнегі қолданылады. Операция объекттің жадында орналасқан адресті қайтарады.
Динамикалық жадыда бұрын орын бөлінген облысты босатады. Операнд ретінде жадыда босату облысының адресі қолданылады.
1. 7. Қол жеткізу (доступ) операциясыАты бар жадтың аясынан тыс орналасқан глобальді облысқа сілтеме жасауды қамтамасыз етеді. Бұл операция аттардың қолдану облысында орналасқан бір ғана аты бар объектімен жұмыс істейді. Егер де объект атының ішкі қолданылу облысында, файлда, бір аты ғана бар объектіні көрсетпесе, онда:
int m; // Глобальді айнымалы
int mmm()
{int m; // Локальді айнымалы
m = 100; // Локальді айнымалын меншіктеу
::m = 125; // Глобальді айнымалын меншіктеу}
Бұл операцияның орындалу мүмкіндігіне онша көп үміт артпаңыз. Операция тек глобальді, алдында берілген объектілерге, қолдану облысында кіретіні қарамастан, қолданылады. Сондықтан, ода транзитивті қасиет жоқ. ::(::(::m) ) өрнегі транслятормен қате ретінде беріледі.
- Бинарлы операция
Бұл операциялар келесі топтарға бөлінеді:
- аддитивті;
- мультипликативті;
- жылжыту;
- разрядті;
- қатынас операциясы;
- логикалық;
- меншіктеу;
- құрылымдалған объектінің компоненттерін таңдау;
- класс компоненттерімен операциялар;
- үтір операциясы;
- жақша операциясы.
Операция арифметикалық типтегі операнд үшін қолданылады. Операндтардың біреуі нұсқау типінде беруі мүмкін. Кез келген жағдайда өрнектің мәні қосынды сумма немесе адрес суммасы мен берілген типінің көлеміне тең бүтін санды мән болады. Бүтін санды нұсқаудың қосынды нәтижесі, сәйкес келетін нұсқауға колданылған инкремент операция санына эквивалентті.
Тип пен өрнегінің нәтижелік мәні С++ тілінде типтерді түрлендіру туралы қабылдаған келісімдерге байланысты анықталған кез келген бинарлық операция.
Бинарлы операция, қосу операциясына қатысты симметриялы. Арифметикалық типтегі немесе нұсқау операндтарды азайту.
2. 2. Мультипликативті операцияАрифметикалық типтегі өрнек операнд бола алады. Өрнектің мәні көбейтінді болады. Өрнектің нәтиже типі С++ тілінде мәлімет типін түрлендіру туралы қабылданған кез келген бинарлы операция болады.
Арифметикалық типтегі өрнек операнд бола алады. Өрнектің нәтижесі бірінші операндтың екінші операндқа бөлу барысында бөлінді болады. Өрнектің нәтиже типі С++ тілінде мәлімет типін түрлендіру туралы қабылданған кез келген бинарлы операция болады. Бүтін санды операндтар болғанда, нәтиженің абсолюттік мәні бүтінге дөңгелеңтейді. Мысалы, 20/3 тең 6, -20/3 тең -6
Арифметикалық типтегі өрнек операнд бола алады. Операция орындалу барысында, операндтар бүтін типке келтіріледі. Теріс емес операндтарда қалдық оң сан. Әйтпесе, қалдық таңбасы іске асырылғанда анықталады. Мысалы: 15%6=3, (-15) %6=-3, 15%(-6) =3, (-15) %(-6) =-3
Нөлдік емес бөлгіш болса, бүтін санды операндтарға орындалатын байланыс: (a/b) *b+a%b=a
2. 3. Жылжыту операциясыБұл операциялар тек бүтін санды операндтарға арналған.
Сол жақ бүтін санды операндтың биттік көрсеткіштер мәндерін оң жақтағы бүтін санды операндының мәніне тең разрядтар санына сол жаққа жылжыту операциясы.
Операнд болып, интегралды типтегі мәндер болады. Өрнектің нәтижесі солға, оң жақ операндқа тең разрядтар санына жылжытқан сол жақ операндтың биттік көрсеткішті айтады. Сол жаққа i разрядқа жылжытқан кезде, алғашқы сол жақ операндтың i разрядтары жойылады, ал соңғы сол жақ операндтың i разрядтары нөлмен толтырылады.
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz