[pascal] całki

Tuudi
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 6 wrz 2006, o 23:16
Płeć: Mężczyzna
Lokalizacja: Sląsk
Podziękował: 7 razy

[pascal] całki

Post autor: Tuudi »

Witam, napisałem program:

Kod: Zaznacz cały

program progr;

uses crt;
var
   x,xp,xk : real;
   calka,h : real;


function funkcja(x:real):real;
     begin
          funkcja:=sqr(x);
     end;

begin
     clrscr;
     writeln('podaj xp i xk (liczbe poczatkowa  i koncowa)');
     write('xp=');
     read(xp);
     write('xk=');
     read(xk);
     h:=(xk-xp)/2;
     calka:=(xk-xp)*funkcja(h);
     writeln('calka=',calka:5:5);
     readkey;
end.
Potrzbuje tak przekształcić program, aby:
- podac liczę częsci na jaką ma byc podzielona całka.
- liczył pole powierzchi każdej z częsci, następnie dodając je i otrzymując poprawny wynik.

Z góry dzięki za podpowiedzi ;)
Yummy
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 6 maja 2009, o 18:02
Płeć: Mężczyzna

[pascal] całki

Post autor: Yummy »

HAHA, jakbyś ty napisał ten program to byś nie miał problemu z przekształceniem go w podany sposób więc mnie nie rozśmieszaj...

dodaj zmienną np. krok : real; {nie jestem pewien czy nie smallint ...}
writeln('podaj krok: ');readln(krok);

h:=(xk-xp)/krok;

używasz pętli for do liczenia poszczególnych całek

for i:=0 to krok-1 do...

tutaj to co wczesniej tylko
pole:= abs(1/2*(f(x+i*h)+f(x+i*h+h))*h);

i to chyba wszystko ale nie wiem bo nie patrzylem do programu najwyzej poprawie...
writeln('Pole i:',pole:4:2);
polacalkowite:=polecalkowite+pole;

PS. wiem że przestarzałe i koleś już znalazł ale jak ktoś inny będzie szukał to znajdzie se :)
ODPOWIEDZ