Лабораторная работа 2. Переменные и встроенные типы данных.
Цель работы
Исследование встроенных типов данных языка С++.
Задание
1.1. Диапазоны целых чисел
С помощью программы datatypes исследовать представление целых чисел. Для различных типов данных ввести целые числа (2-3 на тип) и наблюдать их двоичное представление.
Определить минимальные и максимальные допустимые значения для целых типов данных (со знаком и без знака) и их двоичное представление. Проверить переполнение при увеличении максимального или уменьшении минимального допустимых значений.
1.2. Точность чисел с плавающей точкой
С помощью программы datatypes исследовать представление чисел с плавающей точкой. Определить разряды, используемые под знак, мантиссу и порядок. Проверить для типа float формулу вычисления значения числа с плавающей точкой (1+мантисса)*2(порядок-127). Определить минимальное и максимальное значения и их двоичное представление.
Для исследования влияния разрядности мантиссы на точность (тип float) ввести числа (4-5 чисел) с плавающей точкой с большим числом значащих цифр, например 123456789, 222.222222, 0.444555666 и т. п. Получить преобразованное из двоичного представления значение и сравнить с исходным. При наличии различий - объяснить.
Исследовать точность типа double на примере чисел с большой разрядностью (не менее 18 значащих цифр)
1.3. Представление символов
С помощью программы datatypes исследовать представление символов. Для нескольких символов зафиксировать их внутреннее представление.
1.4. Выводы
Привести в отчете в разделе «Наблюдения» результаты исследования типов данных, в том числе двоичные представления различных чисел.
Сделать и отразить в отчете выводы по возможностям применения в программах исследованных типов данных.
2.
2.1. Определение и инициализация глобальных переменных
Создать в теле программы (вне каких-либо функций) переменные различных типов (bool, char, short, long, float, double) и присвоить им значения на стадии компиляции. Вывести в поле содержимое одной из переменных.
Пример.
int a = 5;
short b = 8;
float c = 25.34;
...
int main(int argc, char* argv[])
{
printf("%d", a);
...
}
Определить с помощью функции sizeof () размер внутреннего представления в байтах для созданных переменных.
printf("%d", sizeof(a));
Добавить строки для изменения значений глобальных переменных. Убедиться, что значения глобальных переменных сохраняются в ходе выполнения программы.
int main(int argc, char* argv[])
{
a = -5;
b = 47;
...
}
2.2. Локальные переменные
Создать внутри блока ({...}) неинициализированную переменную и вывести ее значение. После вывода присвоить значение переменной.
Пример .
int main(int argc, char* argv[])
{
int a;
printf("%d", a);
a = 36;
printf("%d", a);
}
2.3. Работа с переменными
Объявить и инициализировать три глобальные переменные. Создать два блока ({...}) в теле функции main. Внутри первого блока объявить и инициализировать переменную с именем одной из глобальных переменных. Внутри второго блока проделать тоже самое с другой глобальной переменной. Произвести изменение значений на каждом этапе. Вывести значения всех переменных в конце каждого этапа. Разработанный программный код и результаты вывода представить в отчете.
Пример.
int a = 1;
...
int main(int argc, char* argv[])
{
a = 2;
printf("%d | %d | %d\n", a,b,c);
{
int a = 0;
...
printf("%d | %d | %d\n", a,b,c);
}
a = 3;
...
printf("%d | %d | %d\n", a,b,c);
{
a = 4;
...
printf("%d | %d | %d\n", a,b,c);
}
a = 5;
...
printf("%d | %d | %d\n", a,b,c);
system("pause");
return 0;
}
2.4. Выводы
Привести в отчете в разделе «Наблюдения» полученные результаты.
Сделать и отразить в отчете выводы по исследованным возможностям языка С++.
3.