
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
