Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
#1

int и double - C++

14.09.2012, 22:25. Просмотров 545. Ответов 2
Метки нет (Все метки)

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
//---------------------------------------------------------------------------
 
#include "math.h"
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
 
 
//---------------------------------------------------------------------------
 
#pragma argsused
typedef double (*d1)(double,double);
typedef double (*d2)(double);
double s(double,double);
double y(double);
void Out_Rez (double(*)(double) ,double(*)(double,double),double,double,double,double);
 
 
 
 
void main()
{
double a,b,h,n;
puts("Input a,b,h,n");
scanf("%lf%lf%lf%lf", &a, &b, &h, &n);
puts("\n\t Rezalt \n");
Out_Rez (y,s,a,b,h,n);
puts("\n Press any key ... ");
getch();
}
 
double y( double x){
return(pow(x,2)/4.+x/2.+1.)*exp(x/2.);
}
double s(double x,double n) {
double k=1;
double s=1;
double kf=1;
while (k<n)
{
s+=(pow(k,2.)+1)*(pow((x/2.),k))/(kf*=k++);
}
return (s);
}
void Out_Rez (d2 y,d1 s,double a,double b,double h,double n) {
for(double x=a; x<=b; x+=h)
printf(" a = %5.2lf, b = %8.4lf,x = %8.6lf, h = %5.4lf, n = %5.5lf\n Y(x) = %8.6lf, S(x) = %8.6lf, |Y(x)-S(x)| = %8.6lf \n\n\n\n\n",a,b,x,h,n,s(x,n),y(x),fabs(y(x)-s(x,n)));
}
При типе данных в строке 38 при типе данных double все норм, но есть там написать int, то меняется значение функции y, ее результат становиться равным единице всегда! Как могут быть связаны результаты этих переменных????????? Они ведь даже в разных функциях и в функции y про функцию s ничего нет. Как такое получается что из-за типа данных одной функции меняется результат другой, при этом функция s передает при любом типе данных правильные значения с цифрами после запятой. Как вообще такое возможно???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 22:25     int и double
Посмотрите здесь:

double в int - C++
собственно вопрос в шапке, как перевести double в int? т.е. также как работает делфийская функция round, округлить до целых и выдать число...

int* to double* - C++
double* myDoublePtr; int myInt = 5; int* myIntPtr; myIntPtr = &amp;myInt; // cout &lt;&lt; &quot;myIntPtr: &quot; &lt;&lt; myIntPtr &lt;&lt; &quot; &quot;...

2 int to double - C++
Здравствуйте. Вот такой вопрос. В памяти хранится 2 int числа - рубли и копейки, при выводе выводятся через запятую. В задании нужно...

double и int - C++
double buf = Convert::ToDouble(pole-&gt;Text);//Обьявляем переиенную buf switch (regim) { case '%': pole-&gt;Text =...

Перевести double в int - C++
Как перевести значения типа double (после логарифмического преобразования) в int?

cannot convert from 'int *' to 'double *' - C++
Помогите пожалуйста исправить ошибку: error C2440: '=' : cannot convert from 'int *' to 'double *'. #include &lt;iostream.h&gt; void...

Перевод из wchar_t* в int (double) - C++
Как перевести из wchar_t* в int (double) без учета впереди стоящих нулей? то есть у меня есть строка типа 050609, где 05 часов 06 минут и...

Перевод int и double в char* - C++
Возникла следующая проблема. Нужно сделать: //Реализовать класс var - «Универсальная переменная». Объекты экземпляры этого класса...

Перегрузка функции int double - C++
Напишите функцию max с переменным количеством параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип...

Невозможно преобразование int в double - C++
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;locale.h&gt; using namespace std; #define k 6 #define l 8 ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2012, 23:01     int и double #2
У вас здесь:
C++
1
printf(" a = %5.2lf, b = %8.4lf,x = %8.6lf, h = %5.4lf, n = %5.5lf\n Y(x) = %8.6lf, S(x) = %8.6lf, |Y(x)-S(x)| = %8.6lf \n\n\n\n\n",a,b,x,h,n,s(x,n),y(x),fabs(y(x)-s(x,n)));
порядок вывода перепутан. Поменяйте местами s(x,n) и y(x)
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
14.09.2012, 23:14  [ТС]     int и double #3
Спасибо, тупая ошибка, казалось уже каждую строчку перепроверил, а все равно ошибся.
Ответ Создать тему
Опции темы

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