folder Tahribat.com Forumları
linefolder C - C++
linefolder C# Da Roma Rakamlarına Dönüşüm Algoritması



C# Da Roma Rakamlarına Dönüşüm Algoritması

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hurricane
    hurricane's avatar
    Kayıt Tarihi: 20/Ocak/2004
    Erkek
    arkadaşlar simdi iki tane textbox var birine normal rakamları yazıyoruz commanda buttona basınca 2.textbox a girilen sayının roma rakamları karşılıklarını yazacak şekilde bir algoritma...bir kaç şey düşündüm mesela girilen rakamı gruplara ayırarak kırarak...mesela 2517 girildi içinden 2 tane 1000 i çıkarıp bunu ana sayıdan çıkarmak...ama bu çok uzun sürecek bir algoritma sizin aklınıza gelen daha basit bir algoritma varmı?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    xtlan
    xtlan's avatar
    Kayıt Tarihi: 02/Ocak/2003
    Dişi
    Sanırım biraz geç oldu ama işini görürse yazayım hurricane
    öncelikle forma iki tane textbox ve iki tane command buton ekle.diyelimki birinci textboxa yazılan sayıyı romenrakamına çevirip 2. textboxa yazdıracaksın vede tam tersi olarak ikinci textboxa yazılan bir romenrakamını normal sayıya cevirip 1.textboxa yazdırcaksın
    romene çevirmek için tıklıyacağın buttonun click olayına


    int tam,kln,kln1,kln2,kln3,kln4;
    int t=Convert.ToInt32(textBox2.Text);
    string[] birler;
    string[] onlar;
    string[] yuzler;
    string[] binler;

    birler=new string[11];
    onlar= new string[10];
    yuzler=new string[10];
    binler=new string[2];

    birler[0]="";birler[1]="I";birler[2]="II";birler[3]="III";birler[4]="IV";
    birler[5]="V";birler[6]="VI";birler[7]="VII";birler[8]="VIII";birler[9]="IX";
    birler[10]="X";

    onlar[0]="";onlar[1]="X";onlar[2]="XX";onlar[3]="XXX";onlar[4]="XL";
    onlar[5]="L";onlar[6]="LX";onlar[7]="LXX";onlar[8]="LXXX";onlar[9]="XC";

    yuzler[0]="";yuzler[1]="C";yuzler[2]="CC";yuzler[3]="CCC";yuzler[4]="CD";
    yuzler[5]="D";yuzler[6]="DC";yuzler[7]="DCC";yuzler[8]="DCCC";yuzler[9]="CM";

    binler[0]="";binler[1]="M";


    if (t <= 10) textBox2.Text=birler[t];

    if ((t > 10) && (t < 100))
    {
    tam = t / 10;
    kln = t-tam*10;
    textBox1.Text=onlar[tam] + birler[kln];
    }

    if ((t >= 100) && (t < 1000))
    {
    tam = t / 100;
    kln = t-tam*100;
    kln1 = kln / 10;
    kln2 = kln-(kln/10)*10;
    textBox1.Text=yuzler[tam] + onlar[kln1] + birler[kln2];
    }

    if ((t >= 1000) && (t < 2000))
    {
    tam = t / 1000;
    kln = t-tam*1000;
    kln1 = kln / 100;
    kln2 = kln-(kln/100)*100;
    kln3 = kln2 / 10;
    kln4 = kln2-(kln2/10)* 10;
    textBox1.Text=binler[tam] + yuzler[kln1] + onlar[kln3] + birler[kln4];
    }
    ==================================================
    yazılan romen rakamını normal sayıya çevirmek için kullanacağın bottunun click olayında


    string roman=textBox1.Text;
    roman=roman.ToUpper();
    int old=1000;
    int n=0;
    int r=0;

    for (int i=0;i<roman.Length;i++)
    {
    char ch=roman;

    if (ch=="I") n=1;
    if (ch=="V") n=5;
    if (ch=="X") n=10;
    if (ch=="L") n=50;
    if (ch=="C") n=100;
    if (ch=="D") n=500;
    if (ch=="M") n=1000;

    if (n>old) r=r+n-2*old;
    else r=r+n;

    old=n;
    }
    textBox2.Text=r.ToString();


    yaz çalışıtır kolay gelsin.calıştıramassan özele msg at mailine atayım kodaları

    "Toros dağlarının tepelerinde tek bir Türkmen evinin bacası tüter halde kalmış ise, ben bu milletten umudumu kesmem, bayrağımı göğsüme sarar, milletimin istiklali uğruna ölürüm. Gazi Mustafa Kemal ATATÜRK"
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    xtlan
    xtlan's avatar
    Kayıt Tarihi: 02/Ocak/2003
    Dişi
    Bu arada daha kısa bir algoritma aklıma gelmedi sanırım en kısası bu :) daha kısa bir algoritma aklına gelen varsa benide bilgilendirirse sevinirim

    "Toros dağlarının tepelerinde tek bir Türkmen evinin bacası tüter halde kalmış ise, ben bu milletten umudumu kesmem, bayrağımı göğsüme sarar, milletimin istiklali uğruna ölürüm. Gazi Mustafa Kemal ATATÜRK"
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hurricane
    hurricane's avatar
    Kayıt Tarihi: 20/Ocak/2004
    Erkek
    sağol xtlan geç oldu ama işime yaradı sayende .NET C# dersinin vize yerine geçen ödevinden kurtuldum
    çok sağol tekrar
Toplam Hit: 4008 Toplam Mesaj: 4