Перетворення типів даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Частина III Структури даних та алгоритми

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 2 на тему: "Перетворення типів даних" з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір індивідуального завдання: RN = 1994 MN = 4 % 8 = 4 DN = 17 mn = 04 dn = 17 Pr1 = №(C) = 84 рr2 = №(h) = 99 рr3 = №(a) = 117 Львів – 2013 Мета роботи: Дослідження методів та засобів явного і неявного перетворення типів даних. Постановка задачі: Обчислити вирази та визначити, які неявні та явні перетворення типів будуть відбуватись. Хід міркувань підтвердити програмними результатами. Далі використовувати такі позначення: RN - число, що відповідає року народження, MN - число, що відповідає місяцю народження % 8, DN - число, що відповідає дню народження, mn і dn– ті ж самі значення, що й MN і DN відповідно, записані у вигляді двох цифр, Pr1 – ASCII-код першої літери прізвища (латинська велика літера), pr2 – ASCII-код другої літери прізвища (латинська мала літера), pr3 – ASCII-код третьої літери прізвища (латинська мала літера). Завдання 1. Неявні перетворення типів даних Система тестів: • Неявні перетворення типів даних x1 = x0 + x2 + x4+0Х123; а) char x0 = 0х1994 – 10 0х1994 ВПК = 94 19 00 00 199416 = -10810 (1 байт) б) unsigned short x2 = 04 ВПК = 04 00 00 00 в) bool x4 = 17 % 3 * 10 17 % 3 * 10 = 1 г) 0х123 12316 = 29110 х1 = -108 – 10 + 4 +1 +291 = 178 Результат: 178 x2 = x2 + x3 - 0123; а) unsigned short x2 = 04 ВПК = 04 00 б) short x3 = 84 – 110 ВПК = E6 FF E6 FF16 = 59135 в) 01238 = 8310 x2=x2+x3-0123 3) x3 = x1 + x2 * 0.123 + ’1’; а) х1 ВПК = СС СС СС СС16 = -1310810 б) unsigned short x2 = 04 ВПК = 04 00 00 00 4*0,123 = 0,492 в) ‘1’ – у таблиці ASCII це код 49 ВПК = 31 00 31 0016 = 1254410 • Явні перетворення типів даних 1) float v1 = static_cast< float > (x); х = 17*4*100 = 6800 2) char v2 = static_cast<char> (x); х = 17*4*100 = 6800 Оскільки char займає 1 байт, то х = 20, а в таблиці ASCII це “P” 3) float v3 =*reinterpret_cast<float*> (&x)+1; х = 17*4*100 = 6800 Оскільки char займає 1 байт, то 00 + 1 = 1 4) char v4 =*(reinterpret_cast<char*> (&x)+2)+3; х = 17*4*100 = 6800 Оскільки char займає 1 байт, то 00 + 3 = 3. В таблиці ASCII це “♥” 5) int w1 = static_cast<int>(y)+0X0E2; у = 4.17е+2 = 417 0х0E2 = 226 w1 = 417 + 226 = 643 6) long w2 =*reinterpret_cast<long*>(&y)+1; у = 417 ВПК = 00 00 00 00 00 00 03 16. Оскільки long – 4 байти і перші 4 байти = 0, то 0 + 1 = 1 7) short w3 =*(reinterpret_cast<short*>(&y)+2); ВПК = 00 00 00 00 00 40 6А 40. Short – 2 байти 40 6А = 16384 8) char w4 =*(reinterpret_cast<char*>(&y)+7)+3; ВПК = 00 00 00 00 00 40 6А 40. Сhar – 1 байт Алгоритм розв’язання задачі: #include <iostream> using namespace std; int main () { float X1; unsigned short X2; short X3; char x0 = 0x1994 - 10; float x1 ; unsigned short x2 = 04; short x3 = 84 - 110; bool x4 = 17 % 3 * 10; {x1 = x0 + x2 + x4 + 0x123;} {x2 = x2 + x3 - 0123;} {x3 = x1 + x2 * 0.123 + '1';} cout << "______Task 2\n______" << endl; cout << "x1=" << x1 << endl; cout << "x2=" << x2 << endl; cout << "x3=" << x3 << endl; const int x_0 = 17*4*100; const int x_1 = 017040; const int x_2 = 0x1704; const int x_3 = 004170; const int x_4 = 0x0417; const double y_0= 17*4/100; const double y_1= -17.4; const double y_2= 4.17e+2; const double y_3= -17.4e1; const double y_4= - 4.17e-1; int x = x_0; double y = y_2; 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; cout << "______\nTask 2\n______" << endl; cout << "v1=" << v1 << endl; cout << "v2=" << v2 << endl; cout << "v3=" << v3 << endl; cout << "v4=" << v4 << endl; cout << "w1=" << w1 << endl; cout << "w2=" << w2 << endl; cout << "w3=" << w3 << endl; cout << "w4=" << w4 << endl; getchar(); } Результат виконання програми: / Рис1. Ескіз вікна з результатом виконання програми Висновок: в даній лабораторній роботі я навчився явно і неявно перетворювати типи даних.
Антиботан аватар за замовчуванням

03.04.2018 21:04-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!