Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Inny

Program - Makro - VB

inny

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 26.01.2015 03:07

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 :P

qfg5nY.jpg
9DjDlM.jpg
IcK9hB.jpg

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

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: inny

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych