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

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

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

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

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

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

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 2 на тему: "Перетворення типів даних" з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір індивідуального завдання: RN = 1994 MN = 8 % 8 = 0 DN = 23 mn = 23 dn = 00 Pr1 = №(C) = 70 рr2 = №(h) = 114 рr3 = №(a) =101 Львів – 2013 Мета роботи: Дослідження методів та засобів явногоі неявного перетворення типів даних. Постановка задачі: Обчислити вирази та визначити, які неявні та явні перетворення типів будуть відбуватись. Хід міркувань підтвердити програмними результатами. Далі використовувати такі позначення: RN- число, що відповідає року народження, MN- число, що відповідає місяцю народження% 8, DN - число, що відповідає дню народження, mn і dn– ті ж самі значення, що й MNі DN відповідно, записані у вигляді двох цифр, Pr1 – ASCII-код першої літери прізвища (латинська велика літера), pr2 – ASCII-код другої літери прізвища (латинська мала літера), pr3 – ASCII-код третьої літери прізвища (латинська мала літера). Система тестів: •Неявні перетворення типів даних x1 = x0 + x2 + x4+0Х123; а) float x0 = 0х1994 – 10 0х1994 ВПК = 94 19 00 00 199416 = -10810 (1 байт) б) unsigned short x2 = 00 ВПК = 00 00 00 00 в)bool x4 = 23% 3 * 10 23 % 3 * 10 =1 г) 0х123 12316 = 29110 х1 = -107 – 10 + 2 +1 +291 = 174 Результат: 174 x2 = x2 + x3 - 0123; а) unsigned short x2 = 00 ВПК = 00 00 б) short x3 = 70 – 110 ВПК = D8 FF(преведено за допомогою програми, розробленої в лаб. роб. №1) D8 FF16 = 55551 в) 01238 = 8310 3) x3 = x1+x2 * 0.123 + ’1’; а) х1 ВПК = СС СС(преведено за допомогою програми, розробленої в лаб. роб. №1) СС СС16 = -1310810 б) unsigned short x2 = 00 ВПК = 00 00 00 00 0*0,123 = 0 в) ‘1’ – у таблиці ASCII це код 49 ВПК = 31 00(преведено за допомогою програми, розробленої в лаб. роб. №1) 31 0016 = 1254410 • Явні перетворення типів даних 1) floatv1 = static_cast<float> (x); х = 23*0*100 = 0 2) char v2 = static_cast<char> (x); х = 23*0*100 = 0 Оскільки char займає 1 байт, то х = 63, а в таблиці ASCII це “?” 3) float v3 =*reinterpret_cast<float*> (&x)+1; х = 23*2*100 = 0 Оскільки char займає 1 байт, то 00 + 1 = 1 4) char v4 =*(reinterpret_cast<char*> (&x)+2)+3; х = 23*0*100 = 0 Оскільки char займає 1 байт, то 00 + 3= 3. В таблиці ASCII це “♥” 5) int w1 =static_cast<int>(y)+0X0E2; у = 0 0х0E2 = 226 w1 = 0 + 226= 226 6) long w2 =*reinterpret_cast<long*>(&y)+1; у = 0 ВПК = 00 00 00 00 00 00 00 00. Оскільки long– 4 байти і перші 4 байти = 0, то 0 + 1 = 1 7) short w3 =*(reinterpret_cast<short*>(&y)+2); ВПК = 00 00 00 00 00 00 00 00. Short – 2 байти 00 00 = 0 8) char w4 =*(reinterpret_cast<char*>(&y)+7)+3; ВПК = 00 00 00 00 00 00 00 00. Сhar – 1 байт Оскільки char займає 1 байт, то 00 + 3= 3. В таблиці ASCII це “♥” Алгоритм розв’язання задачі: #include<iostream> #include<cmath> using namespace std; int main(void) { setlocale(0,"rus"); cout<<"Неявне перетворення типiв даних:\n"; char x0=0x1994-10;//Rn=1994 float x1; unsigned short x2=00;//MN=0 short x3=70-110;//Pr1=70 bool x4=23%3*10;//DN=23 cout<<"x0: "<<x0<<endl; cout<<"x2: "<<x2<<endl; cout<<"x3: "<<x3<<endl; cout<<"x4: "<<x4<<endl; x1=x0+x2+x4+0X123; x2=x2+x3-0123; x3=x1+x2*0.123+'1'; cout<<"x1: "<<x1<<endl; cout<<"x2: "<<x2<<endl; cout<<"x3: "<<x3<<endl; cout<<"Явне перетворення типiв даних:\n"; const int x_0=23*0*100; const int x_1=023000; const int x_2=0x2300; const int x_3=000230; const int x_4=0x0023; const double y_0=23*0/100; const double y_1=-23.0; const double y_2=0.23e+2; const double y_3=-23.0e1; const double y_4=-0.23e-1; int x=x_3; double y=y_0; 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; cout<<"v1= "<<v1<<endl; cout<<"v2= "<<v2<<endl; cout<<"v3= "<<v3<<endl; cout<<"v4= "<<v4<<endl<<endl; 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<<"w1= "<<w1<<endl; cout<<"w2= "<<w2<<endl; cout<<"w3= "<<w3<<endl; cout<<"w4= "<<w4<<endl; } Результат виконання програми:  Рис1. Ескіз вікна з результатом виконання програми Висновок: в даній лабораторній роботі я навчився явно і неявно перетворювати типи даних.
Антиботан аватар за замовчуванням

23.12.2013 22:12-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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