\n – перехід на новий рядок;
\t – горизонтальна і \v – вертикальна табуляція;
\b – повернення назад на один символ;
\r – повернення на початок рядка;
\a – звуковий сигнал;
\” –лапки;
\? – знак питання;
\ - зворотний слеш.
Список аргументів - об¢єкти, що друкуються (константи, змінні). Кількість аргументів та їх типи повинні відповідати специфікаціям перетворення в керуючому рядку.
Приклад 1.
#include <stdio.h>
#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); /* ”&” відсутній при зазначенні масиву символів */
Для зміни кольору тексту використовують функції із файла <conio.h>: 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 <iostream.h>
void main()
{ int i;
cout<< “Введіть ціле число\n”;
//об’єкт для вводу з клавіатури і >>розміщення у потік виводу
cin>> i;
cout<< “Ви ввели число”<< i <<”дякую!”;
}
Для форматного виводу у С++ використовуються маніпулятори, для використання яких до програми потрібно підключити заголовний файл <iomanip.h>:
setw(int) – встановлює максимальну ширину поля виводу чисел та рядків (не символів);
setprecision(int) – встановлює максимальну кількість цифр дробової частини для дійсних чисел з фіксованою крапкою;
setiosflags(ios::showpoint | ios::fixed) – вивід дійсних чисел з фіксованою крапкою;
setiosflags(ios::left) або setiosflags(ios::right) – вирівнювання по лівому або правому полю;
endl – при виводі включає у потік символ нового рядка, еквівалентний “\n” (його опис міститься у файлі iostream.h).
Маніпулятори спрямовуються в потік виводу, аналогічно тому, як це зроблено у прикладі 3:
Приклад 3.
# include<iostream.h>
#include <iomanip.h>
void main()
{float d=52.28679;
float f= 410.0;
cout<< setprecision(3);
cout<<setiosflags(ios::showpoint | ios::fixed);
cout<<setw(12)<<d<<endl<<setw(12)<<f<<endl;
}
Результат виводу ( позначає пробіл):
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=2int 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<x<1 мовою С++ записується як 0<x && x<1) |
Тернарна операція | |
Умовна операція | |
? : | Вираз1 ? Вираз2 : Вираз3;Першим вираховується значення Виразу1. Якщо воно істинне, тоді обчислюється значення Виразу2, яке стає результатом. Якщо при обчисленні Виразу1 одержуємо 0, тоді в якості результату береться значення Виразу3.Наприклад:х<0 ? -x : x ; //обчислюється абсолютна величина x. |
Таблиця 3.3. Пріоритет виконання операцій