Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
#1

Машинные ноль, эпсилон и бесконечность - C++

22.04.2013, 00:28. Просмотров 2332. Ответов 3
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста разобраться что это такое и с чем его едят? я видел на вики формулы но всеровно как-то не понятно что это такое, зачем нужно и как обчислить в коде? Я знаю что есть встроенные функции для вывода этих значений для типа double, int и т.д. но мне нужно сделать это вручную. можете кто-нибудь объяснить и дать пример кода или формулы по которых считаются этих 3 значения? я думаю мне не составит труда это запрограммировать, но я просто не знаю КАК считаются эти значения..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 00:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Машинные ноль, эпсилон и бесконечность (C++):

Представление чисел и машинные операции - C++
Даны два числа в десятичной системе счисления. Написать программу, которая выполняет следующие действия: 1. Перевести оба числа в систему...

получить машинные результатный сравнить их со значениями соответствующей функции - C++
помогите написать программу! данные ниже выражения представляют собой формулы приближенного вычисления различных функций по разложению...

Бесконечность - C++
Есть значит функция нахождения интеграла Симпсоном, мне нужно посчитать интеграл от sin(x)/x на промежутке от 0 до бесконечности, как лучше...

Погрешность и бесконечность - C++
Как задать в программе бесконечность(infinity) и погрешность (EPS) например для типа float?

С++ и бесконечность простых чисел - C++
Тысячи лет назад математики знали, что количество простых числ бесконечно и придумали простое доказателство "от противного": Предположим,...

почему в программе бесконечность получается - C++
// ConsoleApplication11.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> ...

3
IrineK
Заблокирован
22.04.2013, 06:44 #2
Подробно можно прочесть здесь: http://www.cplusplus.com/reference/cfloat/

Например, для типа double получаем:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include <cfloat>
using std::cout;
using std::cin;
 
int main()
{   cout<<"ZERO: Minimum representable floating-point number\n\
for DOUBLE type:\t"<<DBL_MIN;
    cout<<"\n\nINFINITE: Maximum finite representable floating-point\n\
number for DOUBLE type:\t"<<DBL_MAX;
    cout<<"\n\nEPSILON: Difference between 1 and the least value greater\n\
than 1 that is representable for DOUBLE type:\t"<<DBL_EPSILON;
    
 
    cin.get();
    return 0;
}
0
Миниатюры
Машинные ноль, эпсилон и бесконечность  
IrineK
Заблокирован
22.04.2013, 13:18 #3
Если посмотреть для всех floating-point типов, то видно, что MSVS 2010 разницы между double и long double не делает:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
#include <cfloat>
#include <Windows.h>
 
using std::cout;
using std::cin;
 
const WORD  green = FOREGROUND_GREEN | FOREGROUND_INTENSITY,
            yellow = FOREGROUND_GREEN | FOREGROUND_RED |FOREGROUND_INTENSITY,
            red = FOREGROUND_RED |FOREGROUND_INTENSITY;
 
void showExtremes(const char *info, float f, double d, long double ld)
{   HANDLE hConsole = GetStdHandle (STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, green);
    cout<<info;
    SetConsoleTextAttribute(hConsole, red);
    cout<<"FLOAT\t\t DOUBLE\t\t LONG DOUBLE\n";
    SetConsoleTextAttribute(hConsole, yellow);
    cout<<f<<"\t"<<d<<"\t"<<ld;
}
 
int main()
{   showExtremes("ZERO: Minimum representable floating-point number\n", FLT_MIN, DBL_MIN, LDBL_MIN);
    showExtremes("\n\nINFINITE: Maximum finite representable floating-point\n", FLT_MAX, DBL_MAX, LDBL_MAX);
    showExtremes("\n\nEPSILON: Difference between 1 and the least value greater\n", FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON);
        
    cin.get();
    return 0;
}
0
Миниатюры
Машинные ноль, эпсилон и бесконечность  
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
22.04.2013, 20:17  [ТС] #4
Цитата Сообщение от IrineK Посмотреть сообщение
Подробно можно прочесть здесь: http://www.cplusplus.com/reference/cfloat/

Например, для типа double получаем:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include <cfloat>
using std::cout;
using std::cin;
 
int main()
{   cout<<"ZERO: Minimum representable floating-point number\n\
for DOUBLE type:\t"<<DBL_MIN;
    cout<<"\n\nINFINITE: Maximum finite representable floating-point\n\
number for DOUBLE type:\t"<<DBL_MAX;
    cout<<"\n\nEPSILON: Difference between 1 and the least value greater\n\
than 1 that is representable for DOUBLE type:\t"<<DBL_EPSILON;
    
 
    cin.get();
    return 0;
}
спасибо, но о встроенных функциях я тоже знаю...мне надо разобраться и подсчитать все ВРУЧНУЮ
0
22.04.2013, 20:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 20:17
Привет! Вот еще темы с ответами:

Повторять действие бесконечность раз - C++
У меня есть одна программа С++. Там есть ветвление. Как мне сделать так, чтобы при выборе продолжить, программа начиналась заново. Так,...

Почти эпсилон - C++
Дано число x, единице оно может быть и не равно. Требуется найти наименьшее e, удовлетворяющее условиям: e&gt;0 и сумма x+e имеет иной код...

Вычислить машинную эпсилон - C++
Количество разрядов под мантиссу и порядок числа в представлении с плавающей точкой составляет 3 и 5 соответственно. Вычислите машинную...

Вычисления с точностью эпсилон - C++
Здравствуйте.Хотел спросить о вычислениях с точностью эпсилон. Например, есть задание:Есть 2 числа.Вычислить их сумму с точностью до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru