Program z całkami

0

Witam!
Chciałam napisac program, obliczający 2 całki z 2 funkcji liniowych. Oto mój program, niestety sie nie komplikuje, jeśli ktoś wie na czym polega błąd proszę o odpowiedź. :)

Kopiuj
//*************************************************
//** Obliczanie całki oznaczonej metodą Simpsona **
//** ------------------------------------------- **
//** (C)2004 mgr Jerzy Wałaszek  I LO w Tarnowie **
//*************************************************

program int_simpson;
function f(x : double) : double;
begin
  f := x * x + 2 * x;
end;
const N = 10; //liczba punktów podziałowych
var
  xp,xk,s,st,dx,x : double;
  i : integer;
begin
  writeln('Obliczanie calki oznaczonej');
  writeln;
  writeln('f(x) = x * x + 2 * x');
  writeln;
  writeln('Podaj poczatek przedzialu calkowania');
  writeln;
  write('xp = '); readln(xp);
  writeln;
  writeln('Podaj koniec przedzialu calkowania');
  writeln;
  write('xk = '); readln(xk);
  writeln;
  s  := 0; st := 0;
  dx := (xk - xp) / N;
  for i := 1 to N do
  begin
    x  := xp + i * dx;
    st := st + f(x - dx / 2);
    if i < N then s := s + f(x);
  end;
  s := dx / 6 * (f(xp) + f(xk) + 2 * s + 4 * st);
  writeln('Wartosc calki wynosi : ',s:8:3);
  writeln;
  writeln('Nacisnij klawisz Enter...');
  readln;
end;
  writeln('Obliczanie drugiej calki oznaczonej');
   writeln;
  writeln('f(x) = x * x  * x+ 2 * x');
  writeln;
  writeln('Podaj poczatek przedzialu calkowania');
  writeln;
  write('xp = '); readln(xp);
  writeln;
  writeln('Podaj koniec przedzialu calkowania');
  writeln;
  write('xk = '); readln(xk);
  writeln;
  s  := 0; st := 0;
  dx := (xk - xp) / N;
  for i := 1 to N do
  begin
    x  := xp + i * dx;
    st := st + f(x - dx / 2);
    if i < N then s := s + f(x);
  end;
  s := dx / 6 * (f(xp) + f(xk) + 2 * s + 4 * st);
  writeln('Wartosc calki wynosi : ',s:8:3);
  writeln;
  writeln('Nacisnij klawisz Enter...');
  readln;
end.
edytowany 1x, ostatnio: madmike
KA
Gdybyś miał obliczyć 100 to też byś pisał sto razy to samo jedno pod drugim? Dowiedz się do czego służą pętle program z tego co widzę (bez kompilatora) nie kompiluje się bo jest niepotrzebny end; nad writeln('Obliczanie drugiej calki oznaczonej'); ale zaznaczam że gdybym był wykładowcą to bym Ci dał pałę za pisanie w ten sposób.
SI
1. Z kontekstu pierwszego zdania wynika, że Katrin17 to ona. 2. Żeby to jeszcze ona sama napisała. Niestety raczej źle przepisała: http://edu.i-lo.tarnow.pl/inf/alg/004_int/0004.php#Pascal
EL
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 13 lat
  • Postów:28
0

no super ze sie nie kompiluje szkoda ze nic nie wiem na temat bledu

Patryk27
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Oto mój program

// Obliczanie całki oznaczonej metodą Simpsona
// -------------------------------------------
// (C)2004 mgr Jerzy Wałaszek I LO w Tarnowie

A więc panie Jerzy, panu ten kod od 7 lat się nie kompiluje?

niestety sie nie komplikuje

Jak się nie myśli, się na lekcji nie uważa, to się ma potem takie problemy...
Szkoda, że nie podzielił się pan błędami, panie Jerzy...
Nawet kodu nie potrafi pan porządnie skopiować...
A teraz mamy dla pana zadanie: niech pan gapi się w ten kod dopóty, dopóki nie odnajdzie pan w nim błędu:

Kopiuj
  readln;
 end;
   writeln('Obliczanie drugiej calki oznaczonej');

0

Witam!
No tak wiem, ze sporo błędów, ale jestem dopiero w 3 gimnazjum, więc o całkach nie mam znacznego pojecia, a bierzemy to jakby powiedziec "dla chętnych" , nie wiedziałam jak sie dokońca za to zabrac, wiem skorzystałam z kodu z 1 LO w Tarnowie, ale po to, ze mniej więcej wiedziec jak to zrobic w Free Pascalu , znaczy że dwie funkcje, a nie jedna.Dziękuję, za podpowiedź, żeby skorzystac z pętli.
P.S. Można sie mylic będąc w gimnazjum dopiero, nie jestem na studiach.....

vpiotr
Katrin, popełniłaś wiele błędów z artykułu na temat tego jak nie zadawać pytań (http://rtfm.killfile.pl/). W zasadzie powinnaś zachować nazwisko autora oryginalnego programu, ale nie wiem jakby do tego podszedł Twój nauczyciel. To co próbujesz ogarnąć to całkowanie numeryczne, o wiele prostsze od zwykłych całek. Na twój użytek wystarczy że będziesz wiedziała, że liczysz pole pod krzywą. Więcej dowiesz się tutaj: http://www.algorytm.org/procedury-numeryczne/calkowanie-numeryczne-metoda-simpsona.html i tutaj: http://pl.wikipedia.org/wiki/Ca%C5%82kowanie_numeryczne
piternet
  • Rejestracja:około 15 lat
  • Ostatnio:około 6 lat
  • Postów:162
0
Katrin17 napisał(a)

Witam!
No tak wiem, ze sporo błędów, ale jestem dopiero w 3 gimnazjum, więc o całkach nie mam znacznego pojecia, a bierzemy to jakby powiedziec "dla chętnych" , nie wiedziałam jak sie dokońca za to zabrac, wiem skorzystałam z kodu z 1 LO w Tarnowie, ale po to, ze mniej więcej wiedziec jak to zrobic w Free Pascalu , znaczy że dwie funkcje, a nie jedna.Dziękuję, za podpowiedź, żeby skorzystac z pętli.
P.S. Można sie mylic będąc w gimnazjum dopiero, nie jestem na studiach.....

I powiesz mi po co w gimnazjum kodzić program obliczający całki?

hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 dni
0

A nie można było sobie wziąć czegoś co się rozumie, lub choćby prostszego? To, że ja rozumiałem zastosowanie całek w gimnazjum nie znaczy, że ty też to ogarniesz. Ja na zakończenie gimnazjum na odczepnego zrobiłem program szyfrujący XOR'em, przy kluczu generowanym przy pomocy SHA512 podzielonym na 4 części i przechaszowanym raz jeszcze. Działało nawet nawet, ale sądzę, że pierwszy lepszy kryptolog by się tym zajął w trymiga.


Zobacz pozostałe 9 komentarzy
bogdans
@somekind, a stosujesz dodawanie w jakimś w konkretnym i sensownym celu? Dodawanie jest szczególnym przypadkiem całkowania.
somekind
No tak, a skalar jest szczególnym przypadkiem macierzy. Pytanie tylko, czemu dzieci, które od 1 klasy podstawówki uczą się rachunku całkowego i macierzowego mają potem problem ze zdaniem matury z matematyki? ;) A tak na serio - po prostu nie podoba mi się to, że dopiero po sześciu latach znajduję zastosowanie czegoś, czego się uczyłem (i zdążyłem zapomnieć), i raczej nie jestem w tym wyjątkiem. Myślę, że matematyki na studiach powinno się uczyć tak, aby nikt nie zastanawiał się "po co mi to?", lecz od razu na jakichś praktycznych przykładach. Albo w ogóle metodą top-down.
vpiotr
To prawda, matematyka jest o wiele ciekawsza jeśli ma jakieś praktyczne uzasadnienie. Dlatego nie lubiłem na studiach ciał, grup i tym podobnych abstrakcji algebry liniowej. Być może gdybym wiedział do czego służą byłoby inaczej... Pod tym względem ciekawsze są książki anglo-języczne (być może dlatego że jest ich więcej), ale też nie zawsze. Np. Eli Maor w "E: the story of a number" pokazuje z iloma rzeczami wiąże się liczba e i jak na jej podstawie obliczyć np. Pi: integral(0, +inf, e<sup>(-x</sup>2/2)) = sqrt(Pi/2)
somekind
No ja nie wiem czy liczenie Pi jest praktyczne. :P
hauleth
Polskie książki też bywają ciekawe jak np. "Przez rozrywkę do wiedzy", gdzie mamy podane zagadnienia oraz ich zastosowanie rozrywkowe.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.