47623 (588492)
Текст из файла
Дипломна робота
Мова програмування С++
Зміст
1. Створення простих програм на С++
1.1 Структура програми
1.2 Етапи виконання програми
1.3 Порядок запуску програми
2. Форматний ввід/вивід у мові С/С++
2.1 Функції вводу/виводу мови С
2.2 Функції вводу/виводу та маніпулятори мови С++
3. Лінійні програми на С++
3.1 Стандартні типи даних мови С++
3.2. Операції мови С++
4. Основні оператори мови С++
4.1 Складові оператори
4.2 Оператори розгалуження
4.3 Оператори циклу
4.4 Оператори переходу
5. Вказівними та операції над ними
5.1 Поняття вказівника
5.2 Дії над вказівниками
6. Робота з одновимірними масивами
6.1 Статичні та динамічні масиви
6.2 Рядки, як одновимірні масиви
7. Двовимірні масиви
8. Символьна інформація та рядки
8.1 Збереження символьної інформації
8.2 Функції вводу/виводу для роботи з рядками
8.3 Спеціальні функції для роботи з рядками та символами
9. Функції користувача
9.1 Функції: визначення, опис, виклик
9.2 Передача масивів у функцію
9.3 Перевантаження функцій у С++
9.4 Функції зі змінною кількістю параметрів
10. Структури
Список літератури
1. Створення простих програм на С++
C++ (Сі-плюс-плюс) — універсальна мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Розроблена Б'ярном Страуструпом (англ. Bjarne Stroustrup) в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та названа «Сі з класами». Страуструп перейменував мову у C++ у 1983 р. Базується на мові Сі. Визначена стандартом ISO/IEC 14882:2003.
1.1 СТРУКТУРА ПРОГРАМИ
Розглянемо програму, що виводить на екран монітора фразу “Ласкаво просимо до С++!”:
Приклад 1.
// Welcome.cpp – ім’я файла з програмою
# include
void main ()
{ cout << ” Ласкаво просимо до С++! \ n”;
}
Результат виконання програми:
Ласкаво просимо до С++!
У першому рядку програми міститься однорядковий коментар, що починається з символу “//”, який вказує, що після цього символу йде однорядковий коментар. Коментарі не викликають ніяких дій комп’ютера і ігноруються компілятором С++, а лише допомагають іншим людям читати і зрозуміти Вашу програму.
У другому рядку розміщено команду (директиву) препроцесору, що забезпечує включення до програми засобів зв’язку зі стандартними потоками вводу і виводу даних. Вказані засоби містяться у файлі під назвою iostream.h (мнемоніка: “і” (input) – ввід; “output” – вивід; “stream” – потік; “head” - заголовний). Рядок, що починається з ”#”, обробляється препроцесором перед компіляцією програми. Файл iostream.h повинен бути залучений для всіх програм, що виводять дані на екран монітора або вводять дані з клавіатури.
Третій рядок є заголовком функції з іменем main. Будь-яка програма на С++ повинна містити лише одну функцію з таким іменем. Саме з неї починається виконання програми. void – специфікатор типу, який вказує, що функція main в даному прикладі не повертає ніякого значення. Круглі дужки після main потрібні в зв’язку з форматом (синтаксисом) заголовка будь-якої функції. В них розміщується список параметрів. У нашому прикладі параметри не потрібні.
Тіло будь-якої функції повинно починатися і закінчуватися фігурними дужками, між якими знаходиться послідовність описів, операторів і визначень. Кожен оператор, визначення чи опис повинні закінчуватися крапкою з комою.
Рядок
cout << ” Ласкаво просимо до С++! \ n”;
є командою комп’ютеру надрукувати на екрані рядок символів, що записаний у лапках. Повний рядок, включаючи cout, операцію ”<<”, рядок ”Ласкаво просимо до С++! \ n” і крапку з комою “;”, називається оператором. Всі вводи і виводи в С++ виконуються над потоками символів. Таким чином потік символів Ласкаво просимо до С++! спрямовується до об’єкта стандартного потоку виводу cout, який пов’язаний з екраном. Вже зараз слід відмітити одну з принципових особливостей мови С++, яку називають перевантаженням або розширенням дії стандартних операцій. Операція ”<<” називається операцією „розмістити у потік” лишень у тому випадку, коли зліва від неї знаходиться ім’я об’єкта cout. Інакше пара символів “<<” означає бінарну операцію зсуву вліво. Символи правого операнда зазвичай виводяться так само, як вони виглядають між лапками.
Слід зазначити, що символи ”\n” не виводяться на екран. Комбінацію символів, що починаються з позначки оберненого Стеша (”\”), називають знаком переходу або escape-символом. Керуюча послідовність ”\n” означає перехід на початок нового рядка. Цей символ в лапках може знаходитися будь-де в рядку, при цьому послідовність символів, що знаходиться за ним, виводитиметься з нового рядка. Тобто результат виконання операції
cout << ” Ласкаво просимо \nдо С++! \ n”;
матиме вигляд:
Ласкаво просимо
до С++!
1.2 ЕТАПИ ВИКОНАННЯ ПРОГРАМИ
Вихідна програма, підготовлена на мові С++ у вигляді текстового файла з розширенням *.срр (welcome.cpp), проходить 3 етапи обробки:
-
препроцесорне перетворення тексту програми;
-
компіляція;
-
компоновка (редагування звязків чи складання).
Після цих 3 етапів формується машинний код програми, що виконується.
Задачею препроцесора є перетворення (доповнення) тексту програми до початку її компіляції. Правила препроцесорної обробки визначаються програмістом за допомогою директив препроцесора. Директива починається з ”#” (дієс, шарп). Наприклад,
1) #define - визначає правила заміни в тексті:
#define ZERO 0.0
Це означає, що кожне використання у програмі імені ZERO буде замінюватися на 0.0.
2) #include< імя заголовного файла > - передбачена для залучення до тексту програми тексту файлу з каталогу “Заголовних файлів” INCLUDE, які постачаються разом зі стандартними бібліотеками. Кожна бібліотечна функція чи обєкт С++ має відповідний опис в одному з заголовних файлів (наприклад, iostream.h, stdio.h, conio.h, math.h). Список заголовних файлів визначається стандартом мови. Використання директиви include не підєднує відповідну стандартну бібліотеку, а лише дозволяє долучити до тексту програми описи із зазначеного заголовного файлу. В нашому випадку препроцесор обробляє директиву #include і під’єднує до вихідного тексту програми засоби для обміну з дисплеєм. Далі файл передається на компіляцію, у ньому виявляються синтаксичні помилки, які потрібно усунути програмістові. Після безпомилкової компіляції текст програми перекладається компілятором на машинну мову, далі отримуємо об’єктний файл з розширенням *.obj. Підключення обєктних кодів файлів з визначеннями необхідних стандартних функцій і обєктів з бібліотеки відбувається на етапі компоновки, тобто після компіляції. У обєктному коді створюваної програми ніби замуровуються дірки за допомогою кодів стандартних функцій. Хоча в заголовних файлах містяться всі описи стандартних функцій, до коду програми залучаються лише функції й обєкти, які використовуються в програмі.
Після компоновки утворюється модуль програми з розширенням *.ехе.
Отже, в нашому випадку, виконавши директиви, препроцесор сформує повний текст програми, компілятор створить об’єктний файл welcome.obj, за замовчуванням обравши для нього зазначене ім’я, а компоновщик (редактор зв’язків Linker) доповить програму бібліотечними функціями, наприклад, для роботи з об’єктом cout і побудує модуль welcome.exe, запустивши, який ми одержуємо на екрані бажану фразу. Схема етапів виконання програми наведена на рис. 1.1.
1.3 ПОРЯДОК ЗАПУСКУ ПРОГРАМИ
-
Відкрийте нове вікно редагування (File > New) і надайте йому ім’я Welcome (File > Save As);
-
У новому вікні наберіть текст програми, що наводиться у Прикладі 1.
-
Відкомпілюйте програму (Compile > Compile або (Alt+F9)). В разі повідомлень про помилку, перевірте текст програми і усуньте невідповідності. Щоразу, вносячи зміни у вихідний текст програми, зберігайте файл (File > Save або F2). Після чого змінену програму слід відкомпілювати;
-
Запуск відкомпільованої програми здійснюється за командою (Run > Run або Ctrl+F9). Якщо з моменту останньої компіляції вихідний код було модифіковано, ця команда виконає послідовно компіляцію і компоновку. Результат виконання програми можна переглянути, натиснувши комбінацію клавіш Alt+F5.
2. Форматний ввід/вивід у мові С/С++
2.1 ФУНКЦІЇ ВВОДУ/ВИВОДУ МОВИ С
У мові С++ немає вбудованих засобів вводу/виводу – вони здійснюються за допомогою функцій, типів та об’єктів, що містяться у стандартних бібліотеках. Використовується два способи: функції, успадковані з мови С та об’єкти С++.
Основні функції вводу/виводу в стилі С, опис яких міститься у заголовному файлі :
рrintf (, );
Керуючий рядок береться у лапки і вказує компілятору вигляд інформації, що виводиться. Вона може містити специфікації перетворення і керуючи або escape-символи.
Специфікація перетворення має такий вигляд:
% <прапор> <розмір поля . точність> специфікація,
де прапор може набувати наступних значень:
- вирівнювання вліво числа, що виводиться (за замовчуванням виконується вирівнювання вправо);
+ виводиться знак додатного числа;
розмір поля – задає мінімальну ширину поля, тобто довжину числа. Якщо ширини поля недостатня, автоматично виконується його розширення;
точність – задає точність числа, тобто кількість цифр його дробової частини;
специфікація вказує на вигляд інформації, що виводиться. У таблиці 2.1 наведено основні формати функції друку.
Таблиця 2.1
Формат | Тип інформації, що виводиться |
%d | десяткове ціле число |
% і | для виведення цілих чисел зі знаком (printf (“a=%i”, -3)); |
%u | для виводу беззнакових цілих чисел (printf(“s=%u”, s)) |
%c | один символ |
%s | рядок символів |
%e | число з плаваючою крапкою (експоненційний запис) |
%f | число з плаваючою крапкою (десятковий запис) (printf(“b=%f\n, c=%f\n, d=%f\n”, 3.55, 82.2, 0.555 )); |
%u | десяткове число без знака |
Керуючий рядок може містити наступні керуючі символи:
\n – перехід на новий рядок;
\t – горизонтальна і \v – вертикальна табуляція;
\b – повернення назад на один символ;
\r – повернення на початок рядка;
\a – звуковий сигнал;
\” –лапки;
\? – знак питання;
\\ - зворотний слеш.
Список аргументів - обєкти, що друкуються (константи, змінні). Кількість аргументів та їх типи повинні відповідати специфікаціям перетворення в керуючому рядку.
Приклад 1.
#include
#define PI 3.1415926
void main()
{
int number=5, cost=11000, s=-777;
float bat=255, x=12.345;
printf ("%d студентів зїло %f бутербродів.\n", number, bat);
printf ("Значення числа pi рівне%f.\n", pi);
printf ("Вартість цієї машини %d%s\n", cost,"у.е");
printf ("x=%-8.4f s=%5d%8.2f ", x, s, x);
}
В результаті виконання останньої функції printf() на екрані буде виведено:
х=12.3450 s= -777 12.34
Функція scanf передбачена для форматного вводу інформації довільного вигляду. Загальний вигляд функції:
scanf (, );
На відміну від функції виводу printf(), scanf() використовує у списку адреси змінних, для одержання яких перед іменем змінної ставиться символ ”&”, що позначає унарну операцію одержання адреси. Для вводу значень рядкових змінних символ ”&” не використовується. При використанні формату %s рядок вводиться до першого пропуску. Вводити дані можна як в одному рядку через пропуск, так і в різних рядках.
Дану особливість ілюструє відповідна частина програми:
int course;
float grant;
char name[20];
printf ( "Вкажіть ваш курс, стипендію, імя \n");
scanf ( "%d%f", &course, &grant);
scanf ( "%s", name); /* ”&” відсутній при зазначенні масиву символів */
Для зміни кольору тексту використовують функції із файла : clrscr() – очищує екран; textcolor(Колір) – задає колір символів; textbackground (Колір) – встановлює колір фону. Вивід тексту на екран здійснюється за допомогою функції cprintf(), яка використовується аналогічно printf(). Зверніть увагу на те, що перехід на початок нового рядка у цій функції здійснюється за допомогою комбінації ”\n\r”.
Колір можна задати за допомогою цілої або іменованої константи, перелік яких наводиться у таблиці 2.2.
Таблиця 2.2
Колір | Константа | Значення константи |
Чорний | BLACK | 0 |
Синій | BLUE | 1 |
Зелений | GREEN | 2 |
Червоний | RED | 4 |
Фіолетовий | MAGENTA | 5 |
Сірий | GREY | 8 |
Блакитний | LIGHTBLUE | 9 |
Помаранчевий | LIGHTRED | 12 |
Жовтий | YELLOW | 14 |
Білий | WHITE | 15 |
2.2 ФУНКЦІЇ ВВОДУ/ВИВОДУ ТА МАНІПУЛЯТОРИ МОВИ С++
А ось як виглядає програма вводу/виводу з використанням бібліотеки класів С++:
Приклад 2.
# include
void main()
{ int i;
cout<< “Введіть ціле число\n”;
//об’єкт для вводу з клавіатури і >>розміщення у потік виводу
cin>> i;
cout<< “Ви ввели число”<< i <<”дякую!”;
}
Для форматного виводу у С++ використовуються маніпулятори, для використання яких до програми потрібно підключити заголовний файл :
setw(int) – встановлює максимальну ширину поля виводу чисел та рядків (не символів);
setprecision(int) – встановлює максимальну кількість цифр дробової частини для дійсних чисел з фіксованою крапкою;
setiosflags(ios::showpoint | ios::fixed) – вивід дійсних чисел з фіксованою крапкою;
setiosflags(ios::left) або setiosflags(ios::right) – вирівнювання по лівому або правому полю;
endl – при виводі включає у потік символ нового рядка, еквівалентний “\n” (його опис міститься у файлі iostream.h).
Маніпулятори спрямовуються в потік виводу, аналогічно тому, як це зроблено у прикладі 3:
Приклад 3.
# include
#include
void main()
{float d=52.28679;
float f= 410.0;
cout<< setprecision(3);
cout< cout< } Результат виводу ( позначає пробіл): 52.287 410.000 У даному прикладі маніпулятори точності та фіксації крапки спрямовуються у потік виводу одноразово, тоді як ширину поля виводу необхідно встановлювати для кожного значення. 3.1 СТАНДАРТНІ ТИПИ ДАНИХ МОВИ С++ Всі обєкти (змінні, масиви тощо), з якими працює програма в С/С++, необхідно визначати або описувати. Найпростіша форма визначення змінної: ; При оголошенні обєкти можна ініціалізувати (задавати початкове значення). Наприклад: int j=10, m(3), n; float c(-1.3), l=-10.23, f1; Оголошення повідомляють компілятору про властивості та імена обєктів і функцій. Змінні можуть змінювати свої значення. При наданні значення змінній у комірці памяті, яка відводиться під неї, розміщується код цього значення. Доступ до значення цієї змінної можливий через імя змінної, а доступ до ділянки памяті здійснюється за її адресою. Розмір ділянки памяті, що відводиться змінній, визначається її типом. Перелік базових типів даних наведено у таблиці 3.1. Таблиця 3.1 Тип даних Назва Розмір, біт Діапазон значень unsigned char Беззнаковий цілий довжиною не менше 8 біт 8 0 . . 255 сhar Цілий довжиною не менше 8 біт 8 -128 . . 127 unsigned int Без знаковий цілий 16 0 . . 65535 short int (short) Короткий цілий 16 -32768 . . 32767 unsigned short Беззнаковий короткий цілий 16 0 . . 65535 int Цілий 16 -32768 . . 32767 unsigned long Беззнаковий довгий цілий 32 0 . . 4294967295 long int (long) Довгий цілий 32 -214748348 . . 2147483647 float Дійсний одинарної точності 32 3.4Е-38 . . 3.4Е+38 double Дійсний подвійної точності 64 1.7Е-308 . . 1.7Е+308 long double Дійсний максимальної точності 80 3.4Е-4932 . . 1.1Е+4932 3.2 ОПЕРАЦІЇ МОВИ С++ Позначки операцій – це один або декілька символів, що визначають дію над операндами. Операції поділяють на унарні, бінарні та тернарні за кількістю операндів, які беруть участь в операції (таблиця 3.2). Таблиця 3.2. Операція Короткий опис Унарні операції & Операція одержання адреси операнда * Звернення за адресою (розіменування) - Унарний мінус – змінює знак арифметичного операнда ~ Порозрядове інвертування внутрішнього двійкового коду (побітове заперечення) ! Логічне заперечення (НЕ) значення операнда. Цілочисельний результат 0 (якщо операнд ненульовий, тобто істинний) або 1 (якщо операнд нульовий, тобто хибний). Таким чином: !1 дорівнює 0; !2 дорівнює 0; !(-5)=0; !0 дорівнює 1. ++ Інкремент (збільшення на одиницю): Префіксна операція (++х) збільшує операнд на 1 до його використання. Постфіксна операція (х++) збільшує операнд на 1 після його використання. int m=1, n=2; int a=(m++)+n; // a=3, m=2, n=2 int b=m+(++n);// b=6, m=2, n=3 - - Декремент (зменшення на одиницю): Префіксна операція (--х) зменшує операнд на 1 до його використання. Постфіксна операція (х--) зменшує операнд на 1 після його використання. sizeof Обчислення розміру (в байтах) обєкта того типу, який має операнд. Має дві форми: 1) sizeof (вираз); sizeof(1.0); // Результат - 8, Дійсні константи за замовчуванням мають тип double; 2) sizeof (тип) sizeof (char); // Результат – 1. Бінарні операції Арифметичні операції + Бінарний плюс (додавання арифметичних операндів) - Бінарний мінус (віднімання арифметичних операндів) Мультиплікативні * Добуток операндів арифметичного типу / Ділення операндів арифметичного типу (якщо операнди цілочисельні, абсолютне значення результату заокруглюється до цілого, тобто 20/3 дорівнює 6) % Одержання залишку від ділення целочисельних операндів (13%4 = 1) Операції зсуву (визначені лише для цілочисельних операндів) << Зсув вліво бітового представлення значення лівого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда (4<<2 дорівнює 16, т.я. код 4 100, а звільнені розряду обнуляються, 10000 – код 16) >> Зсув вправо бітового представлення значення правого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда Порозрядні операції & Порозрядна кон’юнкція (І) бітових представлень значень цілочисельних операндів | Порозрядна диз’юнкція (АБО) бітових представлень значень цілочисельних операндів ^ Порозрядне виключне АБО бітових представлень значень цілочисельних операндів Операції порівняння < Менше, ніж > Більше, ніж <= Менше або рівне >= Більше або рівне = = Рівне != Не рівне Логічні бінарні операції && Кон’юнкція (І) цілочисельних операндів або відношень, цілочисельний результат (0) або (1) || Диз’юнкція (АБО) цілочисельних операндів або відношень, цілочисельний результат (0) або (1) (умова 0 Умовна операція ? : Вираз1 ? Вираз2 : Вираз3; Першим вираховується значення Виразу1. Якщо воно істинне, тоді обчислюється значення Виразу2, яке стає результатом. Якщо при обчисленні Виразу1 одержуємо 0, тоді в якості результату береться значення Виразу3. Наприклад: х<0 ? -x : x ; //обчислюється абсолютна величина x. Таблиця 3.3. Пріоритет виконання операцій Ранг Операції Напрямок виконання 1 () (виклик функції), [], ->, "." >>> 2 !, ~, +, - (унарні), ++, --, *, (тип), sizeof, (new,delete – Сі++) <<< 3 .* , ->* - Сі++ >>> 4 *, /, % (бінарні) >>> 5 +, - (бінарні) >>> 6 <> >>> 7 <, , > >>> 8 ==, != >>> 9 & (порозрядна) >>> 10 ^ >>> 11 | (порозрядна) >>> 12 && (логічна) >>> 13 || (логічна) >>> 14 ?: (тернарна) <<< 15 =, +=, -=, *=, /=, %=, &=, ^=, |=, <>= <<< 16 "," (кома) >>> Основні матичні функції мови С/С++, опис яких міститься у файлі , наведені у таблиці 3.4. Таблиця 3.4 Матичний запис Функція Пояснення Приклад arccos x acos Повертає арккосинус кута, рівного х радіан acos(x); arcsin x asin Повертає арксинус аргументу х в радіанах asin(x); arctg x atan Повертає арктангенс аргументу х в радіанах atan(x); аrctg(x/у) atan2 Повертає арктангенс відношення параметрів х та у в радіанах atan2(x, y); - ceil Заокруглює дійсне значення х до найближчого більшого цілого і повертає його як дійсне ceil(x); cosx cos Повертає косинус кута, рівного х радіан cos(x); chx=1/2(ex+e-x) cosh Повертає гіперболічний косинус аргументу, рівного х радіан cosh(x); ex exp Повертає результат піднесення числа е до степені х exp(x); |x| fabs Повертає модуль дійсного числа х fabs(x); - floor Заокруглює дійсне число до найближчого меншого числа і повертає результат як дійсний floor(x); - fmod Повертає залишок ділення х на у. Аналогічна операції %, але працює з дійсними числами fmod(x, y); ln x log Повертає значення натурального логарифму х log(x); lg x log10 Повертає значення десяткового логарифму х log10(x); xy pow Вираховує значення числа х у степені у pow(x, y); sinx sin Повертає синус кута, рівного х радіан sin(x); sh x=1/2 (ex-e-x) sinh Повертає гіперболічний синус кута, рівного х радіан sinh(x); sqrt Визначає корінь квадратний числа х sqrt(x); tg x tan Повертає тангенс кута, рівного х радіан tan(x); tgh x tanh Повертає гіперболічний тангенс кута, рівного х радіан tanh(x); Таблиця 3.5 Операції присвоювання Операція Пояснення Приклад = Присвоїти значення виразу-операнду з правої частини операнду лівої частини Р=10.5-3*х *= Присвоїти операнду лівої частини добуток значень обох операндів Р*=2 еквівалентно Р=Р*2 /= Присвоїти операнду лівої частини результат від ділення значення лівого операнда на значення правого Р/=(2.2-х) еквівалентно Р=Р/(2.2-х) %= Присвоїти лівому операнду залишок від ділення цілочисельного значення лівого операнда на цілочисельне значення правого операнда Р%=3 еквівалентно Р=Р%3 += Присвоїти операнду лівої частини суму значень обох операндів А+=В еквівалентно А=А+В -= Присвоїти операнду лівої частини різницю значень лівого і правого операндів Х-=3.4-у еквівалентно Х=Х-(3.4-у) 4. Основні оператори мови С++ 4.1 СКЛАДОВІ ОПЕРАТОРИ Складовий оператор – це два або більше оператори, що повинні виконуватися у певній частині програми як один оператор. До складових операторів належать власне складовий оператор та блок. В обох випадках - це послідовність операторів, розміщених у фігурних дужках. Блок відрізняється від складового оператора наявністю в його тілі оператора визначення об’єкту (змінної, константи, масиву тощо). Наприклад: {n++; summa+=n;}//це складовий оператор {int n=0; n++;summa+=n;} //це блок Оператор умовного переходу if використовується для спрямування ходу програми за однією з гілок обчислень в залежності від певної умови. Загальна форма запису: if (умова) оператор1; else оператор2; Наприклад, для знаходження коренів квадратного рівняння використовується запис: if (d>=0) {x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); cout<< “\nx1=”< } else cout<<“\nРозвязку немає”; Якщо оператор1 та/або оператор2 містять два або більше операторів, їх беруть у фігурні дужки {}, тобто вони є складовими. Оператор if перевіряє істинність чи хибність умови. Якщо умова справджується (не рівна 0), тоді виконується оператор1, інакше, при хибності умови (==0), виконується оператор2. Другу частину оператора (else оператор2;) можна опускати. Така його форма має назву “скороченої”. Тоді у випадку хибності умови, керування передається до оператора, що йде услід за умовним оператором. Якщо оператор1 і оператор2 в свою чергу є операторами if , вони є вкладеними. Загальний вигляд вкладеного оператора if: if (умова1) оператор1; else if (умова2) оператор2; else оператор3; В якості умов у мовах С/С++ використовуються стандартні операції відношення: <, <=, >, >=, !=, ==. Пари наведених символів не можна відокремлювати чи переставляти. Для об’єднання в умові декількох умов використовуються логічні операції. Наведемо їх перелік в порядку спадання пріоритету: ! (заперечення або логічне НІ), && (кон’юнкція або логічне І), || (диз’юнкція або логічне АБО). Між позначками && та || не дозволяються пробіли. Наприклад: 0 ((!x)&&(y>0)||((z==1)&&(k>0)) Загальна форма запису оператора вибору: switch(вираз) { case consnant1: оператори; break; сase consnantN: оператори;break; default: оператори; }, де consnant1…consnantN - цілі або символьні константи. При виконанні оператора switch, обраховується вираз, записаний після switch і його значення послідовно порівнюється з константами, записаними після case. При першому ж співпаданні виконуються оператори, позначені даною міткою. Якщо виконувані оператори не містять оператор переходу break, далі виконуватимуться оператори усіх наступних варіантів. Якщо значення виразу, записаного після switch, не співпало з жодною константою, виконуватимуться оператори після мітки default, яка не є обов’язковою. 4.3 ОператорИ циклУ Цикл з параметром for: Основна форма запису: for (вираз_1; вираз_2; вираз_3 ) оператор; де вираз_1 – ініціалізація початкового значення параметру циклу; вираз_2 – перевірка умови на продовження циклу; вираз_3 – зміна параметру циклу з кожною ітерацією (корекція); оператор – тіло циклу, простий або складовий оператор. Цикл продовжується до тих пір, поки вираз_3 не стане рівним 0. Будь-який вираз можна опускати, залишаючи натомість “ ; ”. Приклади використання циклу з параметром: Зменшення параметра: for ( n=10; n>0; n--) { } Зміна кроку коректування: for ( n=2; n>60; n+=13) { } 3)Корекція може здійснюватися не лише за допомогою додавання чи віднімання: for ( d=100.0; d<150.0;d*=1.1) { } for (x=1;y<=75;y=5*(x++)+10) { } Можна використовувати декілька виразів ініціалізації або модифікації: for (x=1, y=0; x<10;x++,y+=x) { }. Цикл з передумовою while: Основна форма запису: while (умова) оператор; де оператор – це простий, складовий або порожній оператор. Цикл виконується до тих пір, поки умова приймає значення “true”, тобто вираз у дужках повертає ненульовий результат. У циклі з передумовою спочатку перевіряється істинність умови, а потім виконується оператор тіла циклу. Тому цикл while не виконується жодного разу, якщо від початку умова буде хибною. Цикл з післяумовою do – while: Основна форма запису: do оператор; while (умова); де оператор – це простий, складовий чи порожній оператор. Тіло циклу виконується до тих пір, поки умова справджується. Оскільки в циклі do–while умова перевіряється в кінці, оператор тіла циклу виконуватиметься хоча б один раз. Для запобігання безкінечності циклу в тілі циклів while та do–while потрібно передбачити зміну параметрів, які входять до умови. 4.4 ОПЕРАТОРИ ПЕРЕХОДУ Оператори переходу виконують безумовну передачу управління. goto - оператор безумовного переходу. Керування передається оператору з даною міткою: : оператор; В мові С мітка не декларується. break - оператор перериває цикл або перемикач, управління передається на перший наступний оператор; while (умова) { if () break; }. Тобто оператор break доцільно використовувати, коли умову продовження ітерації потрібно перевіряти в тілі циклу. continue – припинення поточної і перехід до наступної ітерації циклу. Використовується, коли тіло циклу містить розгалуження. 3) return – здійснює повернення результату з тіла функції. 5. Вказівники та операції над ними 5.1 ПОНЯТТЯ ВКАЗІВНИКА Кожна змінна у програмі - це об’єкт, який володіє ім’ям і значенням. Після визначення змінної з ініціалізацією всі звернення у програмі до неї за іменем замінюються компілятором на адресу іменованої області оперативної пам’яті, в якій зберігається значення змінної (Рис. 5.1). Програміст може визначити власні змінні для збереження адрес областей пам’яті. Такі змінні називають вказівниками. int a=10; Рис. 5.1. Вказівник визначається наступним чином: <тип> *< ідентифікатор> <ініціалі затор>; Приклад 1. Визначення вказівників int* pa=&a;// вказівник ра містить значення адреси змінної а float *ptr (NULL); // Нульовий вказівник на об’єкт типу float char*p; // Неініціалізований вказівник на об’єкт типу char Значення адреси змінної одержується за допомогою унарної операції ”&”. Для доступу до комірки пам’яті, виділеної під змінну через вказівник до останнього, слід застосувати унарну операцію розіменування ”*”. Приклад 2. Непряма адресація через вказівник int x=2; //змінна типу int int *y =&x;// вказівник на елемент даних типу int *y=1; // через вказівник до поля x вноситься значення 1, //тобто x=1 p=new char(12); В останньому операторі прикладу 2 неініціалізований вказівник р, описаний у прикладі 1, асоціюється з ділянкою у динамічній пам’яті під змінну типу char, до якої заноситься значення 12. 5.2 ДІЇ НАД ВКАЗІВНИКАМИ Приклад 3: Дії над вказівниками int a=5; int *p=&a, *p2, *p2; p2=p1=p; ++p1; p2+=2;
3. Лінійні програми на С++
Тернарна операція
4.2 ОПЕРАТОРИ РОЗГАЛУЖЕННЯ
Оператор вибору switch подібний до умовного оператора if, проте у ньому замість виразу-умови використовується вираз, результатом якого може бути декілька цілочисельних значень, кожне з яких, вимагає виконання свого оператора. Отже, програму можна спрямувати більше ніж у двох напрямках.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.