UYGULAMAYI İNDİR
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;
using System.Collections;
namespace C_Sharp_Roma_Rakamlarını_Normal_Sayıya_Donusturme
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnNormalSayiyaCevir_Click(object sender, EventArgs e)
{
{
Hashtable liste = new Hashtable();
liste.Add("I", "1");
liste.Add("II", "2");
liste.Add("III", "3");
liste.Add("IV", "4");
liste.Add("V", "5");
liste.Add("VI", "6");
liste.Add("VII", "7");
liste.Add("VIII", "8");
liste.Add("IX", "9");
liste.Add("X", "10");
liste.Add("XX", "20");
liste.Add("XXX", "30");
liste.Add("XL", "40");
liste.Add("L", "50");
liste.Add("LX", "60");
liste.Add("LXX", "70");
liste.Add("LXXX", "80");
liste.Add("XC", "90");
liste.Add("C", "100");
liste.Add("CC", "200");
liste.Add("CCC", "300");
liste.Add("CD", "400");
liste.Add("D", "500");
liste.Add("DC", "600");
liste.Add("DCC", "700");
liste.Add("DCCC", "800");
liste.Add("CM", "900");
liste.Add("M", "1000");
string bol = txtRomaRakami.Text.ToUpper();
int sayi = 0;
for (int i = 0; i < bol.Length; i++)
{
if (bol.Length - i >= 2)
{
string data = bol[i].ToString() + bol[i + 1].ToString();
if (data == "IX" || data == "XL" || data == "CD" || data == "CM" || data == "XC")
{
sayi = int.Parse(liste[data].ToString()) + sayi;
i++;
}
else
{
sayi = int.Parse(liste[bol[i].ToString()].ToString()) + sayi;
}
}
else
{
sayi = int.Parse(liste[bol[i].ToString()].ToString()) + sayi;
}
}
lblNormalSayiDegeri.Text = Convert.ToString(sayi);
}
}
private void btnRomaRakaminaCevir_Click(object sender, System.EventArgs e)
{
int yuzler = 0, onlar = 0, birler = 0, girilen;
string sonuc = "";
girilen = Convert.ToInt32(txtNormalSayi.Text);
if (girilen <= 0 || girilen >= 1000)
{
MessageBox.Show("Lütfen 0 ile 1000 arasında bir sayı giriniz", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if (girilen > 99)
{
yuzler = girilen / 100;
if (girilen - (yuzler * 100) == 0)
{
goto ifSonu;
}
onlar = (girilen - (yuzler * 100)) / 10;
birler = girilen - ((yuzler * 100) + (onlar * 10));
}
else if (girilen > 9)
{
onlar = girilen / 10;
birler = girilen - (onlar * 10);
}
else
{
birler = girilen;
}
ifSonu:
if (yuzler > 0)
{
switch (yuzler)
{
case 1:
sonuc = "C";
break;
case 2:
sonuc = "CC";
break;
case 3:
sonuc = "CCC";
break;
case 4:
sonuc = "CD";
break;
case 5:
sonuc = "D";
break;
case 6:
sonuc = "DC";
break;
case 7:
sonuc = "DCC";
break;
case 8:
sonuc = "DCC";
break;
case 9:
sonuc = "CM";
break;
}
}
if (onlar > 0)
{
switch (onlar)
{
case 1:
sonuc = sonuc + "X";
break;
case 2:
sonuc = sonuc + "XX";
break;
case 3:
sonuc = sonuc + "XXX";
break;
case 4:
sonuc = sonuc + "XL";
break;
case 5:
sonuc = sonuc + "L";
break;
case 6:
sonuc = sonuc + "LX";
break;
case 7:
sonuc = sonuc + "LXX";
break;
case 8:
sonuc = sonuc + "LXXX";
break;
case 9:
sonuc = sonuc + "XC";
break;
}
}
if (birler > 0)
{
switch (birler)
{
case 1:
sonuc = sonuc + "I";
break;
case 2:
sonuc = sonuc + "II";
break;
case 3:
sonuc = sonuc + "III";
break;
case 4:
sonuc = sonuc + "IV";
break;
case 5:
sonuc = sonuc + "V";
break;
case 6:
sonuc = sonuc + "VI";
break;
case 7:
sonuc = sonuc + "VII";
break;
case 8:
sonuc = sonuc + "VIII";
break;
case 9:
sonuc = sonuc + "IX";
break;
}
}
lblRomaRakamiDegeri.Text = Convert.ToString(sonuc);
}
}
}
abi benim ödev olarak bunu seçtim ama bu kodları neden kullandığını niye böyle bir şey yaptığını anlatmam gerekiyor. siz neden böyle bir şey yaptığınızı yani ayrıntılı bir şekilde anlatabilir misiniz? en kısa zaman içinde yapmam gerekiyor.
YanıtlaSil