C# programok ismertetése érdeklődőknek kezdőktől haladókig

C# MŰHELY

C# MŰHELY

Római számok képzése

2020. június 11. - Benkő Tiborné

 Írjunk programot, amely az arab számokat alakítja át római számokká.

 A római számokban felhasznált betűk az I V X L C D M  a  latin ábécéből származnak.

     Szám     Római szám
 ---------------------------------
         1            I
         4                   IV
         5           V
         9                   IX
        10          X 
        40                  XL  
        50          L
        90                 XC
      100         C
      400                 CD
      500         D
      900                 CM
    1000         M

A legnagyobb római szám 3999 római számokkal: MMMCMXCIX.
A római számokat ma is használják:

  • Budapest kerületeinek jelzésére pl. XI. kerület.
  • régi épületek építési évének jelzésére.
  • fejezet sorszámozására,
  • uralkodók sorszámozására.

 A feladat megoldása:

private void Konvertálás_Click(object sender, EventArgs e)
{
     int szám, ezer, száz, tizes, egyes, i;
     string római_szám = "";
     if (textBox1.Text != "")
     {
        szám = Int32.Parse(textBox1.Text);
        if (szám <= 0 || szám > 3999)
        {
            MessageBox.Show(
                    " A szám nincs a 1-3999 határ között!",
                    "Hibajelzés");
            textBox1.Text = "";
        }
        else if (szám <= 3999 && szám > 0)
        {
            ezer = szám / 1000;
            switch (ezer)
            {
               case 1: római_szám += "M"; break;
               case 2: római_szám += "MM"; break;
               case 3: római_szám += "MMM"; break;
            }
            szám %= 1000;
            textBox2.Text = római_szám;
            if (szám <= 999 && szám > 0)
            {
                száz = szám / 100;
                if(száz == 9)
                    római_szám += "CM";
                else if (száz >= 5)
                {
                    római_szám += "D";
                    száz -= 5;
                }
                if (száz == 4)
                    római_szám += "CD";
                if(száz <= 3)
                {
                    for (i = 1; i <= száz; i++)
                        római_szám += "C";
                }
                szám %= 100;
                textBox2.Text = római_szám;
                if (szám > 0 && szám <= 99)
                {
                    tizes = szám / 10;
                    if (tizes == 9)
                        római_szám += "XC";
                    else if (tizes >= 5)
                    {
                        római_szám += "L";
                        tizes -= 5;
                    }
                    if (tizes == 4)
                        római_szám += "XL";
                    if (tizes > 0 && tizes <= 3)
                    {
                        for (i = 1; i <= tizes; i++)
                           római_szám += "X";
                    }
                    szám %= 10;
                    textBox2.Text = római_szám;
                    if (szám > 0)
                    {
                         egyes = szám;
                         switch (egyes)
                         {   
                             case 1: római_szám += "I";
                                     break;
                             case 2: római_szám += "II";
                                     break;
                             case 3: római_szám += "III";
                                     break;

                             case 4: római_szám += "IV";
                                     break;
                             case 5: római_szám += "V";
                                     break;
                             case 6: római_szám += "VI";
                                     break;
                             case 7: római_szám += "VII";
                                     break;
                             case 8: római_szám += "VIII";
                                     break;
                             case 9: római_szám += "IX";
                                     break;
                         }
                      }
                      textBox2.Text = római_szám;
                  }
              }
          }
       }
   }

                      private void textBox1_TextChanged(object sender, EventArgs e)
          {
              textBox2.Text = "";
          }

A program futási eredményei:

    

    

   

A bejegyzés trackback címe:

https://csharp-muhely.blog.hu/api/trackback/id/tr715801080

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása