- •Обчислювальна техніка та алгоритмічні мови Методичні вказівки до лабораторних робіт
- •Загальні відомості
- •Структура програми
- •Типи даних
- •Умовний оператор if-else
- •Оператор вибору switch
- •Оператори циклу
- •Алгоритм обчислення ряду
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота 3. «Функції. Форматне введення-виведення даних»(2 год.)
- •Теоретичні відомості
- •Ступеневі ряди
- •Форматне виведення даних в с
- •Форматне введення в с
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота 4.«Одновимірні масиви.Покажчики. Рядки»(4 год.)
- •Теоретичні відомості Масиви й покажчики
- •Записи «покажчик-зсув» і «покажчик-індекс»
- •Рядки як одновимірні масиви
- •Передача рядка у функцію
- •Введення/виведення символів і рядків
- •Бібліотечні функції для роботи з символами та рядками
- •Постановка задачі
- •Варіанти
- •Передача масиву у функцію
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота6. «Динамічні одновимірні масиви»(2 год.)
- •Теоретичні відомості Динамічні масиви
- •Видалення елемента із масиву
- •Вставка елемента в масив
- •Перестановка двох елементів
- •Циклічна перестановка елементів
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота7. "Структури: складені типи даних"(2 год.)
- •Теоретичні відомості
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Література
Загальні відомості
Алгоритмична моваC++. Структура програми, типи даних, операції
С++ – це універсальна мова програмування високого рівня, що є надмножиною мови програмування C.
С – це структурована, модульна, компактна мова програмування загального призначення, яка традиційно використовується для системного програмування, та створення різноманітних швидкодіючих програмних додатків.
Мови С/С++ вміщають у собі, з одного боку, засоби мов програмування високого рівня: опис типів даних, оператори for, while, ifі т.д., а, з іншого боку, засоби мови Асемблер: реєстрові змінні, адресну арифметику, можливість роботи з бітовими полями і т.д.
Структура програми
Прості програми мовою С++ мають, як правило, таку структуру:
#директива препроцесору
. . . . . . . . .
#директива препроцесору
функція а( ) {
оператори
}
функція b( ){
оператори
}
//Головна функція, з якої починається виконання програми
main( ) {
оператори
}
Директиви препроцесору – управляють перетворенням тексту програми до її компіляції. Правила препроцесорної обробки визначає програміст за допомогою директив препроцесора, що починаються із символу #, наприклад,
#include<conio.h>
#define ZERO 0.0
де директива #include призначена для включення в програму тексту із заголовного файлу conio.h, який входить в стандартну бібліотеку С,а директива#defineвказує правила заміни в тексті (замість ідентифікатора ZERO підставляється 0.0).
Програма являє собою набір описів і визначень, і складається з набору функцій. Серед цих функцій завжди повинна бути функція з ім'ям main, з якої починається виконання програми. Перед ім'ям функції містяться відомості про тип значення, що повертається функцією. За ім'ям функції в круглих дужках слідує список формальних параметрів (він може бути порожнім). Після списку у фігурних дужках розміщається тіло функції, що являє собою послідовність визначень, описів і операторів, що виконуються. Кожне визначення, опис або оператор закінчується крапкою з комою.
Типи даних
У мові С++ кожна величина має певний спосіб зберігання й запису в пам'яті – тобто певний тип. При складанні програми необхідно вказати типи даних, до яких належать значення змінних. Наприклад,
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 для них можна вилучати. Замість shortint і long int для стислості можна записувати:
short x=221;
long z=-12345678;
До користувальницьких типів належать перелічуваний тип (enum), структури (struct) і класи (class).
Діапазони значень для основних типів даних, а також розмір пам'яті під них наведені у таблиці 1.
Табл. 1. Розмір пам'яті й діапазони значень для основних типів даних
Тип |
Розмір(байт) |
Інтервал значень |
|
bool |
1 |
true, false |
|
char |
1 |
-128.. 127 |
|
unsigned char |
1 |
0.. 255 |
|
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.410-38 .. 3.41038 |
|
double |
8 |
1.710-308 .. 1.710308 |
|
long double |
10 |
3.410-4932 .. 1.1104932 |
|
Для змінної типу int виділяється 2 або 4 байти пам'яті залежно від розрядності платформи (мікропроцесора, операційної системи, середовища програмування).
Операції в С++
У мові С++ є обмежений набір базових типів даних, однак визначений великий набір операцій над даними. Операції служать для побудови виразів. Вираз являє собою послідовність операндів і знаків операцій і служить для обчислення деякого значення. Результат обчислення виразу залежить від пріоритетів операцій (табл. 2).
Таблиця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 |
, |
Операція слідування (операція «кома») |
вираз, вираз |
Оператори С++
