Лабораторная работа № 5 по дисциплине «Информатика» на тему: «Введение в С++. Базовая структура программы. Базовые типы данных» Начало работы Напишите программу вывода на экран надписи согласно следующему примеру. #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; } Добавьте в программу целочисленную переменную x и введите значение с клавиатуры (cin >> x;) Выведите введенное значение на экран. Поэкспериментируете с известными вам типами данных. Усложните вывод посредством управляющих конструкций: включения в выводимую строку cout << "Спасибо!\nВы ввели\t" << x << endl; Обратите внимание, что \n подволяет перевести курсор в начало следующей строки, а \t — сделать отступ вида «горизонтальная табуляция». Задание 1 Сформировать справочную таблицу следующего вида: Тип данных Обозначение MIN MAX ... ... ... ... Здесь для каждого базового типа данных указано название, обозначение (внутренне «имя типа» для С++), число байт, выделяемых для переменной указанного типа, а также минимальное и максимальное значение. Обратите внимание на то, что для типов float, double и long double диапазон значений по модулю. При этом отрицательные значения для переменных данных типов также возможны и симметричны относительно 0. Добавьте еще два относительно «новых» типа данных: long long int; unsigned long long int. Сравните результаты с данными по типам long int, unsigned long int. Модули, которые необходимо дополнительно к <iostream> подключить директивой include: #include <typeinfo> #include <limits> Используемые функции: Описание функции Пример typeid(х).name() — получение обозначения типа данных перемено х //Объявление целочисленной переменной int i; //Вывод на экран обозначения cout << typeid(i).name() << endl; "\t" — управляющая конструкция «горизонтальная табуляция»; cout << "Hello\tworld!" << endl; sizeof(х) — функция, возвращающая размер в байтах, выделяемый компилятором по хранение значения переменной х в зависимости от ее типа. //Объявление целочисленной переменной int i; //Вывод на экран числа байтов cout << sizeof(i) << endl; numeric_limits< Название типа >::min() //Вывод на экран минимального значения — функция для вывода минимального для прееменных типа int значения диапазона для переменных cout << numeric_limits<int>::min() << endl; заданного типа. numeric_limits< Название типа >::max() //Вывод на экран максимального значения — анлогична предыдущей, но для прееменных типа int возвращает максимальное значение. cout << numeric_limits<int>::max() << endl; При желании код вывода таблицы можно вынести в отдельную функцию. Тогда структура программы должна иметь примерно следующий вид: #include <iostream> #include <typeinfo> #include <limits> using namespace std; char c; ... void table(); //Предварительное определение функции table() int main() { //Вызов функции для печати таблицы базовых типов table(); return 0; } void table() { cout << "Тип данных\t\tОбозначение\tБайт\tMIN\t\tMAX" << endl; cout << "char" << "\t\t\t" << typeid(c).name() << "\t\t" << sizeof(c) << "\t" << numeric_limits<char>::min() <<"\t\t" << numeric_limits<char>::max() << endl; ... } Задание 2 Ввести с клавиатуры символ и 4 числа различных типов, например: c = символ типа char; si = целое число типа short int; i = целое число типа int; f = вещественное число типа float; d = вещественной число двойной точности типа double. Внимание: при выборе типов постарайтесь брать типы с различными диапазонами (см. таблицу, которую вы получили ранее). Найти значение выражения: result = (c/si)+(i*f)+(d-c) В качестве эксперимента рассчитайте отдельно каждое слагаемое, не присваивая результат какой-либо переменной, а непосредственно выводя результат на экран, например: cout << "(c/si)=" << c << "/" << si << "=" << c/si << " of " << typeid(c/si).name() << endl; Обязательно добавьте программный вывод типа рещультата (typeid). Аналогично расчитайте другие слагаемые и результат. Обратите внимание, что такие операции (например, деление символа на целое число) не только возможны, но и приводят к косвенным операциям приведения типов. Если все сделано правильно, то результат вычисления выражения должен быть типа double. Примечение: расчет функции можно также разместить в отдельной функции. На рисунке 1 представлен пример выполнения всех предложенных заданий. Рисунок 1 - Пример выполнения заданий