Вещественные числа и операции над ними

В языке С предусмотрено два типа вещественных чисел – float и double. Эти типы определяются стандартом на представление вещественных чисел в компьютерах и присутствуют во многих языка программирования. Тип float занимает 32 бита, а double – 64. Для многих расчетов достаточно диапазона чисел представимых с помощью типа float. Тип double позволяет работать с еще большим диапазоном, однако надобность в нем возникает довольно редко.

Рассмотрим примеры работы с вещественными числами, приведенные на рис. 6.

Вещественные числа и операции над ними - student2.ru

Рис. 6 Пример программы

В 4 строке мы объявляем переменную «a» и производим ее инициализацию, т.е. сразу же записываем в нее конкретное значение. В 5 строке мы объявляем переменную «b» и инициализируем ее. Обратите внимание на разницу выражений в 4 и 5 строках. Во втором случае после цифры пять стоит десятичная точка. Когда в константе присутствует десятичная точка, компилятор воспринимает ее как вещественное число. В 4 строке число 5 будет воспринято как целое, в результате чего операция деления будет целочисленной и даст результат 2. В 5 строке, поскольку один из операндов вещественный, то операция деления будет вещественной, и результат будет равен 2.5.

Над вещественными числами можно проводить 4 арифметические операции: +, –, *, /. Операция нахождения остатка над вещественными числами не применима.

В 7 и 8 строках приведены выражения, в которых есть как целые, так и вещественные числа.

В 7 строке сначала выполняется вычитание в скобках, результат будет вещественный и равен 0.5. После этого будет выполнено умножение целочисленной константы на вещественное число, в результате получится вещественная 1. После этого нужно записать вещественное число в целую переменную c. В таких случаях компилятор автоматически добавляет операцию преобразования типа. Вещественное число преобразуется к целому отбрасыванием дробной части.

Операции преобразования типа могут привести к потере точности и правильности вычислений. Поэтому нужно внимательно следить за тем, какие преобразования делает компилятор и, при необходимости, указывать явным образом, какие операции преобразования нужно сделать. В общем случае нужно перед преобразуемым числом в круглых скобках указать тип, к которому нужно преобразовать.

В 8 строке указана операция преобразования числа, полученного после вычитания, к целому типу. Число 0.5, полученное после вычитания, после преобразования к целому типу будет равно 0. В результате вычислений переменная «d» будет также равна 0.

В 10 строке вычисляется косинус числа, находящегося в переменной «d». Эта функция не является операцией языка С, а реализована в стандартной библиотеке «math». Подключение этой библиотеку показано в 1 строке программы (для компилятора gcc стандартные библиотеки подключаются автоматически, эту строку можно не указывать).

Библиотека математических операций «math» содержит большое количество математических функций вещественных чисел. Список функций большой, и при необходимости можно подобрать нужную функцию по [1].

Задание к работе

1) Написать программу, в которой пользователь вводит два целых числа, а компьютер выводит результат 5 рассмотренных в теоретической части арифметических операций над этими числами.

2) Написать программу, которая печатает объем памяти занимаемый одной переменной для типов int, short int, long int, float и double.

3) Написать программу, которая рассчитывает параметр геометрической фигуры (номер задания равен остатку от деления номера варианта на 10):

1. Дан радиус, найти площадь круга

2. Дан радиус, найти длину окружности

3. Дана площадь круга, найти радиус

4. Дана длина окружности, найти радиус

5. Дана площадь круга, найти длину его окружности

6. Дана длина окружности, найти площадь круга

7. Дан диаметр, найти площадь круга

8. Дан диаметр, найти длину окружности

9. Дана площадь круга, найти диаметр

10. Дана длина окружности, найти диаметр

4) Написать программу, которая приводит введенное пользователем число в переменную типа int. Это число переписывается в переменные типа short int и float. Ко всем трем переменным прибавляется единица, и полученные значения выводятся на экран. Запустите программу и введите число миллиард. Объясните полученные результаты. Примечание: все действия в программе должны быть заданы отдельными командами, в противном случае компилятор может оптимизировать программу, и результат будет отличаться от желаемого.

Содержание отчета

Отчет должен содержат текст всех программ с подробными комментариями, результаты работы этих программ, выводы по 2 и 4 заданиям.

Контрольные вопросы

1) Что такое переменная, тип, объявление переменной?

2) Что такое функция, аргументы функции?

3) Что такое оператор, операнды, константы?

4) Что такое директива компилятора?

5) Что такое библиотека?

6) Что такое идентификатор и какие у него есть ограничения?

7) Как записываются комментарии к программе?

8) Какие типы данных есть в языке С?

9) Какие операции над целыми и вещественными числами есть в языке С?

Лабораторная работа 3
Конструкция выбора, логические и другие операции

Цель работы: продолжение изучение операций и операторов, знакомство с конструкцией выбора и составной инструкцией.

Теоретические сведения

Наши рекомендации