View Single Post
Old 15-03-2009, 18:26   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
C'ho provato adesso !

Vabbeh, è C#, insomma col Java siamo lì...

Codice:
            lst_tentativi.Items.Clear();
            lst_tentativi.Visible = false;

            // numero massimo di cifre decimali da considerare
            int maxNumCifreDec = 14;

            string strNumero = txt_numeroinput.Text;
            string[] partiNumero = strNumero.Split(',');
            string strPIntNumero = partiNumero[0];
            string strPDecNumero = partiNumero[1];

            if (strPDecNumero.Length > maxNumCifreDec) 
            {
                strPDecNumero = strPDecNumero.Substring(0, maxNumCifreDec);
            }
            double numero = Convert.ToDouble(strPIntNumero + "," + strPDecNumero);

            double risTemp = 0;
            string strRisTemp;
            string[] partiRisultato;
            string strPIntRisult;
            string strPDecRisult;
            double numTemp = 1;
            double denomTemp = 1;

            do
            {
                risTemp = numTemp / denomTemp;
                strRisTemp = risTemp.ToString();
                partiRisultato = strRisTemp.Split(',');
                strPIntRisult = partiRisultato[0];
                
                try 
	            {	        
		            strPDecRisult = partiRisultato[1];
	            }
	            catch (Exception)
	            {
		            //throw;
                    strPDecRisult = "0";
	            }

                if(strPDecRisult.Length > maxNumCifreDec)
                {
                    strPDecRisult = strPDecRisult.Substring(0, maxNumCifreDec);
                }
                risTemp = Convert.ToDouble(strPIntRisult + "," + strPDecRisult);
                lst_tentativi.Items.Add(numTemp + " / " + denomTemp + " = " + risTemp);

                if(risTemp == numero)
                {
                    txt_risnum.Text = numTemp.ToString();
                    txt_risdenom.Text = denomTemp.ToString();
                    break;
                }
                else if ( risTemp > numero )
                {
                    denomTemp += 1;
                }
                else
                {
                    numTemp += 1;
                }

            } while (true);

            lst_tentativi.Visible = true;
txt_numeroinput = textbox numero input
txt_risnum = textbox numeratore output
txt_risdenom = textbox denominatore output

Riduce anche ai minimi termini...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso