Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_1 часть_укр.doc
Скачиваний:
2
Добавлен:
09.11.2019
Размер:
1.41 Mб
Скачать

1. Загальні відомості

С++ – це універсальна мова програмування високого рівня, що є надмножиною мови програмування C.

С – це структурована, модульна, компактна мова програмування загального призначення, яка традиційно використовується для системного програмування. Програмні додатки, написані цієї мовою, легко встановити на інших комп'ютерах.

Мови С/С++ вміщають у собі, з одного боку, засоби мов програмування високого рівня: опис типів даних, оператори for, while, if і т.д., а, з іншого боку, засоби мови Асемблер: реєстрові змінні, адресну арифметику, можливість роботи з бітовими полями і т.д..

1.1. Структура програми

Прості програми мовою С++ мають, як правило, таку структуру:

#директива препроцесору

. . . . . . . . .

#директива препроцесору

функція а( ) {

оператори

}

функція b( ) {

оператори

}

//Головна функція, з якої починається виконання програми

main( ) {

оператори

}

Директиви препроцесору – управляють перетворенням тексту програми до її компіляції. Правила препроцесорної обробки визначає програміст за допомогою директив препроцесора, що починаються із символу #, наприклад,

#include <conio.h>

#define ZERO 0.0

де директива #include призначена для включення в програму тексту із заголовного файлу conio.h, який входить в стандартну бібліотеку С, а директива #define вказує правила заміни в тексті (замість ідентифікатора ZERO підставляється 0.0).

Програма являє собою набір описів і визначень, і складається з набору функцій. Серед цих функцій завжди повинна бути функція з ім'ям main, з якої починається виконання програми. Перед ім'ям функції містяться відомості про тип значення, що повертається функцією. За ім'ям функції в круглих дужках слідує список формальних параметрів (він може бути порожнім). Після списку у фігурних дужках розміщається тіло функції, що являє собою послідовність визначень, описів і операторів, що виконуються. Кожне визначення, опис або оператор закінчується крапкою з комою.

1.2. Типи даних

У мові С++ кожна величина має певний спосіб зберігання й запису в пам'яті – тобто певний тип. При складанні програми необхідно вказати типи даних, до яких належать значення змінних. Наприклад,

float z;

int a=99;

float g(int)

Тут змінна z оголошена як дійсна типу float, змінна а – як ціла типу int, а g оголошена як дійсна функція з аргументом цілого типу.

У С++ передбачений набір типів, що відображають особливості організації пам'яті більшості комп'ютерів і потреби в зберіганні даних. Всі типи даних у С++ можна розділити на дві великі групи: вбудовані типи (тобто існуючі у мові програмування) і користувальницькі типи (створюються самим програмістом). До вбудованих типів ставляться, насамперед, основні (або стандартні) типи:

bool – логічний;

char – символьний;

wchar_t – розширений символьний;

int – цілий;

float – дійсний;

double – дійсний подвійної точності;

Перші чотири типи називаються інтегральними типами, останні два – типами із плаваючою крапкою. Представлення інтегральних типів, відрізняється від коду величин із плаваючою крапкою.

Щоб розширити можливості програміста в застосуванні типів даних, існують модифікатори, які уточнюють внутрішнє представлення й діапазон значень стандартних типів:

signed – знаковий;

unsigned – беззнаковий;

long – довгий;

short – короткий.

При оголошенні змінної модифікатор ставиться перед ключовим словом типу, наприклад,

unsigned int x;

– оголошення цілої беззнакової змінної x. За умовчанням всі інтегральні типи є знаковими, тобто модифікатор signed для них можна вилучати. Модифікатори short і long можуть використовуватися тільки з типом int. Тому замість short int і long int для стислості можна записувати:

short x=221;

long z=-12345678;

До користувальницьких типів належать перелічуваний тип (enum), структури (struct) і класи (class).

Діапазони значень для основних типів даних, а також розмір пам'яті під них наведені у таблиці 1.1.

Табл. 1.1. Розмір пам'яті й діапазони значень для основних типів даних

Тип

Розмір (байт)

Інтервал значень

bool

1

true, false

char

1

