[Pascal] Całkowanie metodą prostokątów - sprawdzenie

Awatar użytkownika
aniu_ta
Użytkownik
Użytkownik
Posty: 667
Rejestracja: 27 gru 2010, o 18:23
Płeć: Kobieta
Lokalizacja: Pomorskie
Podziękował: 36 razy
Pomógł: 92 razy

[Pascal] Całkowanie metodą prostokątów - sprawdzenie

Post autor: aniu_ta »

W szkole piszemy program, który ma obliczać całkę z funkcji wielomianowej max. szóstego stopnia. Poniżej postaram się z pamięci przepisać kod, który napisałam w szkole (mogą pojawić się literowki). Wydawał mi się być poprawny, ale dla najprostszych przypadków (np dla \(\displaystyle{ f(x)=3}\) w przedziale od \(\displaystyle{ 0}\) do \(\displaystyle{ 5}\)) wychodziły mi jakieś głupoty, proszę o sprawdzenie.

Kod: Zaznacz cały

uses crt;
function f(x:real):real;
begin
  f:=a[6]*x*x*x*x*x*x+a[5]*x*x*x*x*x+a[4]*x*x*x*x+a[3]*x*x*x+a[2]*x*x+a[1]*x+a[0]
end;
var xp,xk,dx,calka:real; n,i,stpoien:integer; a:array[0..6] of real;
begin
  clrscr;
  write('Podaj stopien wielomianu (od 0 do 6): ');
  readln(stopien);
  for i:=stopien downto 0 do 
    begin
      write('Podaj wspolczynnik przy ',i,'-ej potedze x: ');
      readln(a[i]);
    end;
  write('Podaj poczatek przedzialu calkowania: ');
  readln(xp);
  write('Podaj koniec przedzialu calkowania: ');
  readln(xk);
  write('Podaj, na ile czesci mam podzielic przedzial calkowania: ');
  readln(n);
  dx:=(xk-xp)/n;
  calka:=0;
  for i:=1 to n do calka:=calka+f(xp+i*dx)*dx;
  write('Calka z tego wielomianu w danym przedziale wynosi: ',calka);
  readln;
end.
Ostatnio zmieniony 18 paź 2012, o 18:20 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
ODPOWIEDZ