заманғы объектіге бағытталған технологияларды түсінуге жол ашу.
Өзекті тақырыптар бойынша бақылау тапсырмалары 20 нүсқада берілген жэне автор өзінін
окытушыларға көрсетіп отырған көмегін олар дүрыс бағалайды деп сенім артады.
ӘОЖ 004.43(075.8)
КБЖ 32.973-018 я 73
ISBN 978-601-217-347-5
О ЗАО Издательство «Питер», 2012
О ҚР жоғары оқу орындарыньщ
қауымдастығы, 2012
Алғы сөз
Бұл кітапты ң негізгі мақсаты - C ++ тілін «Д ля чайников» сериясы ны ң үзінділігі
мен үстіртін баяндауы нан қорғай оты рып, маңы зы тек программалау тәж іри-
бесін игергеннен кейін айқы ндалаты н ерекш еліктер туралы ш ексіз пікірлерсіз,
ISO /IEC 14882 (1998) стандарты на сэйкес, пакты эрі қы сқа түрде сипаттау болы п
табы лады . Бүл кітап тілді ж аңадан оқы п үй рен е бастаған студенттерге арналған,
алайда ол программалауда бірсы пы ра білім ж инақтағандар үш ін де қаж еттілігін
жоймайды. О ны дәрістердің қы сқаш а конспектісі н ем есе қосы м ш а аны қтам алы қ
құрал ретінде қарасты руға болады.
Н азарлары ңы зға ұсы ны лы п оты рған кітап ж алпы материал м азмүны н
толы ққанды аш уға ұм ты лм айды , ол үш ін ан ы қтам алы қ қүралдар, қүж аттам алар
ж эне м этінге тәуелді көм екті қолдану м үм кіндіктері бар. М үны ж азуда алға
қойы лған м ақсат - C ++ тілін ің м үм кіндіктері м ен оларды қолдану туралы дүры с
көзқарас қалы птастыру, соны м ен қатар болаш ақта осы ж эн е басқа д а програм м а
лау тілдерін үйренуге жол көрсету.
К ітапта тілдің негізгі конструкциялары нан басқа, програм м аларды ж азу ба-
ры сы нда қолданы латы н н егізгі м әлім еттер қүры лы м дары , програм м аларды ң
сапалы қ көрсеткіш тері, соны м ен қатар програм м алау стилі ж әне технологиясы
ж өнінде бірсы пы ра ұсы н ы стар қарасты ры лады .
О сы кітап қа қосы м ш а ретін де 2002 ж ы лы Т. А. П авловская мен Ю . А. Щ у-
пакты ң «C/C++. Ж оғарғы деңгейлі тілде программалау. Қ үры лы м ды қ програм м а
лау» атты практикум ы «П итер» баспасы нан ж ары қ көрді. О н да қүры лы м ды қ п а
радигм а ш еңберінде қолданы латы н C ++ тілінің қүралдары сипатталы п, оқулы қта
берілген зертханалы қ тапсы рм аларды түсіндіре оты ры п талдау ж үргізіледі, сон ы
м ен қатар програм м аларды қүру ж эне ж өндеп түзету технологиялары түбегейлі
қарасты ры лы п, тапсы рм аларды ш еш у нүсқалары оны ң тиім ділігін бағалау
ж олдары д а үсы ны лады . 2004 ж ы лы практикум ны ң объектіге бағы тталған
п рограм м алауга арналған екінш і бөлім і басы лы һ ш ы қ тй . П рактикумда қарас-
ты ры латы н н егізгі сұрақтар іш інде U M L , п рограм м алы к инж енерияны ң базалы қ
қағидалары , ж обалау үлгілері келтіріліп, олар оқулы қта кам ты лған тақы ры птар
ш еңберінен ш ы ғы п, оқы рм анға кәсіби программалау элем іне ж ы лдам қадам
басуға м үм кіндік береді.
К ітапты ң үш тен бірінен астам бөлігі стандартты кітапханага, яғни п рограм
м аларды құру м ерзім ін қы сқарту ж эне оларды ң сенім ділігін артты руға, бір орта-
д ан екінш і бір ортаға көш ірілу м үм кіндіктері мен қолданы лу әм бебапты лы ғы н
ж оғары лату мақсаты нда эрбір кәсіби программалауш ы м еңгеруі тиіс қүралдарға
ш олу ж асауға арналған.
3
М А ЗМ ¥Н Ы
А лғы сө з..............................................................................................................................................3
IБ Ө Л ІМ . Қ үры лы м ды қ п рограм м алау................................................................................... 5
1-тарау. C++ тілінің б азалы қ қ ү р а л д а р ы ................................................................................. 7
Тілдің қүрамы.............................................................................................................................7
C++ тілінің алфавиті.......................................................................................................... 10
Идентификаторлар.............................................................................................................. 10
Түйінді сөздер...................................................................................................................... 11
Операциялар таңбалары..................................................................................................... 11
Тұрақтылар........................................................................................................................... 12
Түсініктемелер.....................................................................................................................14
C++ тіліндегі мәліметтер типтері......................................................................................... 15
Мәліметтер типтерінің тркырымдамасы....................................................................... 15
Мәліметтердің негізгі типтері.......................................................................................... 15
Программа құрылымы.......................................................................................................19
Айнымалылар жэне өрнектер............................................................................................... 22
Айнымалылар..................................................................................................................... 22
Операциялар.........................................................................................................................25
Өрнектер............................................................................................................................... 32
Құрылымдык программалаудың базалық конструкциялары..........................................33
«Өрнек» операторы............................................................................................................35
Тармақталу операторлары................................................................................................ 36
Цикл операторлары............................................................................................................40
Басқаруды беру операторлары..........................................................................................46
Нүсқауыштар мен жиымдар.................................................................................................. 48
Нұсқауыштар....................................................................................................................... 48
Сілтемелер............................................................................................................................56
Ж иымдар.............................................................................................................................. 57
Қолданушылар анықтайтын мәліметтер типтері.............................................................. 65
Типтердің атын ауыстыру (typedef)................................................................................ 65
Тізбелер (enum)........................................................................................
66
Құрылымдар (struct)...........................................................................................................67
Біріктірмелер (union)..........................................................................................................70
2-тарау. Модульдік п рограм м алау............................................................................................73
Функциялар.............................................................................................................................. 74
Функцияларды жариялау жэне анықтау.........................................................................74
Ауқымды айнымалылар.................................................................................................... 78
Қайтарылатын мэн.............................................................................................................. 78
Функцияның параметрлері............................................................................................... 79
Рекурсивті функциялар......................................................................................................85
Функцияларды асыра жүктеу...........................................................................................86
Функциялардың шаблондары...........................................................................................88
main() функциясы............................................................................................................... 91
Стандартты кітапхана функциялары.............................................................................. 92
Препроцессор директивалары.............................................................................................. 99
#include директивасы.........................................................................................................99
#define директивасы..................................................................................................... ...100
Шартты компиляция директивалары............................................................................ 100
#undef директивасы.......................................................................................................... 102
Идентификаторлардың эрекет ету аймақтары..................................................................103
Сыртқы жарияланымдар..................................................................................................104
Атау берілген аймақтар....................................................................................................106
499
3-тарау. П рограм маларды куру техн ологиясы ...................................................................109
Программаны кодтау жэне қүжаттау..................................................................................109
Программаны жобалау жэне тесттен еткізу..................................................................... 117
Мэліметтердің динамикалық кұрылымдары....................................................................122
Сызықтык тізімдер........................................................................................................... 124
Стектер................................................................................................................................ 129
Кезектер.............................................................................................................................. 130
Бинарлы бұтақтар............................................................................................................. 132
Динамикалық құрылымдарды жиым көмегімен жүзеге асыру................................136
I бөлімге арналған ж а тты ғу л а р .............................................................................................. 138
Циклдік есептеу процестері.................................................................................................138
Бірөлшемді жиымдар............................................................................................................ 148
Екіөлшемді жиымдар............................................................................................................ 151
Бірөлшемді жэне екіөлшемді жиымдар............................................................................ 155
Қүрылымдар........................................................................................................................... 157
Нүсқауыштар.......................................................................................................................... 163
Қарапайым функциялар.......................................................................................................164
Функциялар жэне файлдар...................................................................................................164
Тіркестермен жэне символдармен жұмыс істеуге арналған кітапхана
функциялары.......................................................................................................................... 173
Функциялар шаблондары.....................................................................................................178
Модульдік программалау......................................................................................................178
Мәліметтердің динамикалық күрылымдары....................................................................179
IIБ Ө Л ІМ . Объектіге бағы тталған п рограм м алау............................................................ 187
4-тарау. К л а с т а р ........................................................................................................................... 192
Класты сипаттау.....................................................................................................................192
Объектілерді сипаттау.......................................................................................................... 194
this нұскауышы....................................................................................................................... 195
Конструкторлар......................................................................................................................196
Көшіру конструкторы....................................................................................................... 199
Кластың статикалық элементтері.......................................................................................200
Статикалық өрістер..........................................................................................................201
Статикалык эдістер...........................................................................................................201
Достас функциялар жэне кластар.......................................................................................202
Достас функциялар...........................................................................................................202
Достас класс...................................................................................................................... 203
Деструкторлар....................................................................................................................... 204
Операциялардың асыра жүктелуі.......................................................................................205
Унарлы операциялардың асыра жүктелуі................................................................... 206
Бинарлы операциялардыц асыра жүктелуі................................................................. 207
Меншіктеу операциясыныц асыра жүктелуі............................................................... 207
new жэне delete операцияларының асыра жүктелуі.................................................. 208
Типті келтіру операциясыныц асыра жүктелуі........................................................... 211
Функцияны шақыру операциясыныц асыра жүктелуі.............................................. 211
Индекстеу операциясыныц асыра жүктелуі................................................................ 212
Класс элементтеріне нүсқауыштар.................................................................................... 213
Класс күрамы бойынша үсыныстар.................................................................................. 215
5-тарау. М ү р ал ау ..........................................................................................................................216
Қол жеткізу кілттері.............................................................................................................. 216
Қарапайым мүралау.............................................................................................................. 217
Виртуалды әдістер................................................................................................................ 221
Кейінгі байланыстыру механизмі................................................................................. 223
Абстрактылы кластар...................................................................................................... 224
500
Көптік муралау.......................................................................................................................225
Құрылымдар мен біріктірмелердің кластардан айырмашылығы................................ 226
6-тарау. Класс ш аблондары ...................................................................................................... 228
Кластардын шаблондарын қуру..........................................................................................228
Класс шаблондарын колдану..............................................................................................236
Класс шаблондарының специализациясы..........................
238
Шаблондардың артыкшылықтары мен кемшіліктері.................................................... 239
7-тарау. А ластамалы жағдайларды өндеу............................................................................ 240
Аластамаларды өңдеудің жалпы механизмі.................................................................... 240
Аластамалардың синтаксисі............................................................................................... 241
Аластамаларды айқындап атқару...................................................................................... 243
Функцияның аластамалар тізім і.........................................................................................245
Конструкторлар мен деструкторлардағы аластамалар.................................................. 247
Аластамалардың иерархиялары..........................................................................................248
8-тарау. Типтерді түрлендіру.................................................................................................... 249
С стиліндегі типтерді келтіру операциясы.......................................................................249
co n stcast операциясы...........................................................................................................250
dynam iccast операциясы.................................................................................................... 250
Жоғарылататын түрлендіру............................................................................ .............. 251
Төмендететін түрлендіру................................................................................................ 251
Сілтемелерді түрлендіру......................
253
Қиылысқан түрлендіру.................................................................................................... 254
staticcast операциясы...........................................................................................................255
reinterpretcast операциясы................................................................................................. 256
Типті динамикалық түрде анықтау.................................................................................... 257
9-тарау. Программалау бойынш а ұ сы н ы с тар .................................................................... 259
II бөлімге арн алған ж атты ғулар.............................................................................................266
Кластар.................................................................................................................................... 266
Мұралау................................................................................................................................... 270
Класс шаблондары................................................................................................................ 278
IIIБ Ө Л ІМ . С тандартты к іт а п х а н а ....................................................................................... 281
10 тарау. А ғы м ды қ к л а с т а р .......................................
283
Стандартты ағымдар.............................................................................................................285
Мәліметтерді форматтау...................................................................................................... 287
Жалаушалар және форматтаушы әдістер.....................................................................287
Манипуляторлар...............................................................................................................290
Ағымдармен мәлімет алмасу әдістері............................................................................... 292
Ағымдар қателіктері.............................................................................................................298
Файлдық ағымдар................................................................................................................. 300
Тіркестік ағымдар................................................................................................................. 303
Қолданушы анықтаған ағымдар мен типтер................................................................... 305
11 тарау. Т ір к ес тер ...............................................
307
Конструкторлар жэне тіркестерді меншіктеу.................................................................. 308
Операциялар...........................................................................................................................309
Функциялар............................................................................................................................309
Меншіктеу жэне тіркес бөліктерін қосу...................................................................... 310
Тіркестерді түрлендіру.....................................................................................................311
Ішкі тіркестерді іздеу...................................................................................................... 313
Тіркестердің бөліктерін салыстыру.............................................................................. 316
Тіркестердің сипаттамаларын а л у ................................................................................ 317
501
12 тарау. Контейнерлік к л ас тар ............................................................................................... 318
Тізбекті контейнерлер.......................................................................................................... 320
Векторлар (vector)............................................................................................................ 323
Екіжақты кезектер (deque)............................................................................................. 329
Тізімдер (list).....................................................................................................................331
Стектер (stack)...................................................................................................................336
Кезектер (queue)............................................................................................................... 337
Басымдылықтары бар кезектер (priority queue)........................................................ 338
Ассоциативті контейнерлер................................................................................................ 341
Сөздіктер (map)................................................................................................................ 342
Дубликатты сөздіктер (multimap)..................................................................................347
Жиындар (set)....................................................................................................................348
Дубликатты жиындар (m ultiset)....................................................................................349
Биттік жиындар (bitset)...................................................................................................350
Контейнерлерді қолдану мысалы..................................................................................352
13 тарау. Итераторлар және ф ункционалды қ объектілер...............................................356
Итераторлар...........................................................................................................................356
Кері итераторлар.............................................................................................................. 359
Кірістіру итераторлары.................................................................................................. 361
Ағымдық итераторлар.....................................................................................................361
Функционалдық объектілер............................................................................................... 363
Арифметикалық функционалдық объектілер.............................................................364
Предикаттар......................................................................................................................365
Терістеуіштер................................................................................................................... 366
Байланыстырғыштар.......................................................................................................366
Функцияларға нұсқауыштар адаптерлері.................................................................... 367
Әдістер адаптерлері.........................................................................................................371
14 тарау. Алгоритмдер............................................................................................................... 373
Тізбектерді модификацияламайтын операциялар..........................................................374
adjacentfind.......................................................................................................................374
count, c o u n tif ................................................................................................................... 375
equal................................................................................................................................... 376
find, f i n d i f .........................................................................................................................376
f i n d f i r s t o f ........................................................................................................................377
f in d e n d ......................................................................................... .....................................377
f o r e a c h .............................................................................................................................. 378
mismatch............................................................................................................................. 378
search, search_n................................................................................................................. 378
Тізбектермен орындалатын модификациялаушы операциялар................................... 379
copy, copy backward........................................................................................................380
fill, fill n ............................................................................................................................. 381
generate, generate s ..........................................................................................................381
iter swap, swap, swap ranges..........................................................................................382
random shuffle.................................................................................................................. 382
remove, remove if, remove copy, re m o v e c o p y if...................................................... 383
replace, replace if, replace copy, replace copy if........................................................ 385
reverse, reverse_copy........................................................................................................386
rotate, rotate_copy.............................................................................................................386
transform.............................................................................................................................386
unique, uniquecopy..........................................................................................................388
Сурыптаумен байланысты алгоритмдер..........................................................................388
b inaiysearch..................................................................................................................... 389
eq ualrange.........................................................................................................................389
inplacem erge.................................................................................................................... 3 90
502
lexicographicalcom pare...................................................................................................390
low erbound, u p p erb o u n d .............................................................................................. 391
max, m in............................................................................................................................. 391
max_element, min_element.............................................................................................. 391
m erge.................................................................................................................................. 392
nextj>ermutation, prev_permutation.............................................................................. 392
n th e le m e n t........................................................................................................................ 394
partialsort, p a rtia ls o rtc o p y .......................................................................................... 394
partition, stable_partition...................................................................................................395
sort, sta b le so rt...................................................................................................................395
Жиындармен жэне пирамидалармен жұмыс істеу алгоритмдері................................395
includes............................................................................................................................... 396
set intersection.................................................................................................................. 397
setdifference, set symmetric difference....................................................................... 397
setu n io n ............................................................................................................................. 397
Жиындармен жумыс істеу алгорихмдерін колдану мысалы........................................ 398
m a k e h e a p ..........................................................................................................................399
р о р һ е а р ............................................................................................................................. 399
p u s h h e a p ...........................................................................................................................399
so rth e a p ............................................................................................................................. 400
15 тарау. С анды қ есептеулерге арналған к у р а л д ар ...................... .................................. 401
Жалпыланған сандық алгоритмдер.................................................................................. 401
accumulate..........................................................................................................................401
inner_product..................................................................................................................... 402
p a rtia lsu m .........................................................................................................................402
adjacentdifference............................................................................................................403
valarray класы ....................................................................................................................... 403
Көмекші всластар.............................................................................................................. 407
16 тарау. С тандартты кітапхананы ң баска қүралд ары ................................................... 411
III бөлімге арналған ж а тты ғу л ар ....................................
414
С одғы сөз...................................................................................................................................... 415
Қ олданы лған әдебиеттер..........................................................................................................416
1-ҚОСЫ М Ш А. C++ тілінін оп ерац и ял ары ........................................................................417
2-ҚОСЫ М Ш А. p rin tf топтам асы ны ң ф ункциялары үшін формат
сп ец и ф и к ац и ялары ................................................................................................................... 419
3-ҚОСЫ М Ш А. Типтердің ари ф м етикалы қ түрленулері...............................................422
4-ҚОСЫ М Ш А. С тандартты кітапхананы ң тақ ы р ы п т ы қ ф ай л д ар ы ....................... 423
5-ҚОСЫ М Ш А. Т үрақты лар, макростар жэне стандартты
кітапхананы ц мәліметтер ти п тер і........................................................................................ 425
6-ҚОСЫ М Ш А. С тандартты кітапхана ф у н к ц и я л ар ы ................................................... 439
Такырыптық файлдар кұрамы ...........................................................................................439
Функциялардың алфавиттік тізімі.................................................................................... 445
7-ҚОСЫ М Ш А. ASCII кодтары ны ң кестесі....................................................................... 471
8-ҚОСЫ М Ш А. Қ олданы лған терминдердің оры сш а (ағы лш ы нш а)-қазақш а
сөздігі............................................................................................................................................. 474
А лф авиттік н үсқауы ш ............................................ ..................................................................478
503
Достарыңызбен бөлісу: |