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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2014, 19:05   #1
Konsyello
Пользователь
 
Регистрация: 14.10.2013
Сообщений: 26
По умолчанию Вычислить величину

Даны коэффициенты многочленов Q(x) и Р(х) 15 степени и дано вещественное число х. Вычислить величину Р(х+Q(х)*Р(х+1)) в виде отдельной функции.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int function_p(double a,int px)
  {
      double s,p;
      int sum = 0,i;
      for(i=15;i<10;i++)
      {
      sum = sum+px[i]*exp(i*(ln (a)));
          p = sum;
      }
  }
  int function_q(double a)
  {
      double s,q;
      int i;
      int sum = 0;
      for(i=0;i<=15;i++)
      {
          q = sum;
      }
  }
  int main()
  {
      int px[15],qx[50];
  int i;
  double s;
      for(i=0;i<15;i++)
      {
          fprintf("Vvedite koef",i,"stepeni P(x): ");
          scanf("%d", px[i]);
    }
    for(i=0;i<15;i++)
       {
        printf("Vvedite koeficient",i,"stepen Q(x): ");
        scanf("%d", qx[i]);
        s = p(a+q(a)*p(a+1)));
        printf("S=" "", s:0:4);
     }
  }
Konsyello вне форума Ответить с цитированием
Старый 30.04.2014, 19:26   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

И в чем вопрос?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 30.04.2014, 19:53   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Код:
sum = sum+px[i]*exp(i*(ln (a)));
Здесь у вас px типа int. Если вы имели в виду ваш массив из мейна, то тоже не правильно - у него нет индекса 15.

В функциях нет ретурнов.

Код:
s = p(a+q(a)*p(a+1)));
Кто такие p и q здесь? Вы их не описали.

Но вам об этом уже компилятор рассказал? Так что присоединяюсь к вопросу:
Цитата:
И в чем вопрос?
p51x вне форума Ответить с цитированием
Старый 30.04.2014, 21:03   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Напишите подробнее, что должна делать ваша программа? А то что-то вы все в кучу скидали...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 01.05.2014, 18:25   #5
Konsyello
Пользователь
 
Регистрация: 14.10.2013
Сообщений: 26
По умолчанию

Моя попытка перевести с Паскаля на Си не получилась. Просто я как месяц изучаю Си. А я этой задачей всё не могу разобраться. Есть еще вариант вычислить по схеме Горнера. Но этот вариант мне кажется еще сложнее.
На Паскале задача выглядит вот так:
Код:
program mnogochlen;
uses crt;
var px,qx:array[0..15]of integer;
    i:integer;
    s:double;
 
function p(a:double):double;
var s:double;
begin
 sum:=0;
 for i:=15 downto 0 do sum:=sum+px[i]*exp(i*(ln a));
 p:=sum;
end;
 
function q(a:double):double;
var s:double;
begin
 sum:=0;
 for i:=15 downto 0 do sum:=sum+qx[i]*exp(i*(ln a));
 q:=sum;
end;
 
begin
 clrscr;
 for i:=15 downto 0 do
 begin
  write('Vvedite koef.',i,' stepeni P(X): ');
  readln(px[i]));
 end;
 
 for i:=15 downto 0 do
 begin
  write('Vvedite koef.',i,' stepeni Q(X): ');
  readln(qx[i]));
 end;
 
 s:=p(a+q(a)*p(a+1));
 writeln('S=',s:0:4);
 readln;
end.

Последний раз редактировалось Konsyello; 01.05.2014 в 18:28.
Konsyello вне форума Ответить с цитированием
Старый 01.05.2014, 21:42   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:

 int px[15],qx[15];
    int i;
 
double p(double a){
 double s=0
 for(i=15;i>=0;i--) s+=px[i]*exp(i*(ln a));
 return s;
}
 
double q(double a){
 double s
 for(i=15;i>=0;i--) s+=qx[i]*exp(i*(ln a));
 return s;
}
 
int main(){

 for(i=15;i<=0;i--){
  printf("Vvedite koef.%d stepeni P(X): ',i);
  scanf("%d",&px[i]));
 }
 
 for(i=15;i<=0;i--){
  printf("Vvedite koef.%d stepeni Q(X): ',i);
  scanf("%d",&qx[i]));
 }
 
 printf("%5.2f",p(a+q(a)*p(a+1)));
 getchar();
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.05.2014, 23:49   #7
Konsyello
Пользователь
 
Регистрация: 14.10.2013
Сообщений: 26
По умолчанию

Stilet , спасибо!!! В консоли выдается автоматически 0.00 и всё(Сode Blocks). А в Visual Studio пишет: Debug Error.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int px[15],qx[15];
    int i;

double p(double a){
 double s=0;
 	//double n=log(a);
 for(i=15;i>=0;i--)
    s+=px[i]*exp(i*(log(a)));
 return s;
}

double q(double a){
 double s=0;
 	//double n=log(a);
 for(i=15;i>=0;i--)
s+=qx[i]*exp(i*(log (a)));
 return s;
}

int main(){
  int a;
 for(i=15;i<=0;i--){
  printf("Vvedite koef.%d stepeni P(X): ",i);
  scanf("%d",&px[i]);
 }

 for(i=15;i<=0;i--){
  printf("Vvedite koef.%d stepeni Q(X): ",i);
  scanf("%d",&qx[i]);
 }

 printf("%5.2f",p(a+q(a)*p(a+1)));
 getchar();
}
Konsyello вне форума Ответить с цитированием
Старый 02.05.2014, 00:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну правильно. Я не доглядел, а ты не подумав даже не попытавшись разобраться скописпастил. Ну ленивый студент пошел... В наше время такого не было.
В циклах main() знак поменяй на >= и i=14 а не 15.
Не знаю зачем ты в исходнике так написал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти обратную величину по модулю yurets17 Помощь студентам 0 26.02.2014 22:06
Pascal.Вычислить величину g(a,b). anbroider Помощь студентам 1 20.12.2012 19:34
По заданным вещественным числам вычислить величину. dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 0 20.08.2012 15:02
Задать определенную величину знаку табуляции yaver Общие вопросы Delphi 1 25.08.2010 17:30
вычислить номер и величину максимального элемента массива, произведение элементов, среднее арифметическое Romer9999 Паскаль, Turbo Pascal, PascalABC.NET 6 19.01.2009 16:35