Bir müşteriden inatla gelen doğrulama isteği üzerine T.C. kimlik no'sunun rakamsal olarak "kesinlikle" doğru olmadan formun validate etmemesi için ufak bir araştıma sonucunda şunu buldum.
TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 11. haneyi verir.
Bilindiği üzere günden güne dijital bir çöplüğe dönüşen yaşantımızda dosyalarımızın sıkıştırılmış olması bile bazen yetersiz gelebiliyor. Terabyte kapasitelerine erişmiş hard disc'ler dijital alan ihtiyacımıza bir nebze de olsa ferahlık sağlamış olsa bile dinmek bilmeyen bu alan ihtiyacımız sürekli artış eğilimi göstererek sınırları zorlar hale geliyor. Üstelik bu kötü duruma dosyalarımızı sıkıştırdığımız halde giriyor olmamız da üzerine ayrıca düşünülesi bir durum.
Ama her şeye rağmen sıkıştırılmış bir dosya hiç sıkışmamış bir dosyadan daha hayırlı olsa gerek.
Bir çok dilde örneğine rastladığımız ve olmazsa olmaz bazı kolaylıklar bulunmaktadır. Bunlardan biri de dizi değişkenlerdir (arrays). Normal bir değişken ile dizi değişkeni karşılaştırmak için kutu örneğini kullanalım. Basit bir değişkeni sadece tek gözü bulunan bir kutuya benzetir isek dizi değişkeni bir çok gözü bölmesi bulunan bir kutu ile benzeştirmek doğru olur.
Bazende verilerimizi dizi değişkenlerin bölmelerine doldurmak yerine yan yana getirip aralarına bir ayırıcı işaret ekleriz. Bu şekilde saklanan veri kümelerini daha sonra belirleyici işaretten keserek değişken bölmelerine aktaran fonksiyonlar bulunmaktadır.
Bildiğiniz gibi gruplandırma denilince akla ilk sql sentaksındaki "group by" deyimi gelir. (malum bisküvinin reklamı gibi oldu:)) Bu deyim ile örneğin iki defa "adana" terimine rastlansa bile sadece 1 defa "adana" terimi bize sunuluyor. Ama veriler her zaman veritabanında olmayabiliyor. İşte o zaman sql haricinde bize bir çeşit gruplandırma fonksiyonu lazım olacaktır. Şimdi basit bir veri kümesi sunup üzerinde konuşalım.
|
|
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.