- •До лабораторної роботи № 2 з дисципліни
- •6.050102 “Комп’ютерна інженерія”
- •1. Мета роботи
- •2. Теоретичні відомості
- •3. Порядок виконання роботи
- •4. Завдання на лабораторну роботу
- •5. Вимоги до оформлення звіту
- •Мета роботи
- •6. Контрольні завдання
- •Список літератури
- •Мета роботи……………………………………..………………………………………..……3
- •Теоретичні відомості……………………………….…….……………………………..……..3
- •Додаток а
- •Методичні вказівки
- •"Перетворення типів даних"
- •6.050102 “Комп’ютерна інженерія
4. Завдання на лабораторну роботу
Обчислити вирази та визначити, які неявні та явні перетворення типів будуть відбуватись. Хід міркувань підтвердити програмними результатами.
Далі використовувати такі позначення:
RN - число, що відповідає року народження,
MN - число, що відповідає місяцю народження
DN - число, що відповідає дню народження
mn і dn– відповідні значення, що й MN і DN записані у 8 системі числення і записані у вигляді двох цифр (наприклад 03 або 15),
Pr1 – ASCII-код першої літери прізвища (латинська велика літера),
pr2 – ASCII-код другої літери прізвища (латинська мала літера),
pr3 – ASCII-код третьої літери прізвища (латинська мала літера).
Примітка: Наприклад, студенту Громову (Gromov), який народився 13 листопада 1995 року (13.11.1995), треба виконати наступні підстановки:
замість RN підставляти 1995,
замість MN підставляти 3, оскільки 11 % 8 = 3,
замість DN підставляти 15,
замість mn підставляти 03,
замість dn підставляти 15,
замість Pr1 підставляти 71,
замість pr2 підставляти 114,
замість pr3 підставляти 111.
Завдання 1. Неявні перетворення типів даних
char x0 = 0xRN - 10;
float x1 ;
unsigned short x2 = 0(MN%8);
short x3 = Pr1 - 110;
bool x4 = DN % 3 * 10;
x1 = x0 + x2 + x4+0Х123;
x2 = x2 + x3 - 0123;
x3 = x1 + x2 * 0.123 + ’1’;
Примітка: Наприклад, студенту Громову треба ініціалізувати оголошенні змінні наступними значеннями:
char x0 = 0x1995 - 10;
float x1 ;
unsigned short x2 = 03;
short x3 = 71 - 110;
bool x4 = 13 % 3 * 10;
Завдання 2. Явні перетворення типів даних
const int x_0=DN*MN*100; // наприклад: 13*3*100= 3900 => x_0= 3900;
const int x_1= 0dnmn0; // наприклад: x_1= 015030;
const int x_2= 0xdnmn; // наприклад: x_2= 0x1502;
const int x_3= 0mndn0; // наприклад: x_3= 003150;
const int x_4= 0xmndn; // наприклад: x_4= 0x0315;
const double y_0=DN*MN/100; // наприклад: 13*3/100= 0.39 => y_0= 0.39;
const double y_1= - DN.MN; // наприклад: y_1= -13.3;
const double y_2= MN. DN e +2; // наприклад: y_2= 3.13e+2;
const double y_3= - DN.MN e 1; // наприклад: y_3= -13.3 e1;
const double y_4= - MN. DN e -1; // наприклад: y_4= -3.13 e-1;
int x = х_№; // замість № підставити значення: DN % 5
double y = y_№; // замість № підставити значення: MN % 5
float v1 = static_cast< float > (x);
char v2 = static_cast<char> (x);
float v3 =*reinterpret_cast<float*> (&x)+1;
char v4 =*(reinterpret_cast<char*> (&x)+2)+3;
int w1 = static_cast<int>(y)+0X0E2;
long w2 =*reinterpret_cast<long*>(&y)+1;
short w3 =*(reinterpret_cast<short*>(&y)+2);
char w4 =*(reinterpret_cast<char*>(&y)+7)+3;
5. Вимоги до оформлення звіту
I. Оформити титульну сторінку звіту стандартного зразка, на якій обов’язково вказати номер лабораторної роботи, її назву та вибір варіанту. Зразок оформлення титульної сторінки лабораторної роботи наведено в Додатку А.
II. В звіті мають бути відображені наступні пункти:
