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 függvénnyel

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

 Írjunk programot, amely az arab számokat alakítja át római számokká függvénnyel.

 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:

// RómaiSzámok függvény
static void RómaiSzámok(int szám, out string római_szám)
{
    int ezer, száz, tizes, egyes, i;
    római_szám = "";
    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;
       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;
           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;
               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;
                  }
               }
            }
         }
      }
  } 

  private void Konvertálás_Click(object sender, EventArgs e)
  {
     string római_szám;
     int 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 = "";
        }
        RómaiSzámok(szám, out római_szám);
        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/tr4115804266

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