Készítsünk programot, amely beolvassa a mértani sor első tagját, a hányados értékét és kiszámítja a kívánt n-edik tag értékéig az elemek összegét, valamint a sor elemeit is megjeleníti egy listaablakban. Készítsünk rekurzív függvényt a mértani sor n-edik tagjának számításához.
A feladat megoldása:
static int Mértanisor(int a, int d, int n)
{
if (n == 1)
return a;
else
return d * Mértanisor(a, d, n - 1);
}
int első, hányad, szám;
private void Végrehajtás_Click(object sender, EventArgs e)
{
int n_edik;
int összeg = 0;
if (textBox1.Text != "" && textBox2.Text != "" &&
textBox3.Text != "")
{
első = Int32.Parse(textBox1.Text);
hányad = Int32.Parse(textBox2.Text);
szám = Int32.Parse(textBox3.Text);
összeg += első;
for (int i = 2; i <= szám; i++)
{
n_edik = Mértanisor(első, hányad, i);
összeg += n_edik;
textBox4.Text = összeg.ToString();
}
}
}
private void Kiírás_Click(object sender, EventArgs e)
{
string s;
int n_edik;
s = "";
listBox1.Items.Clear();
listBox1.Items.Add("1.elem: " + első);
s = 1 + ".elem: " + első;
s = "";
for (int i = 2; i <= szám; i++)
{
n_edik = Mértanisor(első, hányad, i)
s = i + ".elem: " + n_edik;
listBox1.Items.Add(s);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox4.Text = "";
listBox1.Items.Clear();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox4.Text = "";
listBox1.Items.Clear();
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
textBox4.Text = "";
listBox1.Items.Clear();
}
A program futási eredményei: