Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторний практикум інф сис та стр даних.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.39 Mб
Скачать

Вибір індивідуального завдання

Вибрати назви змінних для дослідження в завданні 2 згідно з варіантом з таблиці:

(місяць народження студента) % 4

(день народження студента) % 4

0

1

2

3

0

v0 , w1 ,

v3 , w4

v1 , w2 ,

v4 , w5

v2 , w3 ,

v5 , w6

v3 , w4,

v6 , w7

1

v4 , w5 ,

v7 , w8

v5 , w6 ,

v0, w1

v6 , w7 ,

v1 , w2

v7 , w0,

v2 , w3

2

v0 , w2,

v4, w7

v1 , w3 ,

v5 , w0

v2 , w4 ,

v6 , w1

v3 , w5,

v7 , w2

3

v4 , w6 ,

v0 , w3

v5 , w7 ,

v1, w4

v6 , w0,

v2 , w5

v7 , w1,

v3 , w6

Тривалість роботи

Вхідний контроль, виконання лабораторної роботи, формування отриманих результатів у формі письмового звіту згідно завдання, аналіз результатів роботи та висновки, захист роботи виконуються протягом двох аудиторних занять.

Основні теоретичні положення

Компілятор мови С++ виконує автоматичне перетворення типів даних, особливо в математичних виразах, коли найчастіше цілочисельний тип перетворюється у тип з плаваючою комою, причому значення типу char та int в арифметичних виразах змішуються: кожний з таких символів автоматично перетворюється в ціле. Взагалі, якщо операнди мають різні типи, перед тим, як виконати операцію, молодший тип "підтягується" до старшого. Результат - старшого типу. Отже,

char та short перетворюються в int;

float перетворюється в double;

• якщо один з операндів long double, то і другий перетворюється в long double;

• інакше, якщо один з операндів long, тоді другий перетворюється відповідно до того ж типу, і результат буде long;

• інакше, якщо один з операндів unsigned, тоді другий перетворюється відповідно до того ж типу, і результат буде unsigned.

Приклад:

double ft, sd;

unsigned char ch;

unsigned long in;

int i;

/* ... */

sd = ft*(i+ch*in);

При виконанні оператора присвоювання в даному прикладі правила перетворення типів будуть використані наступним чином. Операнд ch перетворюється до unsigned int. Після цього він перетворюється до типу unsigned long. За цим же принципом і перетворюється до unsigned long і результат операції, що розміщена в круглих дужках буде мати тип unsigned long. Потім він перетворюється до типу double і результат всього виразу буде мати тип double.

Взагалі, тип результату кожної арифметичної операції виразу є тип того операнду, який має у відповідності більш високий тип приведення.

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