Taner Şenyurt

Kişisel gelişim sitesi…

Ruby’de Sayiyi Yaziya Ceviren Program

March31

Ruby ile yapilmis sadece algoritma gelistirmeye yonelik bir calisma .Konsol programi olmakla beraber eger istenirse glade ile arayuz yapilip ve ya bir kac degisiklik yapilarak eklenti haline getirilebilir.Ornegin doviz birolari icin verilen paranin miktarini gonderip turkce okunus karsiligini geri gonderen bir fonksiyona donusturulebilir.Herneyse olayin genel mantigini anlatmak gerekirse eger turkce sayilarin okunusuna dikkat ederseniz,ilk uc haneden sonra bundan sonra gelen hanelerin sonuna basamak adi getirilerek devam edilir.Bir kac ornek ;
321 = Uc yuz + yirmi + bir
234754 = iki yuz +otuz +dort - bin – yedi yuz+ elli +dort // goruldgu gibi uc hane seklinde tekrarlaniyor sadece her uc hanede bir basamak adi ekleniyor.
Ozel durumlar :

  • Sifir sayi icinde gecerse okunmaz tek oldugunda okunur.
  • Normalde iki yuz,uc yuz,dort yuz gibi okundugu halde bir yuz okunmaz
  • Ustteki duruma benzer olarak bir bin okunmaz buna ragmen bir milyon ve sonrari okunur
  • Bu durumlar goz onunde bulundurularak bir kod yazmak istersek kisaca yazacagimiz kod soyle olmalidir.Sayimiz kac tane uclukten olusuyor.Bu uclukleri sirasiyla yazdirdiktan sonra (sayi degerini basamak degerini falan bulduktan sonra).Push yapip stack’a atiyoruz her atma olayindan once kacinci basamakta oldugumuzuda konrol edip sonuna ekliyoruz ki pop yaptigimizda sonucumuz sirali gelsin.Peki ama sayimiz ucun kati degilse bu olusacak ucluler patlamayacakmi bunuda en sondaki kalan kisminda tekrar baska uclu varmiscasina ama kac haneli olduguna bakarak ve ozel durumlarin ustesinden geliyoruz.
    Read the rest of this entry »

    posted under Linux, OS, Programming, Ruby, Uncategorized | Comments Off