Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 18:41   #1
disable
Новичок
Джуниор
 
Регистрация: 19.09.2011
Сообщений: 1
По умолчанию

Проблема в том что в конце концов выдает y=1 но при проверке допустим в маткаде y=0.995 и эта точность для меня важна, как заставить программу не округлять?
P.S: Прошу за исполнение не ругать, только учимся =)

Код:
#include "stdafx.h"
#include <iostream.h>
#include <conio.h>
#include <cmath>
#include <stdio.h>
double f(double,double);
void main ()
{
	long double y,x,h,yp,k1,k2,k3,k4;
	h=0.1;
	y=1;
	x=0.1;
	k1=h*f(x,y);
	k2=h*f(x+0.25*h,y+0.25*k1);
	k3=h*f(x+0.5*h,y+0.5*k2);
	k4=h*f(x+h,y+k1-2*k2+2*k3);
	yp=f(x,y);
	y=y+1/6*(k1+4*k3+k4);
	cout << y << "\n";
	getch();
}
// - - - - - - - - - - - - - - - - - - - - 
double f(double x,double y)
{
	double f=(y*(sin(x)-sin(2*x))/cos(x));
	return f;
}
Нашел решение проблемы:
В строчке где считаеться "y" число 1/6 надо писать как 1./6. и множитель k3 вместо 4 надо 4.

Последний раз редактировалось Stilet; 19.09.2011 в 21:28.
disable вне форума Ответить с цитированием
Старый 19.09.2011, 19:08   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Лучше писать 1.0/6.0, так как точка плохо заметна. А множителем k3 можно оставить 4, он будет автоматически преобразован к 4.0L (типу k3)
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows-программа + web-обвязка, как связать и как заставить работать? Человек_Борща Общие вопросы по программированию, компьютерный форум 3 23.04.2011 19:07
новичёк, не округлять число в ячейке mendess01 Microsoft Office Excel 2 25.01.2011 13:35
Как заставить мегать приложение. VintProg Общие вопросы Delphi 2 01.08.2010 15:49
Как заставить Memo?? Lencom Общие вопросы Delphi 6 03.07.2008 15:01
Как округлять числа до целых и как оставить два знака после запятой. bles Помощь студентам 9 19.02.2008 21:53