Ошибка при расчете - "cannot convert from 'method group' to 'double'" - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Делала на c# программу, реализующую подсчет сложных процентов по периодам и вывод соответствующего графика. Но при запуске возникает 2 ошибки: 1) The best overloaded method match for 'System.Math.Round(double, int)' has some invalid arguments 2) Argument '1': cannot convert from 'method group' to 'double' Помогите, пожалуйста, разобраться
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Drawing.Drawing2D;
  9.  
  10. namespace WindowsApplication1
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public double d, p, n;
  15. double sum;
  16. public int k;
  17. public Form1()
  18. {
  19. InitializeComponent();
  20. textBox2.MaxLength = 2;
  21. }
  22. public static class FunctionSet
  23. {
  24. public static double Func1(double d, double p, double n)
  25. {
  26. return (d * Math.Pow((1 + (p / 100)), n));
  27. }
  28. }
  29.  
  30. public void button1_Click(object sender, EventArgs e)
  31. {
  32. try
  33. {
  34. double d = Convert.ToDouble(textBox1.Text);
  35. double p = Convert.ToDouble(textBox2.Text);
  36. double n = Convert.ToDouble(textBox3.Text);
  37. double inter = Convert.ToDouble(textBox5.Text);
  38. sum = (d * Math.Round(Math.Pow((1 + (p / 100)), n), 2));
  39. textBox4.Text = Convert.ToString(sum);
  40. textBox4.Text = Convert.ToString(sum); //преобразуем число в строку
  41. }
  42. catch (FormatException)
  43. {
  44. MessageBox.Show("Неверный ввод данных");
  45. return;
  46. }
  47. if (textBox1.Text == "")
  48. {
  49. MessageBox.Show("Не введена сумма!");
  50. }
  51. if (textBox2.Text == "")
  52. {
  53. MessageBox.Show("Не введен процент!");
  54. }
  55. if (textBox3.Text == "")
  56. {
  57. MessageBox.Show("Не введено количество периодов!");
  58. }
  59. else
  60. {
  61. sum = Math.Round(FunctionSet.Func1, 4);
  62. }
  63. }
  64. public delegate double Func(double x);
  65. public double Raschet(Func k)
  66. {
  67. double sum = 0.0;
  68. double d = Convert.ToDouble(textBox1.Text);
  69. double p = Convert.ToDouble(textBox2.Text);
  70. double n = Convert.ToDouble(textBox3.Text);
  71. double inter = Convert.ToDouble(textBox5.Text);
  72. double h;
  73. h = n / inter; //шаг
  74. for (int i = 1; i <= n; i++)
  75. {
  76. sum += d * Math.Round(Math.Pow((1 + (p / 100)), n), 2);
  77. }
  78. sum += h;
  79. return sum;
  80. }
  81.  
  82. private void button2_Click(object sender, EventArgs e)
  83. {
  84. //this.Stroi(FunctionSet.Func1);
  85. }
  86. public void Stroi(Func z)
  87. {
  88. Graphics g = graphWind.CreateGraphics();
  89. g.Clear(Color.White);
  90. Pen myPen = new Pen(Color.Black);
  91. int MaxX = graphWind.Width;
  92. int MaxY = graphWind.Height;
  93. //double d = Convert.ToDouble(textBox1.Text);
  94. //double p = Convert.ToDouble(textBox2.Text);
  95. //double n = Convert.ToDouble(textBox3.Text);
  96. double inter = Convert.ToDouble(textBox5.Text);
  97. double h = n / inter;
  98. int k = System.Convert.ToInt32(inter);
  99. double[] Xx = new double[k + 1];
  100. double[] Y1 = new double[k + 1];
  101. Xx[0] = 1;
  102. for (int i = 0; i < k - 1; i++)
  103. {
  104. Xx[i + 1] = Xx[i] + h;
  105. }
  106. Y1[0] = d;
  107. for (int i = 0; i < k - 1; i++)
  108. {
  109. Y1[i] = Xx[i];
  110. }
  111. double[] X = new double[k + 1];
  112. double[] Y = new double[k + 1];
  113. double Ymax = Y1[0];
  114. double Ymin = Y1[0];
  115. g.DrawLine(myPen, 0, 0, MaxX, 0);
  116. g.DrawLine(myPen, 0, 0, 0, MaxY);
  117. for (int i = 0; i < k; i++)
  118. {
  119. if (Ymax < Y1[i])
  120. {
  121. Ymax = Y1[i];
  122. }
  123. if (Ymin > Y1[i])
  124. {
  125. Ymin = Y1[i];
  126. }
  127. }
  128. // for (int i = 0; i < k; i++)
  129. // {
  130. // X[i] = MaxX * (Xx[i] - a) / (b - a);
  131. // Y[i] = MaxX - MaxY * ((Y1[i] - Ymin) / (Ymax - Ymin));
  132. // }
  133.  
  134. for (int i = 1; i < k - 1; i++)
  135. {
  136. g.DrawLine(myPen, (float)(X[i]), (float)(Y[i]), (float)(X[i + 1]), (float)(Y[i + 1]));
  137. g.DrawRectangle(myPen, (float)(X[i - 1]), (float)(Y[i - 1]), (float)(h), (float)(MaxY - Y[i]));
  138. }
  139. g.Dispose();
  140. }
  141.  
  142. }
  143. }

Решение задачи: «Ошибка при расчете - "cannot convert from 'method group' to 'double'"»

textual
Листинг программы
  1. Math.Pow((1 + (p / 100)), n)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы