Wpis z mikrobloga

#programowanie #cplusplus

Ogólnie mam prace semestralna z programowania o obliczaniu całki oznaczonej metoda trapezów i naklikałem coś takiego:

#include

#include

#include

using namespace std;

double f(double x)

{

return(x*x+2*x);

}

int main()

{

double a, b, s, dx, N;

int i;

cout << "Obliczanie calki oznaczonej dla funkcji:" << endl;

cout << "f(x)= x*x+2*x" << endl;

cout << "za pomoca metody trapezow"<< endl;

cout << endl;

cout << "Podaj wartosc a" << endl;

cin >> a;

cout << "Podaj wartosc b" << endl;

cin >> b;

if (!(a cout << "Taki przedzial nie istnieje";

else

cout << "Podaj liczbe trapezow (im wiecej tym dokladniejszy wynik)" < cin >> N;

cout << endl;

s=0;

dx = (b-a)/N;

for (i=1;i s+= f(a+i*dx);

s= (s+(f(a)+f(b))/2)*dx;

cout << "Wartosc calki wynosi: "<< setprecision(5)< return 0;

}


Przy pisaniu tego programu posiłkowałem się z tych stron:
http://www.algorytm.edu.pl/algorytmy-maturalne/metoda-trapezow.html
https://eduinf.waw.pl/inf/alg/004_int/0003.php

I większość ogarniam ale nie rozumiem tego co się stało w tej części:

for (i=1;i s+= f(a+i*dx);

s= (s+(f(a)+f(b))/2)*dx;


for (i=1; i
  • 28
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@japecznikow: napisz to jak człowiek, a nie używając samych jednoliterowych zmiennych i trzyając cały kod w funkcji main to może pomyślę, nad pomocą, póki co to w obecnej pracy nie płacą mi aż tyle, żebym takie rzeczy czytał.
  • Odpowiedz
@japecznikow: co do pytania "dlaczego s jest po obu stronach" to taki klasyk, gdy matematyk siada do programowania.
Poszukaj sobie definicji "przypisania" w programowaniu. Bez tego ciężko Ci bedzie cokolwiek pojąć.
  • Odpowiedz
@japecznikow: to jest w ogóle źle, tam po else powinny być klamerki.

s+= f(a+idx); - tego troche już nie ogarniam, wiem że to można inaczej zapisać s= s+f(a+idx), a samo f(a+idx) oblicza xx+2x gdzie x = a+idx, ale dlaczego s jest po obu stronach równania i jaki to ma sens to idk xd


@japecznikow: to nie jest równanie, tylko operacja która
  • Odpowiedz