Программалау (/Өож 004. 43(075. 8) Кбж 32. 973-018 я 73 п 12


заманғы объектіге бағытталған технологияларды түсінуге жол ашу



Pdf көрінісі
бет2/2
Дата07.01.2022
өлшемі0,63 Mb.
#20666
түріПрограмма
1   2
заманғы объектіге бағытталған технологияларды түсінуге жол ашу.

Өзекті тақырыптар бойынша бақылау тапсырмалары 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


Достарыңызбен бөлісу:
1   2




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет