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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2011, 09:08   #1
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию вычислить полином n-ой степени

Вычислить y=x^9+15x^8-2x^6-13x^5+4x^2+1.

Код программы :

#include<stdio.h>
#include<conio.h>
#include<math.h>

main()
{
int i; int a[8],x,y;
clrscr();

for(i=0;i<=8;i++)
{
printf("vv. elementi massiva: ",a[i]);
scanf("%d",&a[i]);
}
printf("vvedite x:");
scanf("%d",&x);
y=a[0];
for(i=1; i<=8;i++)

y=y*x+a[i];
printf("\n y=%d",y);


getch();
}

тест получается правильным но для проверки я сделал икс равным не 1 (как в условии), а икс равным 0 и получается что игрек равен нулю но если подставить в уравнение 0 то получается что все выражение равно единице а по тесту равным нулю
что в проге изменить чтобы она считала прравильно?

тест: (при х=0)
P.S. не знаю как сюда выкладывать фото, поэтому решил через файлообменник http://upwap.ru/1818286
dronchik2010 вне форума Ответить с цитированием
Старый 08.11.2011, 14:13   #2
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

У вас полином 9 степени, следовательно что бы его описать надо массив из 10 элементов. У вас из 8.

Код:
printf("vv. elementi massiva: ",a[i]);
Зачем a[i] ?

Код:
for(i=1; i<=8;i++) y=y*x+a[i];
Что вы хотели этим сказать?

Код:
int main(){
int pol[10];
for(int i=9;i>=0;i--){ printf("Введите коэффициент перед x^%d:\n",i ); scanf("%d",&pol[i]);}
int y=pol[0],x;
printf("Введите x:\n");
scanf("%d",&x);
int x1=1;
for(int i=1;i<10;i++){ 
	x1*=x;
	if(pol[i]) 
		y+=pol[i]*x1;
}
printf("y=%d\n",y);
}
}
Ёж птица гордая, пока не пнешь не полетит.

Последний раз редактировалось Ezhuk; 08.11.2011 в 15:14.
Ezhuk вне форума Ответить с цитированием
Старый 08.11.2011, 18:24   #3
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию

я понимаю
прога у меня правильная
просто как я понял нужно что то изменить в моем коде, я все перепробовал, результат все тот же получается
и и то что полином 9 степени а я написал 8, это правильно, препод так сказал
dronchik2010 вне форума Ответить с цитированием
Старый 08.11.2011, 18:29   #4
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию

у меня получилось: у=1
но оно выскакивает в тесте так:

у=1
у=1
у=1
у=1
у=1

а нужно чтобы было только одно "y"
dronchik2010 вне форума Ответить с цитированием
Старый 08.11.2011, 18:40   #5
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Если несколько раз выводит, значит что-то с циклом неправильно.

Я не понимаю, как можно хранить полином 9 степени в массиве из 8 элементов.
Как массив {1,15,0,-2,-13,0,0,4,0} можно поместить в a[8]? И как он может выражать полином 9 степени?

Код:
int i; int a[8],x,y;
clrscr();

for(i=0;i<=8;i++)
Куда вы пытаетесь записать 9 элемент?

И в, написанной вами, программе не используются функции из библиотеки math.h
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 08.11.2011, 18:44   #6
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию

Я не понимаю, как можно хранить полином 9 степени в массиве из 8 элементов.
Как массив {1,15,0,-2,-13,0,0,4,0} можно поместить в a[8]? И как он может выражать полином 9 степени?

у меня все влезает
dronchik2010 вне форума Ответить с цитированием
Старый 08.11.2011, 18:47   #7
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

При восстановлении полиному по вашему массиву, потеряется коэффициент перед x^0( в вашем случае 1).
И как у вас может влезть 9 элемент в массив состоящий из 8 элементов?

И еще есть негласное правило, основанное на логике и лени, что если записывать полином в массив, то a[i] равняется коэффициенту перед x^i. Это упрощает написание программы.
Ёж птица гордая, пока не пнешь не полетит.

Последний раз редактировалось Ezhuk; 08.11.2011 в 18:52.
Ezhuk вне форума Ответить с цитированием
Старый 08.11.2011, 18:54   #8
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию

просто у нас начальный (пока) уровень си, поэтому так и пишем

теперь когда у меня с циклом получилось, то когда я вожу х=1, то ответ не верный
dronchik2010 вне форума Ответить с цитированием
Старый 08.11.2011, 18:56   #9
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Напишите ваш нынешний код.
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 11.11.2011, 10:48   #10
dronchik2010
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 37
По умолчанию

#include<stdio.h>
#include<conio.h>
#include<math.h>

main()
{
int i; int a[8],x,y;
clrscr();

for(i=0;i<=8;i++)
{
printf("vv. elementi massiva: ",a[i]);
scanf("%d",&a[i]);
}
printf("vvedite x:");
scanf("%d",&x);
y=a[0];
for(i=1; i<=8;i++)

y=y*x+a[i];
printf("\n y=%d",y);


getch();
}
dronchik2010 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить полином n-ой степени dronchik2010 Помощь студентам 5 31.10.2011 22:38
вычислить: У=cos(x)+cos(x)*(x)+ cos(X)*(X)*(X)+...+cos(X)(в n степени) КАША Помощь студентам 20 01.11.2010 17:34
Полином Ньютона пятой степени (Visual C++) mezo Помощь студентам 1 09.06.2010 14:17
Вычислить корень 5 степени из положительного числа Dartchuwak Общие вопросы C/C++ 4 12.12.2009 22:08
Вычислить корень 5-ой степени из числа a с точностью E С++ Dartchuwak Помощь студентам 0 10.12.2009 18:07