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

C# MŰHELY

C# MŰHELY

Osztók keresése for ciklussal

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

Olvassunk be egy pozitív egész számot és írjuk ki az összes osztóját. A feladatot for ciklussal oldjuk meg.

Hogyan fogjunk a megoldáshoz?

 A feladat azon számok kiválasztása, melyek a szám osztói 2-től szám/2-ig. Az osztót először a 2-nek választjuk és megnézzük, hogy osztója-e a számnak. Ha igen, megjegyezzük és a következő eggyel növelt osztóval próbálkozunk. Újra megvizsgáljuk, hogy ez osztója-e a számnak. A folyamatot addig végezzük, míg az osztó egyenlő nem lesz szám/2-vel.

 A feladat megoldásához három egész típusú változóra lesz szükségünk:

  • szám tartalmazza a vizsgálandó számot,
  • osztó tartalmazza az osztót.
  • osztódb tartalmazza az osztók számát.

 A feladat megoldása for ciklussal

 A feladatot for ciklussal oldjuk meg, ismert a ciklus kezdőértéke (a legkisebb osztó, 2), a lépésköz (1) és a ciklus végértéke (szám/2). A ciklusvál­tozó minden értékére megvizsgáljuk az oszthatóságot, ha a szám osztható a ciklusváltozóval, beírjuk a lista ablakba.

 Az oszthatóság vizsgálata nagyon egyszerű, hiszen egy szám akkor osztható egy másik számmal, ha maradék nélkül meg van benne. A  % művelet az osztás utáni maradékot adja vissza, ha  ezt feltételes utasítás­ban vizsgáljuk, akkor a nulla jelenti az oszthatóságot. 

       if (szám % osztó ==0)   // osztója     

       else                  // nem osztója

A feladat megoldása:

Mivel pozitív egész számnak keressük az osztóját, a program negatív szám esetén hibajelzést ad.

           // Osztók keresése for ciklussal
        private void button1_Click(object sender, EventArgs e)
        {
            int osztó, szám, osztódb=0;
            listBox1.Items.Clear();
            if (textBox1.Text != "")
            {
                szám = Int32.Parse(textBox1.Text);
                if (szám > 0)
                {
                    for (osztó = 2; osztó <= szám / 2; osztó++)
                    {
                        if (szám % osztó == 0)
                        {
                            listBox1.Items.Add(osztó);
                            osztódb++;
                        }
                    }
                    if (osztódb == 0)
                        textBox2.Text = "PRIMSZÁM";
                    else
                        textBox2.Text = "Osztók darabszáma: " +
                                        osztódb.ToString();
                }
                else
                    MessageBox.Show("Hibás adat!", "Üzenet");
            }
        }

        // Ha az adat változik az előző eredmények törlődnek
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            textBox2.Text = "";
        }

A program futási eredményei:

   

 

A bejegyzés trackback címe:

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

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