Смекни!
smekni.com

Мова програмування С++ (стр. 2 из 7)

\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 бутербродів.&bsol;n", number, bat);

printf ("Значення числа pi рівне%f.&bsol;n", pi);

printf ("Вартість цієї машини %d%s&bsol;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 ( "Вкажіть ваш курс, стипендію, ім¢я &bsol;n");

scanf ( "%d%f", &course, &grant);

scanf ( "%s", name); /* ”&” відсутній при зазначенні масиву символів */

Для зміни кольору тексту використовують функції із файла <conio.h>: clrscr() – очищує екран; textcolor(Колір) – задає колір символів; textbackground (Колір) – встановлює колір фону. Вивід тексту на екран здійснюється за допомогою функції cprintf(), яка використовується аналогічно printf(). Зверніть увагу на те, що перехід на початок нового рядка у цій функції здійснюється за допомогою комбінації ”&bsol;n&bsol;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<< “Введіть ціле число&bsol;n”;

//об’єкт для вводу з клавіатури і >>розміщення у потік виводу

cin>> i;

cout<< “Ви ввели число”<< i <<”дякую!”;

}

Для форматного виводу у С++ використовуються маніпулятори, для використання яких до програми потрібно підключити заголовний файл <iomanip.h>:

setw(int) – встановлює максимальну ширину поля виводу чисел та рядків (не символів);

setprecision(int) – встановлює максимальну кількість цифр дробової частини для дійсних чисел з фіксованою крапкою;

setiosflags(ios::showpoint | ios::fixed) – вивід дійсних чисел з фіксованою крапкою;

setiosflags(ios::left) або setiosflags(ios::right) – вирівнювання по лівому або правому полю;

endl – при виводі включає у потік символ нового рядка, еквівалентний “&bsol;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. Лінійні програми на С++

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. Пріоритет виконання операцій