Obliczanie całki metodą prostokątów

0

Witam! mam do napisania program obliczający wartość całki oznaczonej metodą prostokątów w przedziale wczytanym z pliku tekstowego i zapisujący wynik w pliku tekstowym. jak na razie udało mi się cos takiego napisać:

#include <stdio.h>
#include <stdlib.h>
float f(float x);
float f(float x)
{ 
      return (x*exp(-x));
}
int main(int argc, char *argv[])
{
    int i;
    float przedzial, N, p, dx, xp, xk, s;
    printf("Program oblicza calke oznaczona w przedziale a,b z funkcji X*exp(-x)\n");
    printf("podaj poczatek przedzialu calkowania(liczba rzeczywista):\n" );
    scanf("%f", &xp);
    printf("podaj koniec przedziału całkowania:\n");
    scanf("%f", &xk);
     przedzial=xk-xp;
    printf("przedzial wynosi: %f\n",przedzial);
    printf("podaj ilosc prostokotow, na ktore ma byc podzielone pole pod wykresem:\n");
    scanf("%f",&N);
    
s=0;
dx=(przedzial/N);
printf("podstawa prostokata wynosi:%f\n", dx);
for(i=1;i<=N; i++)
{ 
             s+=f(xp+i*dx);
}
s=s*dx;

printf("pole wynosi:%f\n", s);
    

  
  system("PAUSE");	
  return 0;
}


 

tyle że tutaj dane są wprowadzane z klawiatury..nie mam pojęcia w jaki sposob zmienić to aby wczytywały dane z pliku tekstowego i je tam zapisywały..a kolejny problem jest taki, że dla przedziału zawierającego się w ujemnych x, program zle oblicza pole. Gorąco proszę o jakiekolwiek podpowiedzi! ;) z góry serdecznie dziękuje;)

0
przedzial=xk-xp; 

Przedział jest odcinkiem i musisz policzyć jego długość w zależności od tego, czy xp i xk są tego samego znaku, czy nie.

Co do obsługi plików: wypróbuj funkcje fprintf i fscanf. Link z przykładem:
http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/

1 użytkowników online, w tym zalogowanych: 0, gości: 1