1
Тази книга е предназначена за читатели без предишен опит в
програмирането, но такива, които желаят да станат програмисти. В тази
категория хора обикновено попадат мотивирани студенти, изучаващи
дисциплината “Основи на програмирането” на C++. За тях книгата може да
служи като ръководство за лабораторни занятия и помагало за усвояване на
теоретичния материал от лекциите. Тя може да се използва и като наръчник
от всички желаещи да усвоят процедурния стил на програмиране чрез
хибридния език С++. В книгата, от съображения за достъпност на материала,
не са разгледани пълните възможности на езика. Също така някои особености
са дадени по-късно в изложението (включително при решенията на задачите),
за това препоръчваме темите да се четат последователно. За много от
задачите са посочени словесните алгоритми за тяхното решаване. Всички
теми започват с кратка теоретична част с примери, следвана от решени
задачи и завършват с въпроси и задачи за самостоятелна работа. Старали сме
се в скоби да посочваме англоезичните термини за всички важни понятия. За
някои от задачите са дадени повече от едно решения. Примерният код е
съобразен с международния стандарт ISO/IEC IS 14882:2003. Коментирани
са и възможности, предвидени в следващия, все още неофициален стандарт (с
работно заглавие C++0x), но реализирани в последните версии на
популярните компилатори. Всички програми са тествани в средата на
Microsoft Visual Studio 2008, но няма пречки читателят да използва
произволен друг компилатор за езика С++, съобразен със стандартите.
Предлаганият материал е обсъден и утвърден за печат на заседание на
катедра “Информационни технологии” във Великотърновски университет
“Св.Св. Кирил и Методий”.
Рецензент: доц. д-р Емилия Тодорова
© Ивайло Петров Дончев, Николай Пенчев Николов – автори, 2010
2
Съдържание
Глава 1. Интегрирана среда за разработка......................................................5
1.1. Основни компоненти..................................................................................5
1.2. Общ изглед..................................................................................................6
1.3. Създаване на проект...................................................................................7
1.4. Въпроси и задачи за самостоятелна работа............................................14
Глава 2. Елементи от лексиката на езика......................................................15
2.1. Символи.....................................................................................................15
2.2. Думи...........................................................................................................15
2.3. Коментари.................................................................................................17
2.4. Разделители (Whitespaces) .......................................................................18
2.5. Оператори..................................................................................................18
2.6. Въпроси и задачи за самостоятелна работа............................................18
Глава 3. Данни в програмата. Основни типове данни................................20
3.1. Основни типове данни.............................................................................20
3.2. Литерали....................................................................................................22
3.3. Именувани константи...............................................................................23
3.4. Променливи...............................................................................................23
3.5. Функции....................................................................................................24
3.6. Изрази........................................................................................................25
3.7. Въпроси и задачи за самостоятелна работа............................................25
Глава 4. Входно-изходни операции. ................................................................26
4.1. Изход с помощта на cout.......................................................................26
4.2. Форматиран изход....................................................................................27
4.3. Въвеждане на данни с помощта на потока cin.....................................31
4.4. Използване на кирилица..........................................................................32
4.5. Въпроси и задачи за самостоятелна работа............................................33
Глава 5. Изчисления в програмата.................................................................35
5.1. Операция за присвояване.........................................................................35
5.2. Аритметични операции............................................................................36
5.3. Оператор typedef..................................................................................41
5.4. Функции от заглавния файл <cmath>...................................................41
5.5. Релационни и логически операции.........................................................42
5.6. Решени задачи...........................................................................................45
5.7. Въпроси и задачи за самостоятелна работа............................................52
Глава 6. Разклоняване на изчислителния процес........................................54
6.1. Условен оператор if................................................................................54
6.2. Операция условен израз?:........................................................................57
6.3. Оператор switch....................................................................................59
3
6.4. Решени задачи...........................................................................................62
6.5. Въпроси и задачи за самостоятелна работа............................................67
Глава 7. Оператори за цикъл...........................................................................70
7.1. Оператор за цикъл while.......................................................................70
7.2. Оператор за цикъл do-while................................................................72
7.3. Оператор за цикъл for............................................................................75
7.4. Решени задачи...........................................................................................80
7.5. Вложени оператори за цикъл...................................................................88
7.6. Управление на циклите с break и continue.....................................90
7.7. Решени задачи с вложени оператори за цикъл......................................92
7.8. Въпроси и задачи за самостоятелна работа............................................96
Глава 8. Масиви. Едномерни масиви.............................................................99
8.1. Дефиниране на масиви.............................................................................99
8.2. Достъп до елементите на масив. Инициализация................................100
8.3. Въвеждане и извеждане.........................................................................102
8.4. Решени задачи.........................................................................................102
8.5. Въпроси и задачи за самостоятелна работа..........................................112
Глава 9. Указатели и псевдоними.................................................................115
9.1. Указатели................................................................................................115
9.2. Операция sizeof..................................................................................117
9.3. Адресна аритметика...............................................................................118
9.4. Указатели към void..............................................................................120
9.5. Константни указатели и указатели към константи..............................121
9.6. Указатели и масиви................................................................................122
9.7. Динамична памет....................................................................................123
9.8. Псевдоними.............................................................................................128
9.9. Решени задачи.........................................................................................131
9.10. Въпроси и задачи за самостоятелна работа........................................133
Глава 10. Функции...........................................................................................135
10.1. Дефиниране и деклариране на функции.............................................135
10.2. Формални и фактически параметри. Предаване на параметри към
функция. .........................................................................................................140
10.3. Област на действие на променливи и функции.................................145
10.4. Функции, които връщат стойност указатели или псевдоними.........157
10.5. Предефиниранe на функции................................................................160
10.6. Функции с подразбиращи се параметри.............................................161
10.7. Вградени (inline) функции..............................................................162
10.8. Функции с неопределен брой параметри...........................................163
10.9. Указатели към функции.......................................................................165
10.10. Рекурсия, рекурсивни функции.........................................................166
10.11. Решени задачи.....................................................................................169
10.12. Въпроси и задачи за самостоятелна работа......................................180
4
Глава 11. Многомерни масиви. Двумерни масиви (матрици) .................182
11.1. Инициализация на многомерни масиви..............................................182
11.2. Връзка между указатели и многомерни масиви................................184
11.3. Многомерни масиви в динамичната памет........................................186
11.4. Многомерните масиви като параметри на функции..........................189
11.5. Решени задачи.......................................................................................190
11.6. Въпроси и задачи за самостоятелна работа........................................198
Глава 12. Символни низове............................................................................200
12.1. C-style символни низове.......................................................................200
12.2. Низовете, като обекти на класа string............................................210
12.3. Решени задачи.......................................................................................217
12.4. Въпроси и задачи за самостоятелна работа........................................223
Глава 13. Типове, дефинирани от потребителя..........................................225
13.1. Структури..............................................................................................225
13.2. Обединения (union)............................................................................230
13.3. Изброен тип данни (enum) ..................................................................233
13.4. Функциите, като тип данни.................................................................235
13.5. Решени задачи.......................................................................................238
13.6. Въпроси и задачи за самостоятелна работа........................................245
Глава 14. Какво пропуснахме? ......................................................................247
14.1. Оператор за безусловен преход (goto)...
0 коментара
За да коментирате, трябва да сте влезли в профила си.
Влезте