• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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.
 
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.
 
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.)
 
Bu tanımları kaldırdığımda object required hatası alıyorum,yani kendisi tanım yapmıyor ..
 
Bir hata yapmışım şu anda kendi tanımlıyor,ancak 1500 değerini girdiğimde hala sonuç alamıyorum.
 
.

Nasıl olur bilmiyorum ama...

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

.
 
Sanırım sonucu txt dosyasına çıkartmak gerekiyor,ya da onun gibi bir şey.Ama yapamadım :/
 
.

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.

.
 
Geri
Üst