Girilen rakamı yazıyla YTL ye dönüştürün..

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
spectacuLar
Kilobyte2
Kilobyte2
Mesajlar: 333
Kayıt: 21 Eyl 2006, 18:04
cinsiyet: Erkek
Teşekkür edildi: 3 kez

Girilen rakamı yazıyla YTL ye dönüştürün..

Mesaj gönderen spectacuLar »

Kod: Tümünü seç

Function Yaziyla(Sayi#)
Dim virgul2 As String
Dim cevap As String
Dim yazi As String
Dim Say As String
Dim uclu As String
Dim virgul As Integer
Dim o As Integer
Dim b As Integer
Dim x As Integer
Dim i As Integer
Dim y As Integer
Dim YTL As String
Dim YKR As String

If Sayi# = 0 Then Yaziyla = "Syfyr": Exit Function

ReDim birler$(10), onlar$(10), basamak$(5)

birler$(0) = "": birler$(1) = "Bir"
birler$(2) = "Yki": birler$(3) = "Üç"
birler$(4) = "Dört": birler$(5) = "Be?"
birler$(6) = "Alty": birler$(7) = "Yedi"
birler$(8) = "Sekiz": birler$(9) = "Dokuz"

onlar$(0) = "": onlar$(1) = "On"
onlar$(2) = "Yirmi": onlar$(3) = "Otuz"
onlar$(4) = "Kyrk": onlar$(5) = "Elli"
onlar$(6) = "Altmy?": onlar$(7) = "Yetmi?"
onlar$(8) = "Seksen": onlar$(9) = "Doksan"

basamak$(1) = "": basamak$(2) = "Bin "
basamak$(3) = "Milyon ": basamak$(4) = "Milyar "
basamak$(5) = "Trilyon "

virgul2 = ""
cevap = ""

'A?A?IDAKY 2 SATIRDAKY ÇYFT TIRNAK YÇERY?YNY DE?Y?TYREREK
'VEYA ÇYFT TIRNA?IN ARASINI SYLEREK "" VEYA "," GYBY
'YSTE?YNYZ SONUCUN ÇIKMASINI SA?LAYABYLYRSYNYZ.
YTL = ".-YTL., "
YKR = ".-YKR."

Say = Str$(Sayi#)
virgul = InStr(1, Say, ".")
If virgul Then

'A?a?adaki satyr 26,4 Yirmialty YTL, KIRK YKR olarak okutur.
' (Yirmialty YTL, DÖRT YKR olarak de?il)
'Yptal etmek isterseniz ba?yna bir ' tek tyrnak i?areti koyunuz
If Len(Mid(Say, virgul + 1)) = 1 Then Say = Say + "0"

Say = Right$(Say, Len(Say) - virgul)
GoSub cevir

If cevap = "" Then YKR = ""
virgul2 = cevap + YKR
cevap = ""

Say = Str$(Sayi#)
Say = Left$(Say, virgul - 1)
End If
GoSub cevir
If cevap = "" Then YTL = ""
Yaziyla = cevap + YTL + virgul2
Exit Function

cevir:
x = Len(Say)
Say = String$(3 - (x - Int(x / 3) * 3), 48) + Say
x = Len(Say) / 3
For i = 1 To x
uclu = Mid$(Say, Len(Say) - i * 3 + 1, 3)
y = Val(Mid$(uclu, 1, 1))
o = Val(Mid$(uclu, 2, 1))
b = Val(Mid$(uclu, 3, 1))

yazi = ""
If y <> 0 Then
If y > 1 Then yazi = birler$(y)
yazi = yazi + "Yüz "
End If

yazi = yazi + onlar$(o) + birler$(b)

If yazi <> "" Then
If LCase(yazi) = "bir" And i = 2 Then yazi = ""
cevap = yazi + basamak$(i) + cevap
End If
Next i
If Sayi# < 0 Then cevap = "-Eksi-" + cevap
Return
End Function
Cevapla

“Programlama ve Script dilleri” sayfasına dön