Ludziska, mój dobry kumpel potrzebuję to na zaliczenie, ktoś pomoże? Poprawi? Bo nie wiem czy jakiegos bledu nie ma bo od ~30h cos ciagle grzebie w GieGie i Dedyku ![]()



Program zrobiony, mógłby ktoś sprawdzić czy wszystko jest tak jak powinno?
Option Explicit
Dim x, d, fx, fx1, rfx, sum, b As Double, i, licznik As Integer
'd-skok
'fx-wartość dokładna funkcji
'fx1-wartość przybliżona funkcji
'rfx-różnica między wartościa dokładną a przybliżoną
'sum-suma elementów wartości przybliżonej
'I-licznik pętli i elementów sumy
'licznik-numeruje następne wyniki
Sub funkcja()
Range("A1:G5000").Clear 'Czyszczenie obszaru roboczego
Cells(1, 1).Value = "l.p." 'uzupełnianie tytulów poszczególnych kolumn w arkuszu
Cells(1, 2).Value = "x"
Cells(1, 3).Value = "wartość dokładna funkcji"
Cells(1, 4).Value = "suma szeregu"
Cells(1, 5).Value = "błąd względny"
Cells(1, 6).Value = "liczba sumowanych elementów"
d = InputBox("Podaj liczbę przedziałów") 'prośba o podanie liczby prdzedziałów
b = InputBox("Podaj wartość błędu") 'prośba o podanie maksymalnej dopuszczalnej wartości błędu między dokładna wartością funkcji a tą obliczoną z sumy szeregu
licznik = 1 'licznik potrzebny, żeby program wiedział, w którym wierszu miał wpisywać kolejne wartości
For x = -1 + (2 / d) To 1 - (2 / d) Step 2 / (d + 2) 'uruchomienie pętli for dla przedziału podanego w poleceniu
fx = 1 / (1 + x ^ 2) 'wzór dokładny funkcji
i = 0 'licznik kolejnego wyrazu szeregu
sum = 0 'pierwsza suma szeregu
Do 'uruchomienie pętli do
If i = 0 Then
fx1 = 1
Else
fx1 = fx1 * -(x ^ 2) 'wzór na wyznaczenie kolejnego wyrazu szeregu
End If
sum = sum + fx1 'sumowanie szeregu
rfx = (fx - (sum)) 'obliczanie różnicy między wartościa dokładną a przybliżoną
If Abs(rfx) < b Then 'jeżeli różnica jest mniejsza niz maksymalna dopuszczalna, wypisz wartości i wyjdź z pętli
If fx = 0 Then
Cells(licznik + 1, 1).Value = licznik
Cells(licznik + 1, 2).Value = x
Cells(licznik + 1, 3).Value = fx
Cells(licznik + 1, 4).Value = sum
Cells(licznik + 1, 5).Value = 0
Cells(licznik + 1, 6).Value = i + 1
Else
Cells(licznik + 1, 1).Value = licznik
Cells(licznik + 1, 2).Value = x
Cells(licznik + 1, 3).Value = fx
Cells(licznik + 1, 4).Value = sum
Cells(licznik + 1, 5).Value = (Abs((sum - fx) / fx))
Cells(licznik + 1, 6).Value = i + 1
End If
Exit Do
End If 'koniec warunku if
i = i + 1
Loop 'następny krok pętli do
licznik = licznik + 1
Next 'następny krok pętli for
End Sub


Dodatki SourceMod













