Лабораторная работа 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.