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

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

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

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Програмування частина 4 Технологія системного програмування
Варіант:
Варіант 1 2

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

Міністерство освіти і науки, молоді та спорту України Національний університет „Львівська політехніка” Звіт з лабораторної роботи № 2 з дисципліни: “Програмування (частина 3)” на тему: “ Перетворення типів даних ” Варіант [1,2] (v1 , w3 , v5 , w0) Мета роботи: Дослідження методів та засобів явного і неявного перетворення типів даних. Постановка задачі: Дослідити методи та засоби явного і неявного перетворення типів даних. Розробити алгоритм розв’язання задачі, і підтвердити роботу алгоритму програмною реалізацією. Завдання 1 Алгоритм розв’язання задачі: #include <stdio.h> #include <conio.h> int main() { 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; type_8 x0=0; type_0 x1=26; type_5 x2=2; type_5 x3=3; type_4 x4=4; type_2 x5=5; type_2 x6=6; type_9 x7=7; type_10 x8=8; type_5 x9=9; type_0 x10=10; type_2 x11=11; x1 = x1 - 0xFFFFFFFA; x3 = 'a' + x0 - x2; x7 = x4 + x5 + x6 * 0.1; x8 = x9 + x10 - x11 * 10; printf("x0: "); unsigned char *vx0 = (unsigned char *)(&x0); for (int i = 0; i < sizeof(x0); i++) printf("%02X ", vx0[i]); printf("\n"); printf("x1: "); unsigned char *vx1 = (unsigned char *)(&x1); for (int i = 0; i < sizeof(x1); i++) printf("%02X ", vx1[i]); printf("\n"); printf("x2: "); unsigned char *vx2 = (unsigned char *)(&x2); for (int i = 0; i < sizeof(x2); i++) printf("%02X ", vx2[i]); printf("\n"); printf("x3: "); unsigned char *vx3 = (unsigned char *)(&x3); for (int i = 0; i < sizeof(x3); i++) printf("%02X ", vx3[i]); printf("\n"); printf("x4: "); unsigned char *vx4 = (unsigned char *)(&x4); for (int i = 0; i < sizeof(x4); i++) printf("%02X ", vx4[i]); printf("\n"); printf("x5: "); unsigned char *vx5 = (unsigned char *)(&x5); for (int i = 0; i < sizeof(x5); i++) printf("%02X ", vx5[i]); printf("\n"); printf("x6: "); unsigned char *vx6 = (unsigned char *)(&x6); for (int i = 0; i < sizeof(x6); i++) printf("%02X ", vx6[i]); printf("\n"); printf("x7: "); unsigned char *vx7 = (unsigned char *)(&x7); for (int i = 0; i < sizeof(x7); i++) printf("%02X ", vx7[i]); printf("\n"); printf("x8: "); unsigned char *vx8 = (unsigned char *)(&x8); for (int i = 0; i < sizeof(x8); i++) printf("%02X ", vx8[i]); printf("\n"); printf("x9: "); unsigned char *vx9 = (unsigned char *)(&x9); for (int i = 0; i < sizeof(x9); i++) printf("%02X ", vx9[i]); printf("\n"); printf("x10: "); unsigned char *vx10 = (unsigned char *)(&x10); for (int i = 0; i < sizeof(x10); i++) printf("%02X ", vx10[i]); printf("\n"); printf("x11: "); unsigned char *vx11 = (unsigned char *)(&x11); for (int i = 0; i < sizeof(x11); i++) printf("%02X ", vx11[i]); printf("\n"); getch(); return 0; } Результати виконання програми  Завдання 2 Алгоритм розв’язання задачі: #include<stdio.h> #include<conio.h> int main () { int x= 026050; float y= 5.26e+2; int v1 = static_cast< char > (x)+11; printf("%d %x %c \n", v1,v1,v1); int v5=*reinterpret_cast<char*> (&x) +2; printf("%d %x %c \n\n", v5,v5,v5); char w0 =*(reinterpret_cast<char*>(&y)+2)+12; printf("%x %u %d \n",w0,w0,w0); short w3=*reinterpret_cast<short*>(&y) + 1; printf("%x %u %d \n", w3,w3,w3);; return 0; } Результати виконання програми:  Контрольні питання 1. Оголошено змінні: signed char sch; unsigned char uch; double dх; Які неявні перетворення типів будуть виконані: sch = uch + dx; Виберіть зі списку справа необхідні перетворення і запишіть їх номери в порядку зростання через кому (наприклад: а,б,в). а)short→char б)long→char в)int→char г)float→char д)double→char е)short→int ж)long→int з)char→int и)float→int і)double→int к)short→float л)long→float м)char→float н)int→float о)double→float п)short→double р)long→double с)char→double т)int→double ф)float→double    Визначити результат виконання фрагменту програми. Відповідь пояснити. 2. int x=0XC17C0000; printf("%f",* reinterpret_cast<float*> (&x)); 4. float x=2670.05; //2670.0510 = 0XA6E.0CCCCC16 printf("%d",*reinterpret_cast<short*> (&x));  3. int x=0XC17C0000; printf("%c ",* reinterpret_cast<char*> (&x)+1); 5. float x=2670.05; //2670.0510 = 0XA6E.0CCCCC16 printf("%d", static_cast<int> (x));   Відповіді с)char→double д)double→char 2. -15.750000 3. 0  4. -7987 5. 2670   Висновок В результаті виконання лабораторної роботи я освоїв основні методи та засоби явного та неявного представлення типів даних та використав ці знання для виконання прикладних програм.
Антиботан аватар за замовчуванням

04.06.2014 17:06-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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