Bolu Beyi tarafından yazıldı Kasım - 4 - 2011 0 Yorum

Bildiğiniz üzere tc kimlik numaralarımız 11 adet rakamdan oluşmaktadır. Devlet bizlere bu numaraları verirken rastgele vermiyor ve 2 adet kurala göre tc kimlik numaraları veriyor. Bunlardan birincisi, ilk 10 hanenin toplamını, 10’a göre mod aldığımızda 11. haneyi veriyor. Yani ilk 10 rakamı toplayıp 10’a böldüğünüzde kalan, bizim tc kimlik numaramızın 11. hanesini veriyor. Bununla beraber biraz daha karmaşık olan bir algoritma daha var. Birinci, üçüncü, beşinci, yedinci ve dokuzuncu hanelerin toplamının 7 katı ile, ikinci, dördüncü, altıncı ve sekizinci rakamların toplamının 9 katını topluyoruz. Ve yine bu çıkan toplam sonucun 10’a göre modunu alıyoruz. Modunu aldıktan sonra çıkan sonucun 10. haneye eşit olması gerekiyor. Başka sitelerde de incelerseniz, ikinci algoritma daha farklı şekilde açıklanıyor ama aynı sonuca varıyoruz. Ben kendi yazdığım tc kimlik no kontrol programının exe dosyasını hotfile’a yükledim.
Dilerseniz buradan indirebilirsiniz: Tc Kimlik No Kontrol Programı

C sharp ile yazmış olduğum kodları da inceleyebilirsiniz. Yanlarına yorum satırlarıyla beraber açıklamasını da yaptım. Projeye başlarken öncelikle bir adet textbox ve bir adet buton eklemeniz yeterli olacaktır. Kodlarımızı, butonun click event’ine yazıyoruz:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Bolubeyi.Net
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{

}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (Convert.ToString(textBox1.Text).Length == 11)//Girilen Tc kimlik numarasının 11 haneli olup olmadığını kontrol ediyoruz
{
string tc_kimlik_no = textBox1.Text;
string[] tc_kimlik_no_dizisi = new string[tc_kimlik_no.Length];
for (int i = 0; i < tc_kimlik_no.Length; i++)
tc_kimlik_no_dizisi[i] = tc_kimlik_no[i].ToString();

int ikinci_algoritma_toplami;

int ilk_on_top = int.Parse(tc_kimlik_no_dizisi[0]) + int.Parse(tc_kimlik_no_dizisi[1]) + int.Parse(tc_kimlik_no_dizisi[2]) + int.Parse(tc_kimlik_no_dizisi[3]) +  int.Parse(tc_kimlik_no_dizisi[4]) + int.Parse(tc_kimlik_no_dizisi[5]) + int.Parse(tc_kimlik_no_dizisi[6]) + int.Parse(tc_kimlik_no_dizisi[7]) + int.Parse(tc_kimlik_no_dizisi[8]) + int.Parse(tc_kimlik_no_dizisi[9]);

int tek_toplam = int.Parse(tc_kimlik_no_dizisi[0]) + int.Parse(tc_kimlik_no_dizisi[2]) + int.Parse(tc_kimlik_no_dizisi[4]) + int.Parse(tc_kimlik_no_dizisi[6]) + int.Parse(tc_kimlik_no_dizisi[8]);

int cift_toplam = int.Parse(tc_kimlik_no_dizisi[1]) + int.Parse(tc_kimlik_no_dizisi[3]) + int.Parse(tc_kimlik_no_dizisi[5]) + int.Parse(tc_kimlik_no_dizisi[7]);
ikinci_algoritma_toplami = ((tek_toplam) * 7 + (cift_toplam)*9);//ikinci algoritmamızdaki kuralı belirliyoruz.
//1,3,5,7 ve 9. hanelerin toplamının 7 katı ile 2,4,6 ve 8. hanelerin toplamının 9 katını topluyoruz
int mod = (ikinci_algoritma_toplami % 10);//Çıkan toplamın 10’a göre modunu yani birler basamağını buluyoruz.

if ((ilk_on_top%10) == int.Parse(tc_kimlik_no_dizisi[10]) && (mod == int.Parse(tc_kimlik_no_dizisi[9])))//if bloğu içerisinde her iki algoritmanın da doğruluğunu kontrol ediyoruz
{
this.BackColor = Color.Green;
MessageBox.Show(“TC KİMLİK NO GEÇERLİ”);
this.BackColor = SystemColors.Control;
textBox1.Clear();
}
else
{
this.BackColor = Color.DarkRed;
MessageBox.Show(“TC KİMLİK NO GEÇERSİZ!”,”Hata”);
this.BackColor = SystemColors.Control;
textBox1.Clear();
}
}
else
{
this.BackColor = Color.DarkRed;
MessageBox.Show(“EKSİK VEYA FAZLA RAKAM GİRDİNİZ, TEKRAR DENEYİNİZ…”, “Hata”);
this.BackColor = SystemColors.Control;
textBox1.Clear();
}
}
catch
{
MessageBox.Show(“TC KİMLİK NO HATALI, TEKRAR DENEYİNİZ…”,”Hata”);
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(“http://www.bolubeyi.net”);
}
}
}


Time limit is exhausted. Please reload CAPTCHA.