e^x Hesaplama Makrosu

e^x Hesaplama Makrosu

SORU

Herkese merhabalar, Forumu aramama rağmen bulamadığım bir durumda yardıma ihtiyacım var. Makro ödevim olarak exponential fonksiyon ile girilen x değeri için e üzeri x hesaplaması yaptırmam gerekiyor ve bunun için ödevde geçtiği üzere özellikle “For .. Next” döngüsü kullanmam gerekiyor. Formül: e^x = 1 + x + x^2/2! + x^3/3! +…..+ x^n/n!

YANIT

“For .. Next” döngüsününü burada kullanmak güçtür. Çünkü işin içine faktöryal girdiği için Excel’in sınırları (176!) aşıldığından sonuca ulaşmak mümkün değildir. e sayısınıa yaklaşmak için For n = 1 To 100 ya da For n = 1 To 1000 yeterli değil.

Bu nedenle,
Do
…..
Loop While Abs(e – sone) > 0.0000001 gibi oldukça küçük bir farka döngüyü oluşturmak gerekir.

Yazdığım makro:

Sub esayisi()

Dim n As Double
Dim x As Double
Dim e As Double
Dim sone As Double

On Error GoTo son

x = CInt(InputBox(“x için bir sayı giriniz.”, “İ.Serdar”))

e = 1
n = 1
Do
sone = e
e = e + x ^ n / fakt(n)
n = n + 1
Loop While Abs(e – sone) > 0.0000001

MsgBox “e^” & x & “=” & e

[D4] = “e^” & x & “=” & e
[C7] = “e^” & x & “=”
[D7] = e

son:

End Sub
Public Function fakt(ByRef Deg As Double) As Double

If Deg = 1 Then
fakt = 1
Exit Function
Else
fakt = Deg * fakt(Deg – 1)
End If

End Function

Dosya:

esayısı

 

You may also like...

1 Response

  1. admin diyor ki:

    Gelen Yanıt:
    Çok teşekkür ederim İdris Bey şimdi anladım. Çünkü kendi yazdığım makroda düzeltmeler yaptım ancak yine de x i 1 olarak girince 2.15 gibi bir sonuç çıkıyor, bunun sebebi de sizin yukarıda bahsettiğiniz mevzuymuş. Gerçi ödevde n=100 e kadar loop istenmişti demek ki 100! e kadar hesaplattığımızda e sayısına ancak 2.15 şeklinde yaklaşabiliyoruz.
    Yardımınız için çok teşekkür ederim özellikle de son açıklamanız için. Cidden bütün taşları yerine oturttu.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>