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

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

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

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

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

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

Міністерство освіти і науки, молоді та спорту України Національний університет „Львівська політехніка” Звіт з лабораторної роботи № 2 з дисципліни: “Програмування (частина 3)” на тему: “ Перетворення типів даних ” Варіант [1,1] (v5 , w6 , v0 , w1) Мета роботи: Дослідження методів та засобів явного і неявного перетворення типів даних. Постановка задачі: Дослідити методи та засоби явного і неявного перетворення типів даних. Розробити алгоритм розв’язання задачі, і підтвердити роботу алгоритму програмною реалізацією. Завдання 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_0 x0=0; // замість № підставити значення: DN % 9 type_0 x1=9; // замість № підставити значення: DN % DN type_0 x2=2; // замість № підставити значення: MN % 9 type_9 x3=3; // замість № підставити значення: MN % 13 type_0 x4=4; // замість № підставити значення: (DN * MN) % 9 type_9 x5=5; // замість № підставити значення: DN % 12 type_0 x6=6; // замість № підставити значення: MN % 3 type_9 x7=7; // замість № підставити значення: (DN * MN) % 12 type_9 x8=8; // замість № підставити значення: DN % 13 type_3 x9=9; // замість № підставити значення: MN % 6 type_9 x10=10; // замість № підставити значення: (DN * MN) % 10 type_0 x11=11; // замість № підставити значення: DN % 3 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> using namespace std; int main () { const int x_4 = 0x0909; int x = x_4; const float y_0 = 9*9/100; float y = y_0; int v0=*reinterpret_cast<char*> (&x) +3; printf("%d %x %c \n", v0,v0,v0); int v5=*reinterpret_cast<char*> (&x) +2; printf("%d %x %c \n\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)+1)+13; printf("%x %u %d \n", w6,w6,w6); getch(); 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 18:06-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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