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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2014, 23:29   #1
Riven7
Пользователь
 
Регистрация: 30.10.2014
Сообщений: 10
По умолчанию СЛАР комбинированный метод

Не получается найти Х.
Код:
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <string.h>
using namespace std;
double fun (double x)
{
	return  (x*x*x-7.0*x+6.0);
}
double fun1 (double x)
{
	return   ( 3.0*x*x-7.0);
}
int main()
{int d,p1,p2;
double x,a,b,c;
double eps;
double resulta;
double resultb;


cout<<"Vvedite predeli P1 i P2";
cin>>p1;
cin>>p2;
cout<<"Vvedite step";
cin>>eps;
int j = (abs(p1)+abs(p2))/eps;
int *P1=new int [j];
int *P2=new int [j];
int i=0;
for (i=0;i<j;p1+=eps,i++)
	{
		P1[i]=p1;

}
for (i=0;i<j;p2-=eps,i++)
	{
		P2[i]=p2;
}
cout<<"If  F(a)'F''(a)>0 vvedite 1 else 0";
cin>>d;

if (d=1)
{
int f=0;
	
	do
	{
	
resulta = P1[f]- ((fun (P1[f]))*(P2[f]-P1[f]))/(fun(P1[f])-fun(P1[f]));
resultb = P2[f]- fun(P2[f])/fun1(P2[f]);
	f++;
	}
	while ((f<j)&&(abs(resulta)-abs(resultb)>2*eps));

double r =  0.5 * resulta * resultb;
cout<<r;
}else 
{
int f=0;
do
		{
resultb = P2[f]- ((fun (P2[f]))*(P2[f]-P1[f]))/(fun(P2[f])-fun(P1[f]));
resulta = P1[f]- fun(P1[f])/fun1(P1[f]);
f++;
	}
	while ((f<j)&&(abs(resulta)-abs(resultb)>2*eps));

double l =  0.5 * resulta * resultb;
cout<<l;

}
}
Riven7 вне форума Ответить с цитированием
Старый 24.11.2014, 23:40   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Интересно код вообще работает?
Код:
if (d=1)
Может вы это имели в виду
Код:
if (d==1)
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 24.11.2014 в 23:42.
Bugrimov вне форума Ответить с цитированием
Старый 26.11.2014, 00:12   #3
Riven7
Пользователь
 
Регистрация: 30.10.2014
Сообщений: 10
По умолчанию

Прога работает до момента поиска самого значения Х.
До этого момента все работает
Код:
if (d=1)
{
int f=0;
	
	do
	{
	
resulta = P1[f]- ((fun (P1[f]))*(P2[f]-P1[f]))/(fun(P1[f])-fun(P1[f]));
resultb = P2[f]- fun(P2[f])/fun1(P2[f]);
	f++;
	}
	while ((f<j)&&(abs(resulta)-abs(resultb)>2*eps));

double r =  0.5 * resulta * resultb;
cout<<r;
}else 
{
int f=0;
do
		{
resultb = P2[f]- ((fun (P2[f]))*(P2[f]-P1[f]))/(fun(P2[f])-fun(P1[f]));
resulta = P1[f]- fun(P1[f])/fun1(P1[f]);
f++;
	}
	while ((f<j)&&(abs(resulta)-abs(resultb)>2*eps));

double l =  0.5 * resulta * resultb;
cout<<l;

}
}
И кстати
Код:
if (d==1)
ничего не изменит
Riven7 вне форума Ответить с цитированием
Старый 26.11.2014, 00:54   #4
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
Сообщение от Riven7 Посмотреть сообщение
И кстати
Код:
if (d==1)
ничего не изменит
Как минимум поменяется операция присваивания на сравнение.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] Комбинированный метод хорд и касательных Максим139 Помощь студентам 3 07.10.2012 21:25
РЕШЕНИЕ СЛАР МЕТОДОМ ГАУССА!!!! inna_matuashova Помощь студентам 1 25.02.2012 19:43
СЛАР метод Зейделя maloy-rom Общие вопросы C/C++ 4 17.02.2010 23:03
Метод итераций и комбинированный метод prikolist Общие вопросы C/C++ 2 16.06.2009 20:51
откорректируйте программу по решению СЛАР методом Гауса Ge0rGE Помощь студентам 3 19.05.2009 22:47