Function Olcia(x As double, dokladnosc As Long) As double
'Trzeba sie przyjrzec, jak wyglada ten wzor.
'Pierwszy składnik sumy (1+ 1/3*x trzbea obliczyc bo w zaden sposob nie ma zaleznosci z pozostalymi
'Poczawszy od drugiego skladnika sumy zmienia sie:
'- znak skladnika co drugi jest ujemny, co drugi dodatni.
'- potega x-a rosnie o 1.
'- licznik kazdego skladnika jest iloczynem liczb o roznicy 3, iloczyn ten zaczyna sie od 2.
' w kazdym skladniku tego licznika jest o jeden wiecej iloczyn niz w poprzednim.
'- mianownik sklada sie z iloczynu potegi trojki, potega rosnie o 1
' oraz silni, silnia tez rosnie o jeden.
' Czyli wystarczy osobno zapamietac kazdy z tych elementow, poczawszy od drugiego.
' wszystko zapakowac w petle i za kazdym przejsciem odpowiednio zwiekszac kazdy element.
' a obliczony skladnik dodawac do wyniku.
Dim wynik As double 'zmienna bedzie przechowywac wynik po obliczeniach funkcja go wypluje
'Zaczne od obliczenia pierwszego skladnika sumy.
wynik = 1+1/3*x
'teraz trzeba przydzielic pamiec na poszczegolne elementy, oktorych napisalem wczesniej
Dim znak As integer 'znak skladnika, bedzie sie zmieniac 0 na 1, z 1 na 0
znak = 1 'przyjalem sobie, ze jeden to minus, 0 to plus. teraz trzeba bedzie liczyc 2 skladnik, a jest on ujemny.
Dim licznik As Double 'bedzie trzymac aktualnie wyliczona wartosc licznika(w sensie ulamka)
Dim LicznikNext As double 'musze wiedziec, przez co mam pomnożyc licznik, zeby wyliczyc kolejne.
licznik = 2 'dalej bedzie widac dlaczego takie wartosci
licznikNext = 2
'teraz stworze zmienne dla mianownika.
'zmienna na te potegi trojki z mianownika.
Dim potegitrojki As double
potegitrojki = 9 'bedzie mnozone razy trzy dla kazdego skladnika. pierwszy skladnik ma 3^2 = 9
Dim silnia As double 'ta silnia w mianowniku kazdego skladnika
silnia = 2 '2 bo 2! = 2
Dim silniaNext As double 'do obliczania silni w kolejnych skladnikach
silniaNext = 3 ' kolejny skladniki to 3! czyli 2!*3
Dim potega_x As double 'bedzie trzymac kolejne potegi x-a
potega_x = x^2
'Mam wszystkie potrzebne zmienne do liczenia
'zmienna dokladnosc odpowiada za to ile tych skladnikow mamy zsumowac. im wiecej dodamy tym dokladniejszy bedzie wynik.
'stworze petle. kazde przejscie tej petli bedzie odpowiadac za sume jednego skladnika
Dim i As Long
For i=1 To dokladnosc
'do wynik dodaje/odejmuje kolejne skladniki
If (znak == 1) then
znak = 0
wynik = wynik - (licznik / (potegitrojki * silnia) ) * potega_x
else
znak = 1
wynik = wynik + (licznik / (potegitrojki * silnia) ) * potega_x
End If
'teraz trzeba tylko ustawic wszystkie zmienne tak, aby wskazywaly na nastepny skladnik
licznikNext = licznikNext+3
licznik = licznik * licznikNext
potegitrojki = potegitrojki * 3
silnia = silnia * silniaNext
silniaNext = silniaNext + 1
Next i
'jak posumuje te skladniki to w zasadzie koniec. ta funkcja ma je zwrocic.
Olcia = wynik
End Function
Public Class Application
Public Shared Sub Main()
System.Console.WriteLine("Hello world!")
End Sub
End Class