matematykaszkolna.pl
całkowanie numeryczne matroz: Witam! Piszę sobie program w VBA do całkowania numerycznego metodą trapezów. Potrafię bez problemu obliczyć pola każdego z trapezów, lecz nie potrafię tego wewnętrznie zsumować. Przytaczam kod, który jest wadliwy (końcówka): Function F(x) F = x * x End Function Sub całka() Dim x As Single 'liczba podziałów Dim h As Single 'wysokość trapezu Dim a As Single 'dolna granica całkowania Dim b As Single 'górna granica całkowania Dim pole As Single 'wynik x = InputBox("liczba podziałów") a = InputBox("dolna granica całkowania") b = InputBox("górna granica całkowania") h = (b − a) / x ReDim pola(0 To x − 1) As Single For i = 0 To x − 1 pola(i) = h * (0.5 * F(a + i * h) + 0.5 * F(a + (i + 1) * h)) Next i pole = 0 For i = 0 To x − 1 pole = 0 + pola(i) Next i Cells(1, 1) = pole End Sub Ma ktoś pomysł jak to ogarnąć? Ewentualnie abstrachując od tego, może powiecie mi jak zrobić program który zsumuje n kolejnych liczb naturalnych? wtedy sobie już poradzę. Pozdrawiam!
17 sie 15:07
Kacper: Ja niestety znam tylko C++ poszukaj w internecie jest tego pełno emotka
17 sie 15:30
MQ: Może podaj co ci nie działa? Poza tym nie wiem, czy x może być indeksem tablicy, skoro jest typu single.
17 sie 16:29
matroz: w internecie oczywiście szukałem i nie znalazłem nie działa fragment: "pole = 0 For i = 0 To x − 1 pole = 0 + pola(i) Next i Cells(1, 1) = pole" x może być indeksem tablicy bo to jest tablica dynamiczna (Redim)
17 sie 17:58
MQ: Aaa! Teraz widzę. Powinno być: pole=pole+pola(i) zamiast pole=0+pola(i)
18 sie 13:12
matroz: zdążyłem ogarnąć, ale wielkie dzięki za pomoc!
18 sie 15:52