Оценить время работы метода - C#
Формулировка задачи:
Необходимо оценить время работы метода. Но он почему-то не хочет этого делать.Как я поняла, он не может конвертировать. Подскажите как правильно это сделать. Заранее благодарю за помощь.
это библиотека
WindowsForm
Листинг программы
- namespace ClassLibrary2
- {
- public class TimeValue
- {
- public delegate double DToD(double arg1);
- public static double EvalTimeDtoD(int count, DToD fun, double x1,double x2,double dx)
- {
- DateTime start, finish;
- double res = 0;
- start = DateTime.Now;
- for (int i = 1; i <= count;i++)
- {
- do
- {
- fun(x1);
- x1 += dx;
- } while (x1 <= x2);
- }
- finish = DateTime.Now;
- res = (finish - start).Milliseconds;
- return res;
- }
- }
- public class Class1
- {
- public static double Kol(double X,double EPS)
- {
- double a = X;
- double res = 0;
- int k = 0;
- do
- {
- res += a;
- a *= (-(Math.Pow(X, 2))) * (2 * k + 1);
- a /= (2 * k + 3);
- k++;
- Console.WriteLine(a);
- res += a;
- } while (Math.Abs(a) >= EPS);
- return k;
- }
- public static double MyAtan(double X, double EPS)
- {
- double a = X;
- double res = 0;
- int k = 0;
- do
- {
- res += a;
- a *= (-(Math.Pow(X, 2))) * (2*k+1);
- a /= (2*k+3);
- k++;
- Console.WriteLine(a);
- res += a;
- } while (Math.Abs(a) >= EPS);
- return res;
- }
- }
- }
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- Result.ColumnCount = 5;
- Result.Columns[0].HeaderText = "X";
- Result.Columns[1].HeaderText = "Math.Atan";
- Result.Columns[2].HeaderText = "MyAtan";
- Result.Columns[3].HeaderText = "Разница";
- Result.Columns[4].HeaderText = "Сумма";
- }
- private void EPSLabel_Click(object sender, EventArgs e)
- {
- }
- private void AtanButton_Click(object sender, EventArgs e)
- {
- int count = 1;
- double x1 = Convert.ToDouble(X1TextBox.Text);
- double x2 = Convert.ToDouble(X2TextBox.Text);
- double dx = Convert.ToDouble(dXTextBox.Text);
- double eps = Convert.ToDouble(EpsTextBox.Text);
- int MyRow = Convert.ToInt32(x2 / dx);
- count = Convert.ToInt32(ReturnTextBox.Text);
- TimeTextBox1.Text = (ClassLibrary2.TimeValue.EvalTimeDtoD(count, Math.Atan, x1, x2, dx)).ToString();
- TimeTextBox2.Text = (ClassLibrary2.TimeValue.EvalTimeDtoD(count, ClassLibrary2.Class1.MyAtan, x1, x2, dx)).ToString();// Тут выдает 2 ошибки:
- Error 2 Argument 2: cannot convert from 'method group' to 'ClassLibrary2.TimeValue.DToD' C:\Users\1\Documents\Visual Studio 2013\Projects\lab C#\ClassLibrary2\WindowsFormsApplication1\Form1.cs 44 78 WindowsFormsApplication1
- Error 1 The best overloaded method match for 'ClassLibrary2.TimeValue.EvalTimeDtoD(int, ClassLibrary2.TimeValue.DToD, double, double, double)' has some invalid arguments C:\Users\1\Documents\Visual Studio 2013\Projects\lab C#\ClassLibrary2\WindowsFormsApplication1\Form1.cs 44 34 WindowsFormsApplication1]
- \
- Result.RowCount = MyRow;
- int n = 0;
- do
- {
- Result[0, n].Value = x1;
- Result[1, n].Value = Math.Atan(x1);
- Result[2, n].Value = ClassLibrary2.Class1.MyAtan(x1,eps);
- Result[3, n].Value = (double)Result[1, n].Value - (double)Result[2, n].Value;
- Result[4, n].Value = ClassLibrary2.Class1.Kol(x1, eps);
- n++;
- x1 += dx;
- } while (x1 <= x2);
- }
- }
- }
Решение задачи: «Оценить время работы метода»
textual
Листинг программы
- TimeTextBox1.Text = (ClassLibrary2.TimeValue.EvalTimeDtoD(count, new ClassLibrary2.TimeValue.DToD(Math.Atan), x1, x2, dx)).ToString();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д