/// <summary> /// this function calculates the normalized power /// </summary> /// <returns>returns NP based on a power value</returns> public string CalculateNormalizedPower() { List <double> power1 = new List <double>(); List <double> power2 = new List <double>(); List <double> power3 = new List <double>(); double num = 0; string[] arrpower = power.ToArray(); for (int counter = 0; counter <= 600; counter++) { num = Double.Parse(arrpower[counter]); power1.Add(num); } for (int counter = 601; counter <= 1200; counter++) { num = Double.Parse(arrpower[counter]); power2.Add(num); } for (int counter = 1201; counter <= 1800; counter++) { num = Double.Parse(arrpower[counter]); power3.Add(num); } double avg_power1 = Average(power1); double avg_power2 = Average(power2); double avg_power3 = Average(power3); double in4 = Math.Pow(avg_power1, 4); double in5 = Math.Pow(avg_power2, 4); double in6 = Math.Pow(avg_power3, 4); double calc1 = in4 * 10; double calc2 = in5 * 10; double calc3 = in6 * 10; double np1 = Math.Sqrt(Math.Sqrt(calc1)); double np2 = Math.Sqrt(Math.Sqrt(calc2)); double np3 = Math.Sqrt(Math.Sqrt(calc3)); double NP1 = (np1 + np2 + np3) / 3; NP = Math.Round(NP1, 2); return(NP.ToString()); }
private void button1_Click(object sender, EventArgs e) { float x_M, x_N, x_P; float y_M, y_N, y_P; float MN, MP, NP; float P_MNP; try { x_M = float.Parse(textBox1.Text); y_M = float.Parse(textBox2.Text); x_N = float.Parse(textBox4.Text); y_N = float.Parse(textBox3.Text); x_P = float.Parse(textBox6.Text); y_P = float.Parse(textBox5.Text); } catch (System.FormatException) { MessageBox.Show("Неверно заполнены поля.", "Ошибка ввода!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MN = (float)Math.Sqrt((double)((x_N - x_M) * (x_N - x_M) + (y_N - y_M) * (y_N - y_M))); NP = (float)Math.Sqrt((double)((x_P - x_N) * (x_P - x_N) + (y_P - y_N) * (y_P - y_N))); MP = (float)Math.Sqrt((double)((x_P - x_M) * (x_P - x_M) + (y_P - y_M) * (y_P - y_M))); P_MNP = MN + NP + MP; string solution; string task; string given; string search; task = "Найдите периметр треугольника $MNP$, если $M(" + x_M.ToString() + "; " + y_M.ToString() + ")$; $N(" + x_N.ToString() + "; " + y_N.ToString() + ")$; $P(" + x_P.ToString() + ";" + y_P.ToString() + ")$."; given = "$\\triangle MNP, M(" + x_M.ToString() + "; " + y_M.ToString() + "); N(" + x_N.ToString() + "; " + y_N.ToString() + "), P(" + x_P.ToString() + ";" + y_P.ToString() + ")$."; search = " $P_{\\triangle MNP}$"; solution = "$MN=\\sqrt{(x_M-x_N)^2+(y_M-y_N)^2}=\\sqrt{(" + x_M.ToString() + "-" + x_N.ToString() + ")^2+(" + y_M.ToString() + "-" + y_N.ToString() + ")^2}=" + MN.ToString() + "$;\\\\"; solution += " $NP=\\sqrt{(x_N-x_P)^2+(y_N-y_P)^2}=\\sqrt{(" + x_N.ToString() + "-" + x_P.ToString() + ")^2+(" + y_N.ToString() + "-" + y_P.ToString() + ")^2}=" + NP.ToString() + "$;\\\\"; solution += " $MP=\\sqrt{(x_P-x_M)^2+(y_P-y_M)^2}=\\sqrt{(" + x_P.ToString() + "-" + x_M.ToString() + ")^2+(" + y_P.ToString() + "-" + y_M.ToString() + ")^2}=" + MP.ToString() + "$;\\\\"; solution += "$P_{\\triangle MNP}=MN+NP+MP=" + MN.ToString() + "+" + NP.ToString() + "+" + MP.ToString() + "=" + P_MNP.ToString() + "$"; GeneratorTexText generator = new GeneratorTexText(); generator.Finish(task, given, search, solution); }