Excel Macro İle Girdiğimiz Sayıdan Küçük En Büyük Asal Sayıyı Bulma
Merhabalar,
bu yazımda size Excel VBA ile girdiğimiz input değerinden küçük en büyük asal sayıyı bulan macroyu açıklayacağım.
Sub asal()
Dim say As Integer
git:
'input ile klavyeden sayı alıyoruz
say = InputBox("sayı giriniz")
'girdiğimiz değerin sayı olup olmadığının kontrolünü yapıyoruz
If (IsNumeric(say) = True) Then
'girdiğimiz değerden küçük dediği için öncelikle 1 azaltırız
say = say - 1
' For-Next döngüsü ile sayıyı azalta azalta ilerleriz
For i = say To 1 Step -1
Dim sonuc As Boolean
'sayımızı asal sayı kontrolü yapan functionımıza gönderiyoruz ve gelen boolean sonuca göre işlem yapıyoruz
sonuc = asalmi(say)
If (sonuc = True) Then
'eğer sayı asalsa msgBox üzerinde sonucu gösteriyoruz ve for-next döngüsünden çıkıyoruz
MsgBox "girdiğiniz değerden en küçük asal sayı=" & say
Exit For
End If
'sayı asal değilse bir azaltılıp tekrar döngüye girer
say = say - 1
Next i
Else:
'inputbox a girdiğimiz değer asal değilse tekrar giriş yapması için goto döngüsünü kullanıyoruz
MsgBox "girdiğiniz değer sayı değildir lütfen kontol ediniz", vbInformation
GoTo git
End If
End Sub
' asal sayı kontrolü yapan Function
Function asalmi(sayi As Integer) As Boolean
Dim sayac As Integer
sayac = 0
For k = 1 To sayi
If (sayi Mod k = 0) Then
sayac = sayac + 1
End If
Next k
If (sayac <= 2) Then
asalmi = True
Else
'Eğer sayaç 2den büyükse kendisi ve 1 dışındaki sayılara bölünebilmiş demektir yani asal değildir.
asalmi = False
End If
End Function
bu yazımda size Excel VBA ile girdiğimiz input değerinden küçük en büyük asal sayıyı bulan macroyu açıklayacağım.
Sub asal()
Dim say As Integer
git:
'input ile klavyeden sayı alıyoruz
say = InputBox("sayı giriniz")
'girdiğimiz değerin sayı olup olmadığının kontrolünü yapıyoruz
If (IsNumeric(say) = True) Then
'girdiğimiz değerden küçük dediği için öncelikle 1 azaltırız
say = say - 1
' For-Next döngüsü ile sayıyı azalta azalta ilerleriz
For i = say To 1 Step -1
Dim sonuc As Boolean
'sayımızı asal sayı kontrolü yapan functionımıza gönderiyoruz ve gelen boolean sonuca göre işlem yapıyoruz
sonuc = asalmi(say)
If (sonuc = True) Then
'eğer sayı asalsa msgBox üzerinde sonucu gösteriyoruz ve for-next döngüsünden çıkıyoruz
MsgBox "girdiğiniz değerden en küçük asal sayı=" & say
Exit For
End If
'sayı asal değilse bir azaltılıp tekrar döngüye girer
say = say - 1
Next i
Else:
'inputbox a girdiğimiz değer asal değilse tekrar giriş yapması için goto döngüsünü kullanıyoruz
MsgBox "girdiğiniz değer sayı değildir lütfen kontol ediniz", vbInformation
GoTo git
End If
End Sub
' asal sayı kontrolü yapan Function
Function asalmi(sayi As Integer) As Boolean
Dim sayac As Integer
sayac = 0
For k = 1 To sayi
If (sayi Mod k = 0) Then
sayac = sayac + 1
End If
Next k
If (sayac <= 2) Then
asalmi = True
Else
'Eğer sayaç 2den büyükse kendisi ve 1 dışındaki sayılara bölünebilmiş demektir yani asal değildir.
asalmi = False
End If
End Function
Yorumlar
Yorum Gönder