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

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

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

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

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Частина 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:52

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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