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

Найти коэффициенты многочлена - C++

Восстановить пароль Регистрация
 
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 230
03.02.2012, 14:10     Найти коэффициенты многочлена #1
Вот условие задачи:
Даны действительные числа а0 ,..., а6 . Получить для х=1,3,4 значения p(x+1)-p(x), где
p(y) = a6 y6 + a5 y5 + ... + a0.
По этому условию я нашел текст программы написанный в Pascal. Решил его переделать под С++.
Вот что получилось:
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
50
51
52
53
54
55
//---------------------------------------------------------------------------
#include <vcl.h>
#include<conio.h>
#include<iostream>
#include <math.h>
#pragma hdrstop
using namespace std;
//---------------------------------------------------------------------------
#pragma argsused
void P(char x, mas m);
int main(int argc, char* argv[])
{int n=6;
char x,i,j;
float    res, *a;
{
a=(float*) calloc(n,sizeof (float));
cout<<"Введите "<<n+1<<" коэффицентов многочлена:"<<endl;
for (i=n; i>0; i--)
 {
  cout<<"a["<<i<<"]=";
  cin>>a[i];
 }
cout<<"Коэффициенты многочлена:"<<endl;
for (i=n; i>0; i--)
cout<<a[i]<<" ";
cout<<endl;
cout<<endl;
cout<<"Значение выражения P(x+1)-p(x) при x=1,3,4:"<<endl;
for (x=1; x<4; x++)
if (x!=2)
 {
  cout<<"x="<<x<<" значение="<<P(x+1,a)-P(x,a);
  cout<<endl;
 }
getch();
return 0;
}
 }
void P(char x, float *b)
{ char i,j;
  float  s,y;
  int n=6;
{
b=(float*) calloc(n,sizeof (float));
s=b[0];
for (i=n; i>1; i--)
 {
  y=1;
  for(j=1; j<i; j++)
  y=y*x;
  s=s+b[i]*y;
 }
P=s;
}
 }
Выдает ошибку при описании функции и при обращении к ней.

Вот рабочий исходник на Pascal:

Pascal
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
uses crt;
const n=6;
type mas=array[0..6] of real;
function P(x:byte;m:mas):real;
var i,j:byte;
    s,y:real;
begin
s:=m[0];
for i:=n downto 1 do
 begin
  y:=1;
  for j:=1 to i do
  y:=y*x;
  s:=s+m[i]*y;
 end;
P:=s;
end;
var a:mas;
    x,i,j:byte;
    res:real;
begin
clrscr;
writeln('Введите ',n+1,' коэффициентов многочлена:');
for i:=n downto 0 do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Коэффициенты многочлена:');
for i:=n downto 0 do
write(a[i]:0:1,' ');
writeln;
writeln;
writeln('Значение выражения Р(х+1)-Р(х) при х=1,3,4:');
for x:=1 to 4 do
if x<>2 then
 begin
  write('x=',x,' значение=',P(x+1,a)-P(x,a):0:1);
  writeln;
 end;
readln
end.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2012, 14:10     Найти коэффициенты многочлена
Посмотрите здесь:

Найти коэффициенты k-ого многочлена Чебышева C++
Ввести n и числа a1, a2,...,an Вычислить и вывести коэффициенты многочлена p(x) = (x+a1)*(x+a1*a2)*...*(x+a1*a2*...*an) C++
Как создать многочлен n-ой степени, где коэффициенты многочлена выводятся через массив? C++
Найти коэффициенты произведения многочленов C++
C++ Многочлен степени n задан массивом своих коэффициентов. Подсчитать коэффициенты производной многочлена.
Найти степень многочлена C++
C++ Найти значение многочлена
C++ Вычислить и вывести коэффициенты многочлена

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.02.2012, 15:27     Найти коэффициенты многочлена #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
50
51
52
// 453.cpp: определяет точку входа для консольного приложения.
//
#include <locale.h>
#include<conio.h>
#include<iostream>
#include <math.h>
#pragma hdrstop
using namespace std;
//---------------------------------------------------------------------------
#pragma argsused
float P(int x, float *b)
{ 
 int i,j,n=7;
 float  s,y;
 s=b[0];
 for (i=n; i>1; i--)
  {
   y=1;
   for(j=1; j<i; j++)
    y*=x;
   s+=b[i]*y;
  }
 return s;
}
int main()
{
 setlocale(LC_ALL,"Russian");
 const int n=7;
 float a[n],res;
 int x,i,j;
 cout<<"Введите "<<n<<" коэффицентов многочлена:"<<endl;
 for (i=n; i>0; i--)
  {
   cout<<"a["<<i<<"]=";
   cin>>a[i];
  }
 system("cls");
 cout<<"Коэффициенты многочлена:"<<endl;
 for (i=n; i>0; i--)
  cout<<a[i]<<" ";
 cout<<endl;
 cout<<endl;
 cout<<"Значение выражения P(x+1)-p(x) при x=1,3,4:"<<endl;
 for (x=1; x<5; x++)
  if (x!=2)
   {
    cout<<"x="<<x<<" значение="<<P(x+1,a)-P(x,a);
    cout<<endl;
   }
 getch();
 return 0;
}
Разница в ответах может быть незначительная. Скорее всего, из-за массива. Там немного по-другому.
Yandex
Объявления
03.02.2012, 15:27     Найти коэффициенты многочлена
Ответ Создать тему
Опции темы

Текущее время: 13:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru