Metodo Principale
ForumOtto :: Programmazione :: C # .NET
Pagina 1 su1 • Condividere •
Metodo Principale
Questo è il metodo principale del mio ultimo programma che applicava la regola di ruffini a due poilinomi:
void RisolviPolinomioXCoefficienti()
{
double datEnd;
double datStart;
int ss, se;
datStart = DateTime.Now.Millisecond;
ss = DateTime.Now.Second;
#region Algoritmo di divisione
int conto = 2;
int termineNotoDivisore = Convert.ToInt32(numericUpDown1.Value);
int ris;
int numeroCoeff = 3;
//Calcola il 1°coeff
CoeffRis.Add(Convert.ToInt32(CoeffDividendo[0]));
listBox1.Items.Add(Convert.ToInt32(CoeffDividendo[0]));
listBox4.Items.Add("Calcolo coefficiente N° 1...");
listBox4.Items.Add("Coefficiente N° 1 trovato: " + Convert.ToInt32(CoeffDividendo[0]));
listBox4.Items.Add(" ");
//Calcola il 2°coeff
ris = Convert.ToInt32(CoeffDividendo[0]) * termineNotoDivisore;
CoeffRis.Add(ris + Convert.ToInt32(CoeffDividendo[1]));
listBox1.Items.Add(ris + Convert.ToInt32(CoeffDividendo[1]));
listBox4.Items.Add("Calcolo coefficiente N° 2...");
listBox4.Items.Add("| " + Convert.ToInt32(CoeffDividendo[0]) + " x " + termineNotoDivisore + " = " + ris);
listBox4.Items.Add("| " + ris + " + " + Convert.ToInt32(CoeffDividendo[1]) + " = " + Convert.ToInt32(CoeffRis[1]));
listBox4.Items.Add("Coefficiente N° 2 trovato: " + Convert.ToInt32(CoeffRis[1]));
listBox4.Items.Add(" ");
numeroCoeffModificato--;
//calcola i restanti
for (int i = 1; i < numeroCoeffModificato; i++)
{
ris = Convert.ToInt32(CoeffRis[i]) * termineNotoDivisore;
CoeffRis.Add(ris + Convert.ToInt32(CoeffDividendo[conto]));
listBox1.Items.Add(ris + Convert.ToInt32(CoeffDividendo[conto]));
listBox4.Items.Add("Calcolo del coefficiente N°: " + numeroCoeff + "...");
listBox4.Items.Add("| " + Convert.ToInt32(CoeffRis[i]) + " x " + termineNotoDivisore + " = " + ris);
listBox4.Items.Add("| " + ris + " + " + Convert.ToInt32(CoeffDividendo[conto]) + " = " + (ris + Convert.ToInt32(CoeffDividendo[conto])));
listBox4.Items.Add("Coeffciente N° " + numeroCoeff + " trovato: " + (ris + Convert.ToInt32(CoeffDividendo[conto])));
listBox4.Items.Add(" ");
conto++;
numeroCoeff++;
}
//calcola il grado
gradoRis = Convert.ToInt32(numericUpDown2.Value);
g = gradoRis;
while (g != 0)
{
g--;
listBox2.Items.Add(g);
GradoCoeffRis.Add(g);
}
//inserisce il grado immaginario del resto
GradoCoeffRis.Add(10000);
//stampa il risultato
for (int i = 0; i < numeroCoeffReale; i++)
{
if (Convert.ToInt32(GradoCoeffRis[i]) < 10000)
{
listBox3.Items.Add(CoeffRis[i] + "x" + GradoCoeffRis[i]);
if (Convert.ToInt32(CoeffRis[i]) < 0)
{
textBox3.AppendText(CoeffRis[i] + "x" + GradoCoeffRis[i] + " ");
}
else
{
textBox3.AppendText("+" + CoeffRis[i] + "x" + GradoCoeffRis[i] + " ");
}
}
else if (Convert.ToInt32(GradoCoeffRis[i]) == 10000)
{
listBox3.Items.Add("Resto: " + CoeffRis[i]);
textBox4.Text = "Resto: " + CoeffRis[i];
}
}
//Ricrea la divisione iniziale
//Scrive il dividendo
int k = Convert.ToInt32(numericUpDown2.Value);
GradoCoeffIniziali.Add(k);
while (k != 0)
{
k--;
GradoCoeffIniziali.Add(k);
}
textBox2.AppendText("(");
for (int i = 0; i < numeroCoeffReale; i++)
{
if (Convert.ToInt32(CoeffDividendo[i]) < 0)
{
textBox2.AppendText(" " + CoeffDividendo[i].ToString() + "x" + GradoCoeffIniziali[i].ToString());
}
else if(Convert.ToInt32(CoeffDividendo[i]) > 0)
{
textBox2.AppendText(" +" + CoeffDividendo[i].ToString() + "x" + GradoCoeffIniziali[i].ToString());
}
}
textBox2.AppendText(")");
//Scrivi il divisore
int CambioSegno = 0;
if (termineNotoDivisore < 0)
{
//Cambio divisore in +
CambioSegno = termineNotoDivisore * -1;
textBox2.AppendText(" / (x +" + CambioSegno + ")");
}
else if (termineNotoDivisore > 0)
{
//Cambio divisore in -
CambioSegno = termineNotoDivisore * -1;
textBox2.AppendText(" / (x " + CambioSegno + ")");
}
//Scrive il risultati nella lista del procedimento
listBox4.Items.Add("Espressione iniziale: ");
listBox4.Items.Add(textBox2.Text);
listBox4.Items.Add(" ");
listBox4.Items.Add("Risultato: ");
listBox4.Items.Add(textBox3.Text);
listBox4.Items.Add(textBox4.Text);
#endregion
se = DateTime.Now.Second;
datEnd = DateTime.Now.Millisecond;
label7.Text = Convert.ToString(ss - se) + " secondi" + " e " + Convert.ToString(datStart - datEnd) + " millisecondi";
}
Finestra del programma:
http://i40.servimg.com/u/f40/13/00/44/83/ruffin10.png
void RisolviPolinomioXCoefficienti()
{
double datEnd;
double datStart;
int ss, se;
datStart = DateTime.Now.Millisecond;
ss = DateTime.Now.Second;
#region Algoritmo di divisione
int conto = 2;
int termineNotoDivisore = Convert.ToInt32(numericUpDown1.Value);
int ris;
int numeroCoeff = 3;
//Calcola il 1°coeff
CoeffRis.Add(Convert.ToInt32(CoeffDividendo[0]));
listBox1.Items.Add(Convert.ToInt32(CoeffDividendo[0]));
listBox4.Items.Add("Calcolo coefficiente N° 1...");
listBox4.Items.Add("Coefficiente N° 1 trovato: " + Convert.ToInt32(CoeffDividendo[0]));
listBox4.Items.Add(" ");
//Calcola il 2°coeff
ris = Convert.ToInt32(CoeffDividendo[0]) * termineNotoDivisore;
CoeffRis.Add(ris + Convert.ToInt32(CoeffDividendo[1]));
listBox1.Items.Add(ris + Convert.ToInt32(CoeffDividendo[1]));
listBox4.Items.Add("Calcolo coefficiente N° 2...");
listBox4.Items.Add("| " + Convert.ToInt32(CoeffDividendo[0]) + " x " + termineNotoDivisore + " = " + ris);
listBox4.Items.Add("| " + ris + " + " + Convert.ToInt32(CoeffDividendo[1]) + " = " + Convert.ToInt32(CoeffRis[1]));
listBox4.Items.Add("Coefficiente N° 2 trovato: " + Convert.ToInt32(CoeffRis[1]));
listBox4.Items.Add(" ");
numeroCoeffModificato--;
//calcola i restanti
for (int i = 1; i < numeroCoeffModificato; i++)
{
ris = Convert.ToInt32(CoeffRis[i]) * termineNotoDivisore;
CoeffRis.Add(ris + Convert.ToInt32(CoeffDividendo[conto]));
listBox1.Items.Add(ris + Convert.ToInt32(CoeffDividendo[conto]));
listBox4.Items.Add("Calcolo del coefficiente N°: " + numeroCoeff + "...");
listBox4.Items.Add("| " + Convert.ToInt32(CoeffRis[i]) + " x " + termineNotoDivisore + " = " + ris);
listBox4.Items.Add("| " + ris + " + " + Convert.ToInt32(CoeffDividendo[conto]) + " = " + (ris + Convert.ToInt32(CoeffDividendo[conto])));
listBox4.Items.Add("Coeffciente N° " + numeroCoeff + " trovato: " + (ris + Convert.ToInt32(CoeffDividendo[conto])));
listBox4.Items.Add(" ");
conto++;
numeroCoeff++;
}
//calcola il grado
gradoRis = Convert.ToInt32(numericUpDown2.Value);
g = gradoRis;
while (g != 0)
{
g--;
listBox2.Items.Add(g);
GradoCoeffRis.Add(g);
}
//inserisce il grado immaginario del resto
GradoCoeffRis.Add(10000);
//stampa il risultato
for (int i = 0; i < numeroCoeffReale; i++)
{
if (Convert.ToInt32(GradoCoeffRis[i]) < 10000)
{
listBox3.Items.Add(CoeffRis[i] + "x" + GradoCoeffRis[i]);
if (Convert.ToInt32(CoeffRis[i]) < 0)
{
textBox3.AppendText(CoeffRis[i] + "x" + GradoCoeffRis[i] + " ");
}
else
{
textBox3.AppendText("+" + CoeffRis[i] + "x" + GradoCoeffRis[i] + " ");
}
}
else if (Convert.ToInt32(GradoCoeffRis[i]) == 10000)
{
listBox3.Items.Add("Resto: " + CoeffRis[i]);
textBox4.Text = "Resto: " + CoeffRis[i];
}
}
//Ricrea la divisione iniziale
//Scrive il dividendo
int k = Convert.ToInt32(numericUpDown2.Value);
GradoCoeffIniziali.Add(k);
while (k != 0)
{
k--;
GradoCoeffIniziali.Add(k);
}
textBox2.AppendText("(");
for (int i = 0; i < numeroCoeffReale; i++)
{
if (Convert.ToInt32(CoeffDividendo[i]) < 0)
{
textBox2.AppendText(" " + CoeffDividendo[i].ToString() + "x" + GradoCoeffIniziali[i].ToString());
}
else if(Convert.ToInt32(CoeffDividendo[i]) > 0)
{
textBox2.AppendText(" +" + CoeffDividendo[i].ToString() + "x" + GradoCoeffIniziali[i].ToString());
}
}
textBox2.AppendText(")");
//Scrivi il divisore
int CambioSegno = 0;
if (termineNotoDivisore < 0)
{
//Cambio divisore in +
CambioSegno = termineNotoDivisore * -1;
textBox2.AppendText(" / (x +" + CambioSegno + ")");
}
else if (termineNotoDivisore > 0)
{
//Cambio divisore in -
CambioSegno = termineNotoDivisore * -1;
textBox2.AppendText(" / (x " + CambioSegno + ")");
}
//Scrive il risultati nella lista del procedimento
listBox4.Items.Add("Espressione iniziale: ");
listBox4.Items.Add(textBox2.Text);
listBox4.Items.Add(" ");
listBox4.Items.Add("Risultato: ");
listBox4.Items.Add(textBox3.Text);
listBox4.Items.Add(textBox4.Text);
#endregion
se = DateTime.Now.Second;
datEnd = DateTime.Now.Millisecond;
label7.Text = Convert.ToString(ss - se) + " secondi" + " e " + Convert.ToString(datStart - datEnd) + " millisecondi";
}
Finestra del programma:
http://i40.servimg.com/u/f40/13/00/44/83/ruffin10.png

Andrea- Admin
- Messaggi: 22
Data d'iscrizione: 05.09.08
Età: 17

Permesso del forum:
Non puoi rispondere agli argomenti in questo forum



