Php ile Sayıları Yazıya Çevirme | Basit Mantık

Sınav haftasında, yardım almak için bana yollanan sıkça sorulardan bir tanesi de; "dışarıdan girilen iki basamaklı bir sayıyı ekrana yazı ile yazdırınız." Sorusu olmuştu. Bu ve bunun gibi gelen bütün sorular hakkında konu açmak ve anlatmak istedim. Bu konu hakkında daha fazla mail ve istek gelmeden paylaşarak, herkesin ulaşabileceği bir kaynak olmasını istedim.

Öncelikle belirtmek isterim ki burada soruya vereceğim cevap, sizlerin okulda öğrenmiş olduğunuz yöntemden farklı olabilir. Bundan dolayı göstermiş olduğum örneği, okuldaki öğretilen tarza göre düzenlemeniz sizin yararınıza olacaktır.

Sorunun Çözümündeki Genel Mantık

Soruyu gördüğümde ilk düşüncem, 2 basamaklı bir sayı olduğundan 10 a bölüm kuralı ile hazırlamak oldu. Bu en basit yapılabilecek durumdur. Bunun dışında başka ne yapılabilir dediğimde; Array yapısı ile çözümlenebileceğini fark ettim. Gelen basamakları Array'e aktardıktan sonra karşılığının yazılışını ekrana yazdıracağız.

İlk olarak gelen sayı değerini barındıran bir değişken oluşturuyoruz. Sonrasında, değerleri diziye aktarıp kaç basamaklı olduğunu buluyoruz.

<?php
$GelenSayi = "69";
## Gelen basamak değerlerini dizilere aktarıyoruz.
$Basamakla = str_split($GelenSayi); // [0] = 6, [1] = 9
## Kaç basamaklı olduğunu buluyoruz.
$BasamakSayisi = count($Basamakla); // 2
?>

Gelen değerdeki basamakların hangi rakamları içerdiğini artık biliyoruz. Şimdi gelen Array değerindeki verinin yazılış işini halletmemiz gerekiyor. Bunun için birler ve onlardan oluşan Array dizisi oluşturuyoruz. Basamakla değerinden gelecek olan karşılığa göre, oluşturacağımız Array den yazılışları çekeceğiz.

<?php
$birler = array("","bir ","iki ","üç ","dört ","beş ","altı ","yedi ","sekiz ","dokuz");
$onlar = array("","on ","yirmi ","otuz ","kırk ","elli ","altmış ","yetmiş ","seksen ","doksan ");
?>

Basamak değerlerine göre işlem yapacağımız Array dizisini de oluşturmuş olduk. Şimdi $Basamakla değerini kullanarak basamaklamalardan gelen değerleri yazdırmadan önce bir koşul ifadesi oluşturuyoruz. Bu koşulda gelen değerin kaç basamaklı olduğunu buluyoruz.

ÖNEMLİ PÜF NOKTASI: Yukarıdaki örnekte yer alan Array değerlerinin içindeki ilk verinin boş ("") olduğu umarım dikkatinize gitmiştir. Bu ilk verinin boş olmasının nedeni, Array dizisinin sıfır (0) dan başlamasından dolayıdır. Ayriyeten sıfır, okunmayan ve yazılmayan bir rakam olduğundan bu işleme tabi tutuyoruz.

<?php
if($BasamakSayisi == "2"){
// $Basamakla["0"] = 6, $Basamakla["1"] = 9 'dur.
echo $onlar[ $Basamakla["0"] ]."".$birler[ $Basamakla["1"] ];
}else if($BasamakSayisi == "1"){
echo $birler[ $Basamakla["0"] ];
}
?>

Böylelikle, dışarıdan gelen iki basamaklı bir sayıyı ekrana yazı ile yazdırmış oluyoruz. Makalenin başında da belirttiğim gibi, birçok şekilde bu işlem yapılmaktadır. 10 ile bölünme kuralı uygulanarak yapmakta mümkün. Değişmeyecek tek işlem, rakamların/sayıların yazdırılma biçimidir.

Bu örnek doğrultusunda, aynı işlemler gerçekleştirilerek yüzler basamağını da ekleyebilirsiniz. Bunun için $yüzler arrayi oluşturup, if ifadesinde $BasamakSayisi == "3" ifadesini eklemek yeterli olacaktır.
- 13.02.2015 / 13:07:11 2

Sosyal Medya Paylaşım Alanı

Bunlarda İlginizi Çekebilir

9:39 Php Dersleri

Php ile Mysql Bağlantısı Yapmak - 1

Kategori: Php Dersleri | 03.05.2013
7:27 Php Dersleri

PDO ile MySQL Veri Tabanına Kayıt Ekleme | insert

Kategori: Php Dersleri | 05.06.2014
11:36 Javascript
14:40 Php Dersleri

PHP ile Dinamik Sitemap (Site Haritası) Yapımı

Kategori: Php Dersleri | 06.05.2013
cURL Dersleri

Php ile Yerel Haber Botu Yapmak | Haberler.com

Kategori: cURL Dersleri | 26.09.2013

Yorum Listesi (3) # YorumYap

  • Dervish (06.08.2015 - 15:06:19)
    Usta ben bunu daha cox sayi icin nasil yapa bilirim, dongu ile bilyonlarca sayiya kadar kalkmak icin
  • onur (16.03.2017 - 06:51:43)
    teşekkürler
  • creative (16.04.2017 - 14:17:31)
    çok teşekkürler, işime yaradı.

Hadi Sende Yorum Yap!

Yorum Gönderilmiştir. Onaylandıktan Sonra Mesajınız Yayınlanacaktır.