-128.. 127

unsigned char

1

0.. 255

wchar_t

2

-32768 .. 32767

short

2

-32768 .. 32767

unsigned short

2

0.. 65535

int

16-розр. платформа

2

-32768 .. 32767

32-розр. платформа

4

-2147483648 .. 2147483647

unsigned int

16-розр. платформа

2

0.. 65535

32-розр. платформа

4

0.. 4294967295

long

4

-2147483648 .. 2147483647

unsigned long

4

0.. 4294967295

float

4

3.410-38 .. 3.41038

double

8

1.710-308 .. 1.710308

long double

10

3.410-4932 .. 1.1104932

Для змінної типу int виділяється 2 або 4 байти пам'яті залежно від розрядності платформи (мікропроцесора, операційної системи, середовища програмування). Наприклад, Turbo C++ працює на 16-розрядній платформі (MS-DOS), а C++ Builder і Visual C++ - на 32-розрядній (Windows, Unix).

1.3. Операції в С++

У мові С++ є обмежений набір базових типів даних, однак визначений великий набір операцій над даними. Операції служать для побудови виразів. Вираз являє собою послідовність операндів і знаків операцій і служить для обчислення деякого значення. Результат обчислення виразу залежить від пріоритетів операцій (табл. 1.2).

Таблиця 1. 2. Пріоритети операцій у С++

Пріоритет

Знак операції

Призначення

Схема

1

::

Розширення області видимості (доступ до глобального імені або імені з іншої області)

: : ідентифікатор (глобальний)

ім'я області: : ім'я_елемента структури

1

->

Звертання до елемента структури по покажчику на структуру

покажчик -> ім'я_члена_структури

1

.

Звертання до елемента структури по імені структури

ім'я_структури . ім'я_члена_структури

1

[]

Звертання до елемента масиву

покажчик [індекс]

1

typedef

Перетворення типу даного

ім'я_типу (вираз) або (тип) вираз

1

()

Виклик функції

Функція(аргументи)

2

++

Інкремент

++ L-значення або L-значення++

2

--

Декремент

-- L-значення або L-значення--

2

~

Бітове інвертування

~ цілий_вираз

2

!

Логічне заперечення

! вираз

2

-

Унарний мінус

- вираз

2

+

Унарний плюс

+ вираз

2

&

Одержання адреси

& L-значення

2

*

Розіменування покажчика

* покажчик

2

new

Виділення динамічної пам'яті

new тип даного

2

delete

Звільнення пам'яті

delete покажчик

2

sizeof

Розмір даного (типу даних)

sizeof вираз sizeof (ім'я типу )

3

*

Множення

вираз * вираз

3

/

Ділення

вираз / вираз

3

%

Залишок від ділення двох цілих

вираз % вираз

4

->*

Звертання до елементу структури за покажчиком

покажчик_на_структуру->* ім'я_елемента_структури-покажчика

4

.*

Звертання до елементу структури за іменем структури

ім'я_структури .* ім'я_члена_структури-покажчика

5

+

Додавання

вираз + вираз

5

-

Віднімання

вираз – вираз

6

<<

Зсув вліво

цілий_вираз << цілий _вираз

6

>>

Зсув вправо

цілий _вираз >> цілий _вираз

7

<

Менше

вираз < вираз

7

<=

Менше або дорівнює

вираз <= вираз

7

>

Більше

вираз > вираз

7

>=

Більше або дорівнює

вираз >= вираз

8

==

Дорівнює

вираз == вираз

8

!=

Не дорівнює

вираз != вираз

9

&

Побітове "І"

вираз & вираз

10

^

Виключне побітове "АБО"

вираз ^ вираз

11

|

Побітове "АБО"

вираз | вираз

12

&&

Логічне "І"

вираз && вираз

13

||

Логічне "АБО"

вираз | | вираз

14

?:

Умовний вираз

вираз ? вираз1 : вираз2

15

=

Просте присвоювання

вираз = вираз

15

@=

Складне присвоювання; @ - один зі знаків операцій * / % + - << >> & ^ |

вираз @= вираз

16

,

Операція слідування (операція «кома»)

вираз, вираз