Важная информация
Показано с 1 по 2 из 2

Тема: Замороченное вычисление определенного интеграла

  1. #1 Замороченное вычисление определенного интеграла 
    Новичок
    Регистрация
    05.05.2016
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Здравствуйте уважаемые программисты. Не буду вертеться вокруг да около.. а перейду сразу к делу.
    Есть программный код (как я считаю полностью завершенный), но все же он выдает ошибку.. Надеюсь что Вы сможете разъяснить, а еще желательно показать на примере, в чем же там ошибка.

    Пока попробую изложить свои идеи относительно этой ошибки. По правилам... 1. ошибка - undefined reference to `WinMain@16' устраняется вроде как main() c int или без.. но это уже не так важно.. вопрос куда её втулить то? Если тут у меня везде double... Dev C++ в упор не понимают чего от него хотят... Я и сам не понимаю 2. вот насчет этой ошибки я вообще полный ноль - [Error] ld returned 1 exit status, мне лично она не встречалась не разу..

    Собственно сам код:
    C++ Code:
    1. #include <iostream>
    2. #include <stdio.h>
    3. #include <math.h>
    4. #include <cmath>
    5. using namespace std;
    6.  
    7. double Simpson(double (*Fx)(double))
    8. {
    9.     double I;
    10.     double h;
    11.     double x;
    12.     double a,b;
    13.     int m;
    14.      std::cout << "\n Input integral atributes: \n" <<  std::endl;
    15.      std::cout << "\t-> Enter a = ";
    16.      std::cin >> a;
    17.  
    18.      std::cout << "\t-> Enter b = ";
    19.      std::cin >> b;
    20.  
    21.      std::cout << "\t-> Enter m = ";
    22.      std::cin >> m;
    23.  
    24.     h=(b-a)/(m-1);
    25.     x = a;
    26.  
    27.     I = Fx(a) + Fx(b);
    28.     int n=0;
    29.  
    30.     while (n < m-2)
    31.     {
    32.         x = x+h;
    33.         if (n%2==0) I=I+4*Fx(x);
    34.             else  I = I+2*Fx(x);
    35.         n++;
    36. }
    37.  
    38.     return I*h/3;
    39. }
    40. // -------------------------------------------------------
    41. double Wadell(double (*Fx)(double))
    42. {
    43.  
    44.     double I;
    45.     double h;
    46.     double a,b;
    47.  
    48.      std::cout << "\n Input integral atributes:\n" <<  std::endl;
    49.      std::cout << "\t-> Enter a = ";
    50.      std::cin >> a;
    51.  
    52.      std::cout << "\t-> Enter b = ";
    53.      std::cin >> b;
    54.  
    55.     h = (b-a)/6;
    56.  
    57.     I = 3*h/10 * (Fx(a) + 5*Fx(a+h) + Fx(a+2*h) + 6*Fx(a+3*h) + Fx(a+4*h) + 5*Fx(a+5*h) + Fx(b)) ;
    58.  
    59.     return  I;
    60. }
    61. // -------------------------------------------------------
    62. double Bode(double (*Fx)(double))
    63. {
    64.  
    65.     double I;
    66.     double h;
    67.     double a,b;
    68.      std::cout << "\n Input integral atributes:\n" <<  std::endl;
    69.      std::cout << "\t-> Enter a = ";
    70.      std::cin >> a;
    71.  
    72.      std::cout << "\t-> Enter b = ";
    73.      std::cin >> b;
    74.  
    75.     h = (b-a)/4;
    76.  
    77.     I = 2*h/45 * (7*Fx(a) + 32*Fx(a+h) + 12*Fx(a+2*h) + 32*Fx(a+3*h) + 7*Fx(b) );
    78.     return I;
    79. }

    В общем то простые примеры в С++ решал не раз.. Вроде как получалось. А тут намудрил.. и вот итог.. Не знаю что делать.. Надеюсь на вашу помощь в исправлении кода.. желательно не сильном, а то труды то насмарку как бы
    Ответить с цитированием  
     

  2. #2  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 249 раз(а) в 164 сообщениях
    Цитата Сообщение от Castigador Посмотреть сообщение
    В общем то простые примеры в С++ решал не раз.. Вроде как получалось. А тут намудрил..
    Не намудрил, а накопипастил.
    Если решал простые примеры не раз, то знаешь, что у любой программы на любом языке всегда должна быть точка входа (функция, с которой начинается выполнения программы). в C++ это функция main(). В твоем коде такой функции просто нету, поэтому компилятор что делать.

    Выглядеть она в твоем случае должна примерно так:

    C++ Code:
    1. int main() {
    2.   Bode(foo);
    3. }


    Кроме того, все твои функции принимают указатель на функцию, которую следует интегрировать, но такую функцию ты не описал. В коде, который я выше привел это функция foo (допиши ее в своем коде).
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    >Quiet Snow< (06.05.2016)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 29.02.2012, 00:59
  2. Вычисление момента инерции
    от kostia-92 в разделе QBasic
    Ответов: 1
    Последнее сообщение: 26.06.2011, 05:18
  3. Ответов: 10
    Последнее сообщение: 10.01.2011, 22:05
  4. Ответов: 3
    Последнее сообщение: 09.01.2011, 01:25
  5. Вычисление числа пи
    от PreF1993 в разделе QBasic
    Ответов: 2
    Последнее сообщение: 17.12.2010, 21:51
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •