Büyük Sayılarda Faktoriyel

Katılım
24 Nisan 2012
Mesajlar
8
Excel Vers. ve Dili
2012 visual basic
Kod:
Private Sub CommandButton1_Click()
'after 12 is overflow
Dim number As Long
Dim fact As Long

If number = 0 Then
    TextBox2.Text = 1
End If
    fact = 1
        For number = 1 To Val(TextBox1.Text)
            fact = fact * number
        Next number
            TextBox2.Text = fact
End Sub

Private Sub UserForm_Click()

End Sub
Arkadaşlar merhaba girilen N değerinin faktöriyelini hesaplayan bir program yazdım,ancak 1500 den büyük değerler için hesap yapmak istiyorum.Bunun için nasıl bir çözüm yolu olabilir?Teşekkürler.
 
Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
Kod:
Private Sub CommandButton1_Click()
'after 12 is overflow
Dim number As Long
Dim fact As Long

If number = 0 Then
    TextBox2.Text = 1
End If
    fact = 1
        For number = 1 To Val(TextBox1.Text)
            fact = fact * number
        Next number
            TextBox2.Text = fact
End Sub

Private Sub UserForm_Click()

End Sub
Arkadaşlar merhaba girilen N değerinin faktöriyelini hesaplayan bir program yazdım,ancak 1500 den büyük değerler için hesap yapmak istiyorum.Bunun için nasıl bir çözüm yolu olabilir?Teşekkürler.

Dim number As Long
Dim fact As Long

yukarıdaki yazıları kaldırıp denermisiniz.
 
Katılım
24 Nisan 2012
Mesajlar
8
Excel Vers. ve Dili
2012 visual basic
tanımladığım number ve fact objectlerini mi kaldırmalıyım?
 
Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
tanımladığım number ve fact objectlerini mi kaldırmalıyım?
evet lond 2 milyara rakam için geçerli kaldırısanız bilgisayar tanımı kendi yapıcaktır.
veya longlong kullanmanız gerekir ama bu tanımlamara hala tam kapsamlı bilmiyorum..
Long
(long integer) 4 bytes -2,147,483,648 to 2,147,483,647

LongLong
(LongLong integer) 8 bytes -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (Valid on 64-bit platforms only.)
 
Katılım
24 Nisan 2012
Mesajlar
8
Excel Vers. ve Dili
2012 visual basic
Bu tanımları kaldırdığımda object required hatası alıyorum,yani kendisi tanım yapmıyor ..
 
Katılım
24 Nisan 2012
Mesajlar
8
Excel Vers. ve Dili
2012 visual basic
Bir hata yapmışım şu anda kendi tanımlıyor,ancak 1500 değerini girdiğimde hala sonuç alamıyorum.
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Nasıl olur bilmiyorum ama...

Bu tür durumlarda Logaritmayı devreye sokmak gerekiyor zannedersem.

.
 
Katılım
24 Nisan 2012
Mesajlar
8
Excel Vers. ve Dili
2012 visual basic
Sanırım sonucu txt dosyasına çıkartmak gerekiyor,ya da onun gibi bir şey.Ama yapamadım :/
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Sayın dirtysword,

Özel mesajınzdaki sorunuz üzerine aşağıdaki açıklama yapılmıştır.

Dosyadaki kodlar KTF-Kullanıcı Tanımlı Fonsiyona aittir.

Fonksiyon, her hangi bir hücreye:

=LargeFactorial(Faktoriyeli alınacak sayı) örnek Dosyada: =LargeFactorial(200)

Veya değeri hücreden alacaksa;

=LargeFactorial(Hücre adresi) Örnek dosyada: =LargeFactorial(C18)

yazılarak sonuç formülün olduğu hücrede elde edilir.

.
 
Üst