Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хеширование http://www.cyberforum.ru/cpp-beginners/thread798065.html
Вот такая проблема... Точнее их много, но если по порядку, то сейчас только такая проблема: Хеширование, методом середины квадрата, разрешение коллизий: метод открытая адресация. Есть код: ...
C++ Алгоритмы решения задачи Ниже прикреплено мое задание, собственно программу я уже написал, мне пришло на ум два алгоритма 1) Переписывать не повторяющиеся числа из одного массива в другой, то есть мы берем число из... http://www.cyberforum.ru/cpp-beginners/thread798059.html
C++ Взаимодействие двух объектов
Есть объект класса А. В нём есть массив объектов класса В. Программой предусмотрено поочерёдное обращение к элементам массива, с целью вызова методов класса В. В классе В есть указатель на...
Нужен советом, что бы программа запускалась на windows 2003 server C++
Создал не сложную программу, на VisualStudio2012, на компе с windows 2003 server установил Microsoft Visual C++ 2010 Service Pack 1 (86х), Visual C++ Redistributable for Visual Studio 2012 (86х), и в...
C++ Заполнение пятимерного массива http://www.cyberforum.ru/cpp-beginners/thread798048.html
Здравствуйте! В книге Бондарева В.М. "Программирование на С++" приведена следующая задачка: Разместите в свободной памяти 5-мерный массив размером 2*2*2*2*2. Заполните его числами от 0 до 31. ...
C++ Даны 2 строки. Определить, состоят ли они из одних и тех же символов. Даны 2 строки. Определить, состоят ли они из одних и тех же символов. подробнее
Baium
1 / 1 / 1
Регистрация: 01.03.2013
Сообщений: 20
0

Увеличение точности при подсчетах

01.03.2013, 16:56. Просмотров 1747. Ответов 9
Метки (Все метки)

Есть полностью рабочая программа, она находит корень К из числа Х с точностью prec.
Работает все хорошо, но при подсчетах с дробовыми числами идет потеря во втором-третем знаке.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>;
#include <conio.h>;
#include <math.h>;
 
main()
{clrscr();
 
float x,k,prec,y,yk,b,z;
int p;
 
printf("enter number \n");
scanf(" %f",&x);
printf("enter degree\n");
scanf(" %f",&k);
printf("enter accuracy \n");
scanf(" %f",&prec);
y=1;
p=k;
if (x==0)
{ printf("x=0");}
if ((x>0) && (k>0))
{
do
{
yk=y;
for (int i=k-1; i>1; i--) yk=y*yk;
 
b=(1/k)*((x/yk)-y);
if (fabs(b)>prec) y=y+b;
}
while (fabs(b)>prec);
 
printf("result:  %f \n",y); }
 
if ((x>0) && (k<0))
{k=abs(k);
do
{
yk=y;
for (int i=k-1; i>1; i--) yk=y*yk;
 
b=(1/k)*((x/yk)-y);
if (fabs(b)>prec) y=y+b;
}
while (fabs(b)>prec);
z=1/y;
printf("result:  %f \n",z); }
 
 
if ((x<0) && (k>0) && ((p%2)!=0))
{x=abs(x);
do
{
yk=y;
for (int i=k-1; i>1; i--) yk=y*yk;
 
b=(1/k)*((x/yk)-y);
if (fabs(b)>prec) y=y+b;
}
while (fabs(b)>prec);
z=y-2*y;
printf("result:  %f \n",z); }
 
 
 
if ((x<0) && (k<0) && ((p%2)!=0))
{x=abs(x);
k=abs(k);
do
{
yk=y;
for (int i=k-1; i>1; i--) yk=y*yk;
 
b=(1/k)*((x/yk)-y);
if (fabs(b)>prec) y=y+b;
}
while (fabs(b)>prec);
z=1/(y-2*y);
printf("result:  %f \n",z); }
 
if ((x<0) && ((p%2)==0))
{printf("inccorect, if x<0, degree must be unparne");}
 
if (k==0)
{printf("  degree cant be zero");}
 
 
 
getch();
return 0;
 
}
при числе 0.25, степени кореня 4.4 получается ответь аля 0.704111. Должно при этих значениях получатся 0.72974005.
Просьба помочь, ибо как тут выкрутится я не знаю. точностьи 1Е-5 обычно хватает

Вернуться к обсуждению:
Увеличение точности при подсчетах
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2013, 16:56
Готовые ответы и решения:

Возможное округление при нахождении 2-й производной. При повышении точности программа начинает возвращать 0.
Итак, здравствуйте. Такая проблема. Существует формула для нахождения 2-й...

Потеря точности при масштабировании
Доброго времени суток может кто-то подскажет алгоритм масштабирования без...

Потеря точности при использовании static_cast
По условию задачи нужно было явное приведение к типу. float n=45.5; ...

Как посчитать значение при потери точности?
Преобразования плавающих типов. Величины типа float преобразуются к типу double...

Написать программу, демонстрирующую потери точности при арифметических операциях
Можете рассписать по пунктам, что делать? Суть задания я уловила, а как...

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