Advertisement
Guest User

1244

a guest
Nov 13th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. double f1(double x) { return -1.0*pow(x,2)/*Math::Pow(2, Math::Pow(x, 2))*/; }
  2.     double f2(double x) { return x-1/*Math::Cos(Math::Pow(x, 2)) + 1*/; }
  3.     void smps(double a, double b, double eps, bool f, double &S)
  4.     {
  5.         int n = 0;
  6.         double h = 0;
  7.         double I = eps + 1, I1 = 0;
  8.         if (f)
  9.             for (int N = 2; (N <= 4) || (Math::Abs(I1 - I) > eps); N *= 2)
  10.             {
  11.                 double  sum2 = 0, sum4 = 0, sum = 0;
  12.                 h = (b - a) / (2 * N);
  13.                 for (int i = 1; i <= 2 * N - 1; i += 2)
  14.                 {
  15.                     sum4 += f1(a + h * i);
  16.                     sum2 += f1(a + h * (i + 1));
  17.                 }
  18.                 sum = f1(a) + 4 * sum4 + 2 * sum2 - f1(b);
  19.                 I = I1;
  20.                 I1 = (h / 3) * sum;
  21.                 n++;
  22.                 richTextBox2->Text += Convert::ToString(n + "\t" + h + "\t\t" + I1.ToString(".000") + "\n");
  23.             }
  24.         else
  25.             for (int N = 2; (N <= 4) || (Math::Abs(I1 - I) > eps); N *= 2)
  26.             {
  27.                 double  sum2 = 0, sum4 = 0, sum = 0;
  28.                 h = (b - a) / (2 * N);
  29.                 for (int i = 1; i <= 2 * N - 1; i += 2)
  30.                 {
  31.                     sum4 += f2(a + h * i);
  32.                     sum2 += f2(a + h * (i + 1));
  33.                 }
  34.                 sum = f2(a) + 4 * sum4 + 2 * sum2 - f2(b);
  35.                 I = I1;
  36.                 I1 = (h / 3) * sum;
  37.                 n++;
  38.                 richTextBox2->Text += Convert::ToString(n + "\t" + h + "\t\t" + I1.ToString(".000") + "\n");
  39.             }
  40.         S = I1;
  41.     }
  42.     private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
  43.         double a = Convert::ToDouble(textBox7->Text);
  44.         double b = Convert::ToDouble(textBox8->Text);
  45.         double eps = Convert::ToDouble(textBox9->Text);
  46.         richTextBox2->Text = Convert::ToString("\ty1(x)=2^x^2\n");
  47.         richTextBox2->Text += Convert::ToString("n\th\t\tI\n");
  48.         double S1 = 0, S2 = 0;
  49.         smps(a, b, eps, true, S1);
  50.         richTextBox2->Text += Convert::ToString("\n\ty2(x)=cos(x^2)+1\n");
  51.         richTextBox2->Text += Convert::ToString("n\th\t\tI\n");
  52.         smps(a, b, eps, false, S2);
  53.         label2->Text = Convert::ToString("Площадь между функциями:\n" + S2.ToString(".000") + "-" + S1.ToString(".000") + " = " + (S2 - S1).ToString(".000") + "(м^2)");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement