DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт з лабораторної роботи № 2 на тему: «Перетворення типів даних»

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

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

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Частина III Структури даних та алгоритми
Група:
КН-31
Коротко про документ

Про що ця робота

У звіті досліджено методи та засоби явного й неявного перетворення типів даних у мові C++. Наведено хід обчислень виразів та програмні результати виконання лабораторної роботи.

У роботі розглядаються

  • Перетворення типів даних
  • Неявні перетворення типів
  • Явні перетворення типів
  • Мова програмування C++
  • Статичний кастинг
  • Реінтерпретація покажчиків
  • Таблиця ASCII
  • Алгоритмічні структури

Зміст і розділи

  1. Мета роботи
  2. Постановка задачі
  3. Система тестів
  4. Завдання 1. Неявні перетворення типів даних
  5. Завдання 2. Явні перетворення типів даних
  6. Алгоритм розв’язання задачі
  7. Результат виконання програми
  8. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають програмування та структури даних.
Викладачі:Матвейчук Т. А.

Ключові поняття

перетворення типівнеявне перетворенняявне перетворенняstatic_castreinterpret_castтаблиця ASCIIструктури данихалгоритмпрограмуванняC++

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

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 2 на тему: " Перетворення типів даних " з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір індивідуального завдання: RN = 1994 MN = 11 % 8 = 3 DN = 28 mn = 03 dn = 28 Pr1 = №(G) = 86 рr2 = №(r) = 97 рr3 = №(o) = 115 Мета роботи Дослідження методів та засобів явного і неявного перетворення типів даних. Постановка задачі Обчислити вирази та визначити, які неявні та явні перетворення типів будуть відбуватись. Хід міркувань підтвердити програмними результатами. Система тестів Завдання 1. Неявні перетворення типів даних x1 = x0 + x2 + x4+0Х123; а) char x0 = 0х1994 – 10 0х1994 ВПК = 94 19 00 00 199416 = -10810 (1 байт) б) unsigned short x2 = 03 ВПК = 03 00 00 00 в) bool x4 = 28 % 3 * 10 28 % 3 * 10 = 1 г) 0х123 12316 = 29110 х1 = -108 – 10 + 3 +1 +291 = 177 Результат: 177 x2 = x2 + x3 - 0123; а) unsigned short x2 = 03 ВПК = 03 00 б) short x3 = 86 – 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 = 03 ВПК = 03 00 00 00 3*0,123 = 0,369 в) ‘1’ – у таблиці ASCII це код 49 ВПК = 31 00 31 0016 = 1254410 Завдання 2. Явні перетворення типів даних 1) float v1 = static_cast< float > (x); х = 28*3*100 = 8400 2) char v2 = static_cast<char> (x); х = 28*3*100 = 8400 Оскільки char займає 1 байт, то х = 20, а в таблиці ASCII це “P” 3) float v3 =*reinterpret_cast<float*> (&x)+1; х = 28*3*100 = 8400 Оскільки char займає 1 байт, то 00 + 1 = 1 4) char v4 =*(reinterpret_cast<char*> (&x)+2)+3; х = 28*3*100 = 8400 Оскільки char займає 1 байт, то 00 + 3 = 3. В таблиці ASCII це “♥” 5) int w1 = static_cast<int>(y)+0X0E2; у = 3.28е 1 = -283 0х0E2 = 226 w1 = -283 + 226 = -57 6) long w2 =*reinterpret_cast<long*>(&y)+1; у = 328 ВПК = 00 00 00 00 00 00 01 48. Оскільки long – 4 байти і перші 4 байти = 0, то 0 + 1 = 1 7) short w3 =*(reinterpret_cast<short*>(&y)+2); ВПК = 00 00 00 00 00 50 00 50. Short – 2 байти 50 00 = -20480 8) char w4 =*(reinterpret_cast<char*>(&y)+7)+3; ВПК = 00 00 00 00 00 50 00 50. С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 = 03; short x3 = 86 - 110; bool x4 = 28 % 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 = 28*3*100; const int x_1 = 034030; const int x_2 = 0x2803; const int x_3 = 003340; const int x_4 = 0x0328; const double y_0= 28*3/100; const double y_1= -28.3; const double y_2= 3.28e+2; const double y_3= -28.3e1; const double y_4= - 3.28e-1; int x = x_3; double y = y_3; 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. Ескіз вікна з результатом виконання програми Висновок: в даній лабораторній роботі я навчився явно і неявно перетворювати типи даних.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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