Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

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

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

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

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

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

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Лабораторна робота №3 з дисципліни: “Програмування, частина 3 (Структури даних та алгоритми)” Мета роботи Дослідження методів та засобів явного та неявного перетворення типів даних Завдання на лабораторну роботу Завдання 1: Визначити, які неявні перетворення типів будуть відбуватись при обчисленнях. З’ясувати, чи відбудуться втрати значимості даних. Хід міркувань підтвердити програмними результатами. В звіти пояснити кожне перетворення і метод, яким воно здійснено. typedef unsigned int type_0; typedef unsigned short int type_1; typedef unsigned long int type_2; typedef signed short int type_3; typedef signed int type_4; typedef signed long int type_5; typedef bool type_6; typedef char type_7; typedef wchar_t type_8; typedef float type_9; typedef double type_10; typedef long double type_11; // позначимо через DN - день народження, MN – місяць народження char x0=0; // замість № підставити значення: DN % 9 unsigned int x1=25; // замість № підставити значення: DN % DN signed long int x2=2; // замість № підставити значення: MN % 9 signed long int x3=3; // замість № підставити значення: MN % 13 wchar_t x4=4; // замість № підставити значення: (DN * MN) % 9 unsigned short int x5=5; // замість № підставити значення: DN % 12 unsigned long int x6=6; // замість № підставити значення: MN % 3 signed long int x7=7; // замість № підставити значення: (DN * MN) % 12 long double x8=8; // замість № підставити значення: DN % 13 signed long int x9=9; // замість № підставити значення: MN % 6 signed long int x10=10; // замість № підставити значення: (DN * MN) % 10 unsigned short int x11=11; // замість № підставити значення: DN % 3 /* 1 */ x1 = x1 – 0xFFFFFFFA; /* 2 */ x3 = ’a’ + x0 – x2; /* 3 */ x7 = x4 + x5 + x6 * 0.1; /* 4 */ x8 = x9 + x10 – x11*10; Завдання 2 Визначити, які явні і неявні перетворення типів будуть відбуватись. Результати обчислень підтвердити програмними результатами. В звіти пояснити кожне перетворення і кожний отриманий результат. // позначимо через DN і MN числа, що відповідають дню і місяцю народження, // через dn і mn – по дві цифри, що відповідають дню і місяцю народження, // наприклад: DN=5 , MN=3 , dn=05 , mn =03 const int x_0= 12500; // наприклад: 5*3*100=1500 => x_0=1500; const double y_1= 1.25; // наприклад: 5*3/100=0.15 => y_0=0.15; int x = х_0; // замість № підставити значення: DN % 5 double y = y_1; // замість № підставити значення: DN % 3 char v0=*reinterpret_cast<char*> (&x) +3; printf("%d %x %c \n", v0,v0,v0); char v5=*reinterpret_cast<char*> (&x) +2; printf("%d %x %c \n", v5,v5,v5); long w1 =*reinterpret_cast<long*>(&y)+33; printf("%lx %lu %ld \n", w1,w1,w1); short w6=*(reinterpret_cast<short*>(&y)+3)+13; printf("%x %u %d \n", w6,w6,w6); Вибір індивідуального завдання Вибрати назви змінних для дослідження в завданні 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  Моя дата народження: 25.05.2000, варіант – v5 , w6, v0 , w1 Пояснення результатів Завдання 1 x1 = x1 – 0xFFFFFFFA; unsigned int x1=25 ВПК: 19 00 00 00 0xFFFFFFFA16 = 610 ВПК: FAFFFFFF −> FAFFFFFF Комп’ютер знає тільки дію додавання, вираз набуде вигляду: x1 = x1+ (–0xFFFFFFFA) Тоді:x1 = 25 +(- 6)...
Антиботан аватар за замовчуванням

08.11.2018 22:11

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини