Olvassunk be negatív és pozitív egész számokat. Határozzuk meg összegüket, valamint külön a pozitív és negatív számok összegét is. A nullákat is értékes számnak tekintsük. Az összegek mellett határozzuk meg a nullák darabszámát is. A ciklusból két egymást után beolvasott 0-val léphetünk ki.
A feladat megoldása:
Deklaráljunk egy volt egész típusú változót, melynek kezdőértékét a Form1_Load 0-ra állítja. Ennek a változónak az 1-re állítása jelzi, hogy 0-át olvastunk, és újra 0 lesz az értéke, ha a következő beolvasott érték nem zérus.
if (szám == 0 && volt == 1)
{
button1.Enabled = false;
button2.Enabled = true;
}
if(szám == 0)
volt =1;
else volt = 0;
A feladat programlistája:
// Globális változók
int volt, szám;
// Adatok beolvasása.
// illetve két egymásutáni 0 állítja le az olvasást
private void Adatot_olvas_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
szám = Int32.Parse(textBox1.Text);
listBox1.Items.Add(textBox1.Text);
textBox1.Clear();
textBox1.Focus();
if (szám == 0 && volt == 1)
{
Adatot_olvas.Enabled = false;
Számol.Enabled = true;
}
if (szám == 0)
volt = 1;
else volt = 0;
}
}
// Kiértékelés
private void Számol_Click(object sender, EventArgs e)
{
int adat, összeg = 0, neg_összeg = 0, poz_összeg = 0,
i, db,zérusok_száma = 0;
db = listBox1.Items.Count;
for (i = 0; i < db - 1; i++)
{
textBox1.Text = listBox1.Items[i].ToString();
adat = Int32.Parse(textBox1.Text);
összeg += adat;
if (adat == 0)
zérusok_száma++;
else if (adat > 0)
poz_összeg += adat;
else neg_összeg += adat;
}
textBox2.Text = összeg.ToString();
textBox3.Text = poz_összeg.ToString();
textBox4.Text = neg_összeg.ToString();
textBox5.Text = zérusok_száma.ToString();
textBox1.Text = "Adatok száma: " + (db - 1).ToString();
}
// Az alapállapot beállítása
private void Form1_Load(object sender, EventArgs e)
{
volt = 0;
listBox1.Items.Clear();
Számol.Enabled = false;
}
A program futási eredménye: