Лабораторная 3 варианта с кодом и отчетом за 1 семестр 2 курса по Объектно ориентированному программированию. Лабораторная работа 1 Типы данных языка С Цель работы
Скачать 17.77 Kb.
|
Кафедра Вычислительной техники Дисциплина «Объектно-ориентированное программирование» Лабораторная работа №1 Типы данных языка С++ Цель работы Познакомиться с типами данных языка С++. Узнать о разделении типов на основные и составные, научиться с ними работать. Изучить основные «операции» над типами данных. Научиться применять знания на практике. Задания для выполнения Определить число байт, необходимых для хранения основных типов для данной реализации компилятора и разрядности процессора. По возможности выполнить программу на машинах с разной разрядностью и оценить полученные результаты. Осуществить преобразование отдельных типов с целью улучшения читаемости программы, а также сокращения длинных имен типов. Объявить переменные перечислимого типа без инициализации констант и с их инициализацией. Выполнить допустимые для них операции. Определить число байт, требуемое для хранения таких переменных. Объявить структуру. Определить число байт, требуемое для хранения всех полей структуры. Оценить полученные результаты и сопоставить с результатами по пункту 1. Определить число байт, необходимых для хранения отдельных полей. Пользуясь преобразованием типов, осуществить преобразования объектов к другим типам. Оценить возможность или невозможность преобразований. Пользуясь механизмом определения типа в реальном времени, определить тип фактических объектов и выражений. Код программы #include #include #include using namespace std; struct Structura { char var_ch = 'a'; int var_int = 38; bool var_bool = true; float var_float = 33.3; wchar_t var_wch = 'b'; }; int main() { setlocale(LC_ALL, "Russian"); cout << " №1) Количество байт для каждого типа данных " << endl; cout << " int = " << sizeof(int) << endl; cout << " float = " << sizeof(float) << endl; cout << " double = " << sizeof(double) << endl; cout << " bool = " << sizeof(bool) << endl; cout << " char = " << sizeof(char) << endl; cout << " wchar_t = " << sizeof(wchar_t) << endl; cout << endl << endl; cout << " №2) Преобразование типов " << endl; int a1; double a2 = 7.77; char chislo= '1'; cout << " Из double : " << a2 ; a2 = (int)a2; cout << " в int : " << a2 << endl; cout << " Из char : " < a1 = (int)chislo; cout << " в int : " << a1 << endl; cout << endl << endl; cout << "№3) Перечислимый тип" << endl; enum enum_1 { x, y }; cout <<"Без инициализации констант : " << sizeof(enum_1) << endl; enum enum_2 {x1 = 30, y1 = 55 }; cout << "С инициализацией констант : "<< sizeof(enum_2) << endl; cout << endl << endl; cout << "№4) Число байт для хранения полей структуры" << endl; Structura m; cout <<" Количество байт для полей структуры = " << sizeof(m) << endl; cout << "Поле int \t" << sizeof(m.var_int) << endl; cout << "Поле float \t" << sizeof(m.var_float) << endl; cout << "Поле bool \t" << sizeof(m.var_bool) << endl; cout << "Поле char \t" < cout << "Поле wchar_t \t" < cout << endl << endl; cout << "№5) Преобразование типов " << endl; char a; int b; int c; bool d; a = (char)m.var_int; cout << m.var_int << " Преобразован в символьный тип = " << a << endl; b = (int)m.var_float; cout <<m.var_float <<" Преобразован в целочисленный тип = " << b << endl; c = (int)m.var_ch; cout << m.var_ch << " Преобразован в целочисленный тип = " << c << endl; d = (bool)m.var_wch; cout << m.var_wch << " Преобразован в логический тип = " << d << endl; cout << endl << endl; cout << "№ 6) Определение типа данных" << endl; cout <<"Имя типа = " << typeid(m.var_int).name() << endl; cout <<"Имя типа = " << typeid(m.var_float).name() << endl; cout <<"Имя типа = " << typeid(m.var_bool).name() << endl; cout <<"Имя типа = " << typeid(m.var_ch).name() << endl; cout <<"Имя типа = " << typeid(m.var_wch).name() << endl; } Результат работы №1) Количество байт для каждого типа данных int = 4 float = 4 double = 8 bool = 1 char = 1 wchar_t = 2 №2) Преобразование типов Из double : 7.77 в int : 7 Из char : 1 в int : 49 №3) Перечислимый тип Без инициализации констант : 4 С инициализацией констант : 4 №4) Число байт для хранения полей структуры Количество байт для полей структуры = 20 Поле int 4 Поле float 4 Поле bool 1 Поле char 1 Поле wchar_t 2 №5) Преобразование типов 38 Преобразован в символьный тип = & 33.3 Преобразован в целочисленный тип = 33 a Преобразован в целочисленный тип = 97 98 Преобразован в логический тип = 1 № 6) Определение типа данных Имя типа = i Имя типа = f Имя типа = b Имя типа = c Имя типа = w Вывод Познакомился с типами данных языка С++. Узнал о разделении типов на основные и составные, научился с ними работать. Изучил основные «операции» над типами данных. Научился применять знания на практике. |