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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2013, 05:46   #1
Nalia.dolpfin
 
Регистрация: 02.06.2013
Сообщений: 8
По умолчанию Решение многочлена на Cи

помогите нужно решить уравнение a*x^3+b*x^2+c*x+d=0 и ввести a,b,c,d и границы отрезка с клавиатуры саму программу с заранее заданными данными я написала а вот с вводом ничего не получается
Код:
#include "stdafx.h"
#include <math.h>
#include <conio.h>

double f(double x)
{
	return 1*pow(x,3)-1*pow(x,2)-1*x;
}

int main()
{
	float eps=0.01;
	double a,b,x,x0,x1,dx,y,v[6],w[3],z[4];
	int i,k,sh;
                a=-1;
			    b=2;
                y=f(a);
				x0=a;
				i=0;
                dx = (b - a)/10;//Мин шаг точность/10
                //Вычисления останавливаем когда добиваемся
                //требуемой точности вычислений eps < fabs(f(x))
                //или же достигаем конца промежутка
                for(x=x0;x<=b;x=x+dx)
				{
                if(f(x)==0)
				{
					y=f(x-eps);
					x0=x-eps;
					x=x-eps;
				}
                
				if(y*f(x)<0)
				{
					v[i]=x0;
					v[i+1]=x;
					y=f(x);
					x0=x;
					i=i+2;
					
				}
				else
				{
                   y=f(x);
				   x0=x;
				}
				}
    for (i=0;i<6;i++)
	{
		printf("%f\n " ,v[i]);
	}
	printf("\n");
				k=0;
				for(i=0;i<=5;i=i+2)
				{
					a=v[i];
					b=v[i+1];
					sh=0;
					x1=(a+b)/2;
					while (fabs(f(x1))>=eps)
					{
						if (f(x1)*f(a)<0)
						{
							b=x1;
						}
						else
						{
							a=x1;
					}
						x1=(a+b)/2;
						sh=sh+1;
					}
					w[k]=x1;
					z[k+1]=sh;
					k=k+1;
					}
				for (i=0; i<3;i++)
				{
				printf("%f\n", w[i]);
				}
				printf ("%d\n", sh);
 _getch();
}
Nalia.dolpfin вне форума Ответить с цитированием
Старый 10.06.2013, 05:53   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Ввод данных с клавиатуры вы имеете в виду...
Есть одна функция -
Код:
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.06.2013, 05:55   #3
Nalia.dolpfin
 
Регистрация: 02.06.2013
Сообщений: 8
По умолчанию

просто проблема заключается еще и в том где это
Цитата:
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
прописать и как ссылаться на введенние данные??

и кст разве мы вводим данные не printf ?? мне же нужны коэффициенты в этой строчке
Цитата:
return 1*pow(x,3)-1*pow(x,2)-1*x;

Последний раз редактировалось Stilet; 10.06.2013 в 07:22.
Nalia.dolpfin вне форума Ответить с цитированием
Старый 10.06.2013, 06:00   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Напишите например так
Код:
 prinf("\n Ввод данных\n");
printf("Значение A: "); scanf("%d", &a);
printf("Значение B: "); scanf("%d", &b);
printf("Значение C: "); scanf("%d", &c);
printf("Значение D: "); scanf("%d", &d);
Напишите этот кусок кода после объявления переменных... Там ему и место.
А по поводу того как ссылаться на введенные данные - поясните, что вы имеете в виду?

Каждой переменной присваивается значение которое возвращает функция f. На сколько я вижу из кода.... Тогда вопрос на засыпку, что именно не получается, что не работает (какие ошибки выдает, если выдает)????
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Stilet; 10.06.2013 в 07:24.
Bugrimov вне форума Ответить с цитированием
Старый 10.06.2013, 06:13   #5
Nalia.dolpfin
 
Регистрация: 02.06.2013
Сообщений: 8
По умолчанию

если я его прописываю в саму функцию f он у меня постоянно непрерывно запрашивает эти данные если прописываю в новую функцию перед f то он их не видит если просто перед f без каких либо то функций то он их тупо неопределяет
Nalia.dolpfin вне форума Ответить с цитированием
Старый 10.06.2013, 07:36   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Кого его, кого ИХ.... ???? Поясните немного, думаю наш диалог станет понятнее..
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 10.06.2013 в 09:30.
Bugrimov вне форума Ответить с цитированием
Старый 10.06.2013, 21:36   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,321
По умолчанию

Считали a, b, c, d.
Вызываем функцию:
Код:
double
f(double a, double b, double c, double d, double x)
{
    return ((a*x+b)*x+c)*x+d;
}
...
f(a, b, c, d, x);
Остальной код не смотрел.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу вычисления коэффициентов многочлена, что является произведением многочлена n-степени на многочлен степени m amelie29 Помощь студентам 3 12.03.2013 21:19
Решение многочлена методом Горнера Александррррр1 Помощь студентам 0 31.03.2012 13:06
проверка многочлена kotkota Помощь студентам 11 09.11.2011 21:06
умножение многочлена Neitrosha Помощь студентам 2 28.02.2011 17:27
[Паскаль] Коэффициенты многочлена Victorina Помощь студентам 2 04.11.2009 07:42