To tylko jedna z 6 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Niektóre treści procedur w VBA dla MS Excel
Rozwiązanie równania liniowego
+
= 0:
Sub rozwiazanie_rownania_liniowego()
‘ rozwiazuje rownanie liniowe postaci ax+b=0 - podaje x po wprowadzeniu wspolczynnikow a i b
‘ autor: Piotr Urbanski
‘ wersja RC-1A
Dim x As Double ‘deklaracja zmiennej x jako Double
Dim a As Double ‘deklaracja wspolczynnika a jako Double
Dim b As Double ‘deklaracja wspolczynnika b jako Double
MsgBox ("program rozwiazuje rownanie liniowe ax+b=0 po wprowadzeniu wspolczynnikow a i b")
a = InputBox("wprowadz wartosc wspolczynnika a") ‘przypisanie wartosci wspolczynnika a
b = InputBox("wprowadz wartosc wspolczynnika b") ‘przypisanie wartosci wspolczynnika b
If a = 0 Then
If b = 0 Then
MsgBox ("rownanie tozsamosciowe")
Else
MsgBox ("brak rozwiazan")
End If
Else
x = (-(b / a))
MsgBox ("jedno rozwiazanie: " & x)
End If
End Sub
Rozwiązanie równania kwadratowego
+
+ = 0:
Sub rozwiazanie_rownania_kwadratowego()
‘ rozwiazuje rownanie kwadratowe postaci ax^2+bx+c=0 - po wprowadzeniu wspolczynnikow a,b,c
‘ autor: Piotr Urbanski
‘ wersja RC-0
Dim xlin As Double ‘deklaracja zmiennej xlin jako Double
Dim x0 As Double ‘deklaracja zmiennej x0 jako Double
Dim x1 As Double ‘deklaracja zmiennej x1 jako Double
Dim x2 As Double ‘deklaracja zmiennej x2 jako Double
Dim a As Double ‘deklaracja wspolczynnika a jako Double
Dim b As Double ‘deklaracja wspolczynnika b jako Double
Dim c As Double ‘deklaracja wspolczynnika c jako Double
Dim delta As Double ‘deklaracja wyroznika trojmianu (delta) jako Double
MsgBox ("program rozwiazuje rownanie kwadratowe ax^2+bx+c=0 po wprowadzeniu wspolczynnikow
a,b,c")
a = InputBox("wprowadz wartosc wspolczynnika a") ‘przypisanie wartosci wspolczynnika a
b = InputBox("wprowadz wartosc wspolczynnika b") ‘przypisanie wartosci wspolczynnika b
c = InputBox("wprowadz wartosc wspolczynnika c") ‘przypisanie wartosci wspolczynnika c
If a = 0 Then
If b = 0 Then
If c = 0 Then
MsgBox ("rownanie tozsamosciowe")
Else
MsgBox ("brak rozwiazan")
End If
Else
xlin = (-(c / b))
MsgBox ("jedno rozwiazanie: " & xlin)
End If
Else
delta = ((b ^ 2) - (4 * a * c))
If delta = 0 Then
x0 = (-(b / (2 * a)))
MsgBox ("jedno rozwiazanie: " & x0)
Else
If delta 0 Then
x1 = (((-b) - (Sqr(delta))) / (2 * a))
x2 = (((-b) + (Sqr(delta))) / (2 * a))
MsgBox ("dwa rozwiazania: " & x1 & " oraz " & x2)
Else
MsgBox ("brak rozwiazan")
End If
End If
End If
End Sub
Szacowanie wartości silni liczby
ze wzoru Stirlinga ( ! ≈ √2
∙
):
Sub obliczanie_silni_ze_wzoru_Stirlinga()
‘ oblicza przyblizona wartosc silni liczby n (n20 wynosi 143 Then
MsgBox ("podano zbyt duza wartosc n - powyzej 143 - przepelnienie pamieci")
Else
ssw = ((Sqr(2 * pi * n)) * ((n ^ n) / (Exp(n))))
ss = Int(ssw)
‘ MsgBox ("przyblizona wartosc silni liczby n: " & ss)
‘ MsgBox ("czy chcesz uzyc dodatkowej procedury zwiekszajacej dokladnosc
oszacowania?" & vbYesNo)
alfan = (1 / ((12 * n) + (Rnd())))
ssdw = (ss * (Exp(alfan)))
ssd = Int(ssdw)
MsgBox ("przyblizona wartosc silni liczby n: " & ssd)
End If
End If
End If
End Sub
Obliczanie wartości silni liczny :
Sub obliczanie_wartosci_silni()
‘ oblicza iteracyjnie wartosc silni liczby n (n 12 Then
MsgBox ("podano zbyt duza wartosc n - powyzej 12 - przepelnienie pamieci")
Else
i = nx
While nx 1
nx = (nx - 1)
i = (i * nx)
Wend
silnia = i
MsgBox ("obliczona wartosc silni liczby n: " & silnia)
End If
End If
End If
End Sub
Obliczanie lub szacowanie wartości silni liczby :
Sub obliczanie_lub_szacowanie_wartosci_silni()
‘ oblicza iteracyjnie lub oszacowuje (ze wzoru Stirlinga) wartosc silni liczby n (n20 spada wynosi 12 Then
If n 143 Then
MsgBox ("podano zbyt duza wartosc n - powyzej 143 - przepelnienie pamieci")
Else
ssw = ((Sqr(2 * pi * n)) * ((n ^ n) / (Exp(n))))
ss = Int(ssw)
' MsgBox ("przyblizona wartosc silni liczby n: " & ss)
' MsgBox ("czy chcesz uzyc dodatkowej procedury zwiekszajacej dokladnosc
oszacowania?" & vbYesNo)
alfan = (1 / ((12 * n) + (Rnd())))
ssdw = (ss * (Exp(alfan)))
ssd = Int(ssdw)
MsgBox ("przyblizona wartosc silni liczby n: " & ssd)
End If
Else
i = nx
While nx 1
nx = (nx - 1)
i = (i * nx)
Wend
silnia = i
MsgBox ("obliczona wartosc silni liczby n: " & silnia)
End If
End If
End If
End Sub
Inne procedury:
Inne procedury:
(…)
…%")
MsgBox ("program dziala tylko dla liczb naturalnych mniejszych niz 144")
n = InputBox("wprowadz wartosc liczby n, ktorej silnia ma byc oszacowana")
If n < 0 Then
MsgBox ("wprowadzono liczbe ujemna - wartosc silni niezdefiniowana")
Else
If n = 0 Then
MsgBox ("wartosc silni: 1 (z definicji)")
Else
If n > 143 Then
MsgBox ("podano zbyt duza wartosc n - powyzej 143 - przepelnienie pamieci")
Else
ssw = ((Sqr…
... zobacz całą notatkę
Komentarze użytkowników (0)