Астраханський державний технічний університет p>
Кафедра «Інформаційнихтехнологій та комунікацій » p>
Конспект лекцій з дисципліни p>
« Основи алгоритмічного мови З ++» p>
для спеціальності 220200. p>
Астрахань 2000 р. p>
1. Змінні і операції мови С + + 4 p>
ВИВЧАЄМО ПОНЯТТЯ 5
Букви та цифри 6 p>
пробільні символи 6 p>
Знаки пунктуації та спеціальні символи 6 p>
ESC-послідовності 8 p>
Операції 9
Константи 11 p>
Цілі константи 11 p>
Константи з плаваючою точкою 13 p> < p> Константа-символ 14 p>
рядкові літерали 14
Ідентифікатори 15
Ключові слова 15
Коментарі 16
лексеми 17
ВИХІДНІ текст прикладу 17 p>
2. Конструкції прийняття рішень та цикли 23 p>
ПИТАННЯ І ВІДПОВІДІ 23 p>
СТРУКТУРА ПРОГРАМИ 26 p>
Вихідна програма 26 p>
ОГОЛОШЕННЯ 27 p>
специфікатор типів 28
Декларатори 30 p>
Декларатори масивів, функцій і покажчиків 30 p>
Складові декларатори 31 p>
Об "явища змінної 33 p >
Оголошення простий змінної 34 p>
Оголошення перерахування 34 p>
Оголошення структур 36 p>
Бітові поля 37 p>
Об "явище поєднання 38 p>
Об "явище масиву 39 p>
Об" явище функцій 42 p>
Класи пам'яті 45 p>
Об "явища змінної на зовнішньому рівні 45
Об "явище змінної на внутрішньому рівні 48 p>
Об" явище функції на зовнішньому і внутрішньому рівнях 49 p>
Ініціалізація 50 p>
Базові типи і типи покажчиків 50 p>
Складові типи 51 p>
рядкові ініціалізатори 53
Об "явища типів 54 p>
Типи структур, суміщення та перерахувань 54 p> < p> Щодо "явища typedef 55
Імена типів 56
КОНТРОЛЬНІ ПИТАННЯ: 57 p>
Опції 57 p>
Оголошення і визначення функцій 58
ТИПОВІ ПИТАННЯ З відповідями 62 < br> ПРАКТИКУМ 62 p>
Контрольні питання 62 p>
Масиви 65 p>
СОРТИРОВКИ масиву - ПРИКЛАД у файлі list6_4cpp. 67
- ПОШУК в масиві 67 p >
БІБЛІОТЕЧНОГО функції пошуку і сортування у безперервних масивах: 68 p>
Рядки і керування вводом/виводом 69 p>
Форматований потоковий висновок 70 p>
Лістинг 1. Вихідний текст програми OUT1.CPP 70 p>
Функція printf 71 p>
Функція printf 72
Таблиця 1. Еsс - послідовності 72
Таблиця 7.2. Значення прапорів рядка формату функції printf 72 < br> Таблиця 3. Символи типів даних рядка формату функції printf 73 p>
Лістинг 3. Оригінальний текст програми OUT2.CPP у файлі List7-3.CPP 74 p>
Таблиця 4. Результат дії специфікацій форматування у функції printf з рядка 13 75 p>
Введення рядків 76 p>
Функція getline 76 p>
Присвоєння значень рядків 77 p>
Ініціалізація рядка 77 < br> Функція strcpy 77
Функція strdup 77
Функція strncpy 78 p>
Визначення довжини рядка 78 p>
Функція strlen 78
Функція strcat 78
Функція strncat 79
Порівняння рядків 79
Функція strcmp 79 p>
Приклад 80
Функція stricmp 80 p>
Приклад 80
Функція strncmp 80 p>
Приклад 80 p>
Приклад 81
(див. List7_5.cpp - Оригінальний текст програми STRING2.CPP) 81 p>
Перетворення рядків 81 p>
Функція strlwr 81 p>
Приклад 81
Функція strupr 81 p>
Приклад 81 p>
Звернення рядків 82 p>
Функція strrev 82 p>
Пошук символів 82 p>
Функція strchr 82
Функція strrchr 82 p>
Приклад 83
Функція Strspn 83 p>
Приклад 83
Функція strcspn 83 p>
Приклад 83
Функція strpbrk 83 p>
Приклад 84 p>
Пошук рядків 84 p>
Функція strstr 84 p>
Приклад 84
Функція strtok 84
Приклад 84 p>
Основи об'єктно-орієнтованого програмування ВИКОРИСТАННЯ ОСНОВНИХ
КОНСТРУКЦІЙ 85 p>
Оголошення базових класів 85
Конструктори 88
Деструктори 90
Оголошення ієрархії класів 91
Віртуальні функції 92
Дружні функції 95
Операції та дружні операції 96
Віртуальні функції 97
Правило віртуальної функції 99
Операції та дружні операції 101
ВИХІДНІ текст прикладу 103
ПИТАННЯ І ВІДПОВІДІ 103
Контрольні питання 104 p>
ФАЙЛОВІ ОПЕРАЦІЇ ВВЕДЕННЯ/ВИВЕДЕННЯ 105 p>
Stream-бібліотека C + + 105
ЗАГАЛЬНІ ФУНКЦІЇ Потоковий ввод/ВИВЕДЕННЯ 106 p>
Функція-компонент open 106 p>
Функція-компонент close 107
ПОСЛІДОВНИЙ ТЕКСТОВИЙ ПОТІК ВВЕДЕННЯ/ВИВЕДЕННЯ 107 p>
Функція-елемент getline 108
послідовності двійкових ФАЙЛОВИЙ ENTER,/ВИСНОВОК 109 p>
Функція-елемент write 110 p>
Функція-елемент read 110
Файловий ввід/вивід з прямим доступом 113 p>
Функція-елемент seekg 113
Висновок 115
Питання та відповіді 115
Практикум 116 p>
Контрольні питання 116 p>
Вправа 116 p>
Змінні і операції мови С + + p>
Тут представлені базові компоненти програм на С + +. До їх числавходять типи даних, змінні, константи і вирази. p>
ВИВЧАЄМО ПОНЯТТЯ p>
- Попереднє визначення типи даних в С + + включають в себе типи int, char,float, double і void. У мові С + + гнучкість типів даних збільшуєтьсязавдяки застосуванню модифікаторів типів. Ці модифікатори змінюютьточність представлення та діапазон значень змінних. Модифікаторамитипу є signed, unsigned, short і long. p>
- Ідентифікатори в С + + можуть мати довжину до 32 символів іповинні починатися з букви або підкреслення. Наступні символиідентифікатора можуть бути буквою, цифрою або підкресленням. Іден -тіфікатори С + + чутливі до реєстру. Обмеження на 32 символуможе бути, проте, змінено шляхом установки опцій компілятора. p>
- Директива # include є спеціальною командою компілятора. Вонанаказує компілятору включити в програму вміст визна -ленного файлу, як якби ви самі ввели його в поточний вихіднийфайл. p>
- Оголошення констант передбачає використання директиви # defineдля оголошення констант, визначених за допомогою макросів, або ви -користування ключового слова const для оголошення формальних кон -стант. Формальні константи вимагають від вас визначення їх типу
(значенням за замовчуванням є int), імені та асоційованого зними значення. p>
- Оголошення змінної вимагає, щоб ви поставили її тип та ім'я, С + +дає вам можливість ініціалізувати змінну при її оголошенні.
Ви можете оголосити кілька змінних в одному операторі об'яв -вання. p>
- арифметичними операціями є +, -, *,/і% (розподіл замодулю). p>
- Арифметичні вирази розрізняються за складністю. Найпростішевираз містить єдиний елемент даних (літерал, константуабо змінну). Складні вирази включають набір операцій, функ -ції, літерали, константи і змінні. p>
- Операції інкремента і декремент використовуються в префіксной і пост -фіксной формах. Мова С + + дає вам можливість застосовувати ці опе -рації до змінних, у яких зберігаються символи, цілі числа і навітьчисла з плаваючою точкою. p>
- Арифметичні операції привласнення дають вам можливість запису -вати більш короткі арифметичні вирази, в яких перший опе -ранд є також змінної, що приймає результат обчислень. p>
- Оператор sizeof повертає як для типів даних, так і для зміннихїх розмір у байтах. p>
- Механізм приведення типу дає вам можливість форсувати перетворень -тання типу виразу. p>
- Операції відносин і логічні операції дають вам можливість будів -ить логічні вирази. p>
- Булеві вирази об'єднують операції відносин і логічні опе -рації для формулювання нетривіальних умов. Ці вирази дозволяютьпрограмі приймати складні рішення. p>
- Умовне вираз пропонує вам коротку форму для простого опе -ратора if-else з двома альтернативами. p>
- Операції маніпулювання битами виконують порозрядним операції
AND, OR, XOR і NOT. Крім того, в С + + підтримуються порозряднимоперації зсуву>. p>
- Операції маніпулювання битами з привласненням пропонують корот -Електричні форми для простих операцій маніпулювання битами. p>
Букви та цифри p>
Безліч символів Сі включає великі і малі літери з англійськоїалфавіту і 10 десяткових арабських цифр: p>
-великі англійські букви:
ABCDEFGHIJKLMNOPQRTUV WXYZ p>
-малі англійські літери:abcdefghijklmnopqrtuv wxyz p>
-десяткові цифри: p>
0 1 2 3 4 5 6 7 8 9 p>
Букви та цифри використовуються при формуванні констант, Іден -тіфікаторов і ключових слів. Всі ці конструкції описані нижче. Компілятор
Сі розглядає одну й ту саму малу і великулітери як відмінні символи. Якщо в даній запису використані малі літери,то заміна малої літери "a" на велику літеру "A" зробить відмінною данузапис від попередньої. p>
пробільні символи p>
Пробіл, табуляція, переклад рядка, повернення каретки, новасторінка, вертикальна табуляція і новий рядок-це сиволом, званіпробільними, оскільки вони мають те ж саме призначення, як і прогалиниміж словами і рядками на друкованій сторінці. Ці символи розділяютьоб "екти, визначені користувачем, такі, як константи і ідентифікатори,від інших об "об'ектов програми. p>
Символ CONTROL-Z розглядається як індикатор кінця файлу.
Компілятор ігнорує будь-який текст, наступний за символом
CONTROL-Z. P>
Компілятор Сі ігнорує пробільні символи, якщо вони невикористовуються як розділювачі або як компоненти константи-символу абострокових літералів. Це потрібно мати на увазі, щоб додаткововикористовувати пробільні символи для підвищення наочності програми
(наприклад, для перегляду редактором текстів). p>
Знаки пунктуації та спеціальні символи p>
Знаки пунктуації та спеціальні символи з безлічі символів Сівикористовуються для різних цілей, від організації тексту програми довизначення завдань, які будуть виконані компілятором абоскомпільованій програмою. У таблиці 2.1 перераховані ці символи.
-------------------------------------------------- --------- p>
Символ Найменування Символ Найменування
-------------------------------------------------- --------- p>
, Кома! Воскліцатель-ний знак p>
. Точка | Вертикальна риса p>
; Точка з за-/ Похила чер-п'яте та вправо p>
: Двокрапка Похила чер-та вліво p>
? Знак питання ~ Тильда p>
'Одиночна ка _ Підкреслення вичка p>
(Ліва кругла # Знак номера дужка p>
) Права кругла% Знак відсотка дужка p> < p> (Ліва фігурна & Амперсанд дужка p>
) Права фігурна ^ Caret дужка p>
<Ліва кутова - Знак мінус дужка p>
> Права кутова = Знак одно дужка
[Ліва квадратна + Знак плюс дужка p>
] Права квадратна дужка -------------------------- -------------------------------< br>- p>
Табл. 2.1. Знаки пунктуації та спеціальні символи p>
Ці символи мають спеціальний сенс для компілятора Сі. Їхвикористання в мові Сі описується в подальше утримання керівництва.
Знаки пунктуації з безлічі представимо символів, які непредставлені в цьому переліку, можуть бути використані тільки в строковихлітерали, константах-символах і коментарях. p>
ESC-послідовності p>
ESC-послідовності-це спеціальні символьні комбінації,які представляють пробільні символи і неграфіческіе символи врядках та символьних константах. p>
Їх типове використання пов'язане зі специфікацією такихдій, як повернення каретки і табуляція, а також для завданнялітеральних уявлень символів, таких як символ лапки.
ESC-послідовність складається з похилої риси вліво, за якоюслід літера, знаки пунктуації ' "або комбінація цифр. У таблиці 2.2.наведений список ESC-послідовностей мови Сі.
-------------------------------------------------
ESC-послідовність Найменування
-------------------------------------------------
n Новий рядок p>
t Горизонтальна табу-ляція p>
v Вертикальна табула-ція p>
b Пробіл p>
r Повернення каретки p>
f Нова сторінка p>
a Дзвінок (сигнал) p>
'Одиночна лапки p>
"Подвійна лапки p>
Похила риса вліво p>
ddd ASCII символ у восьми-річної поданні p>
xdd ASCII символ в шестнад-цатірічном поданні p>
Табл. 2.2. ESC-послідовності p>
Якщо похила риска вліво передує символу, не включеному до цього списку, то похила риска вліво ігнорується, а символпредставляється як літеральний. Наприклад, зображення cпредставляє символ "c" в літеральной рядку або константі-символі. p>
Послідовності ddd і xdd дозволяють задати будь-який символ в ASCII
(Американський стандартний код інформаційного інтерфейсу) якпослідовність трьох вісімкових цифр або двох шістнадцятиричних цифр.
Наприклад, символ пробілу може бути заданий як