CLICK HERE FOR THOUSANDS OF FREE BLOGGER TEMPLATES »

11 Şubat 2008 Pazartesi

sayıyı yazıya çeviren program visual basicc

Sayın Bülent Yenilmez sayıyı yazıya çeviren bir fonksiyon yollamış, kendisine teşekkür ediyorum. Ayrıca sorununada şöyle bir ipucu vereyim ingilizcede 11 ve 19 arası sayıların sesletimleri türkçede olduğu gibi 1 'on' ve 'bir' kelimelerinin birleşmeleri ile meydana gelmez. yani 11 için 'eleven' kelimesi ingilizce 10 'ten' ve 1 'one' kelimelerinden oluşmaz. Bu durumda bu sayılar için fonksiyon içinde özel bir bölüm gerekiyor.
Tüm kod aşağıdadır


'Bu fonksiyon cok güzel bir şekilde çalışıyor. Dileyen arkadaşlar kullanabilir.
'Bir isteğim olacak. Bu fonksiyondan yola çıkarak aynı şekilde ingilizcesini yazdırmak istediğimde
'11 den 19 a kadar olan sayılarda "eleven" yerine "tenone" çıkıyor. Bu sorunu çözebilen olursa
'lütfen bana haber versin... Şimdiden Teşekkürler.

Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)
Private Sub Form_Load()
Text1.Text = Yaziyla$(15000)
End Sub

Function Yaziyla$(sayi)

b$(0) = ""
b$(1) = "Bir"
b$(2) = "İki"
b$(3) = "Üç"
b$(4) = "Dört"
b$(5) = "Beş"
b$(6) = "Altı"
b$(7) = "Yedi"
b$(8) = "Sekiz"
b$(9) = "Dokuz"

y$(0) = ""
y$(1) = "On"
y$(2) = "Yirmi"
y$(3) = "Otuz"
y$(4) = "Kırk"
y$(5) = "Elli"
y$(6) = "Altmış"
y$(7) = "Yetmiş"
y$(8) = "Seksen"
y$(9) = "Doksan"

m$(0) = "Trilyon"
m$(1) = "Milyar"
m$(2) = "Milyon"
m$(3) = "Bin"
m$(4) = ""

a$ = Str(sayi)
If Left$(a$, 1) = " " Then pozitif = 1 Else pozitif = 0
a$ = Right$(a$, Len(a$) - 1)
For x = 1 To Len(a$)
If (Asc(Mid$(a$, x, 1)) > Asc("9")) Or (Asc(Mid$(a$, x, 1)) < Asc("0")) Then GoTo hata
Next x
If Len(a$) > 15 Then GoTo hata
a$ = String(15 - Len(a$), "0") + a$
For x = 1 To 15
v(x) = Val(Mid$(a$, x, 1))
Next x

s$ = ""
For x = 0 To 4
c(1) = v((x * 3) + 1)
c(2) = v((x * 3) + 2)
c(3) = v((x * 3) + 3)
If c(1) = 0 Then
e$ = ""
ElseIf c(1) = 1 Then
e$ = "Yüz"
Else
e$ = b$(c(1)) + "Yüz"
End If
e$ = e$ + y$(c(2)) + b$(c(3))
If e$ <> "" Then e$ = e$ + m$(x)
If (x = 3) And (e$ = "BirBin") Then e$ = "Bin"
s$ = s$ + e$
Next x

If s$ = "" Then s$ = "Sıfır"
If pozitif = 0 Then s$ = "Eksi" + s$
Yaziyla$ = s$
GoTo tamam
hata: Yaziyla$ = "Hata"
tamam:
End Function

0 yorum: