Лабораторная работа: Программирование на языке Си++
Преподаватель: Степура А. А.
Студент гр. Мт-190503: Свиткин В. Г.
Екатеринбург, 2009
Цель: Знакомство со средой программирования, создание, отладка и выполнение простой программы, содержащей ввод/вывод информации и простейшие вычисления.
Задачи: 1) вычислить значение выражения при различных вещественных типах данных: float и double. Сравнить и объяснить полученные результаты.
2) Вычислить значения выражений. Объяснить полученные результаты.
Задание 1. Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять с использованием промежуточных переменных. Сравнить и объяснить полученные результаты.
, при а=100, b=0.001
Текст программы:
#include <cstdlib>
#include <iostream>
#include <math.h>
int main(int argc, char *argv[]){
//Объявление переменных и исходные данные
floata1=100,b1=0.001,c1;
doublea2=100,b2=0.001,c2;
//Расчет значений выражения для типов floatи double
//Вывод результата с 15 знаками после запятой
printf(" Float: ");
c1=(pow(a1+b1,4.0)-(pow(a1,4)+4*pow(a1,3)*b1) )/ (6 * a1 *a1 *b1* b1+ 4*a1*b1*b1+pow(b1,4) );
printf("%.15f",c1);
printf("\nDouble: ");
c2=(pow(a2+b2,4)-(pow(a2,4)+4*pow(a2,3)*b2) )/ (6*a2*a2*b2*b2 +4*a2*b2*b2 + pow(b2,4) );
printf("%.15f",c2);
system("PAUSE");
returnEXIT_SUCCESS; }
Результат выполнения программы:
Float: 0.993384063243866
Double: 0.993384430723606
Результаты совпадают с точностью до 6 знаков после запятой. Это происходит из-за того, что при вычислениях с типом float точность меньше, и при каждом вычислении накапливается погрешность. Вычисление с типом double точнее, чем с float.
--> ЧИТАТЬ ПОЛНОСТЬЮ <--