Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Объясните действия выполненные в программе


Автор: Maxim89rus 9.6.2013, 23:54
Объясните пожалуйста все выполненные действия в программе. Спасибо! 
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Интеграл
{

class Интеграл
{
static double d = 0.25;
struct Integral
{
public double a, b;
public int m;
public Integral(double ina, double inb, int inm)
{
if (ina < inb) { a = ina; b = inb; }
else { b = ina; a = inb; }
m = inm;
}
public override string ToString()
{
double Delta = (ИнтПрямоугольники - ИнтЛейбниц) / ИнтЛейбниц * 100;
Delta = Math.Abs(Delta);
string s = String.Format(ИнтЛейбниц+"\t\t"+ ИнтПрямоугольники + "\t"+Delta.ToString("F5") + "\t\t\t"+m*d);
return s;
}
public double fx(double x)
{ return Math.Sin(x); }
public double Fx(double x)
{ return -Math.Cos(x); }
public double h
{
get
{ return (b - a) / m / d; }
}
public double ИнтЛейбниц
{
get
{ return Fx(b) - Fx(a); }
}
public double ИнтПрямоугольники
{
get
{
double Sx = 0;
int k = 1; ;
for (double i = a; i < b; k++)
{
Sx += fx((i + a + (h * k)) /2);
i = a + h * k;
}
double max = 0;
for (double i = a; i < b; i++)
if ((-Math.Sin(i)) > max) max = Math.Abs(Math.Sin(i));
return h*Sx - max*Math.Pow((b - a), 3) / (24 * Math.Pow(m, 2));
}
}

}
static void Main()
{
Console.WriteLine("Точное значение\tПриближённое значение\tПогрешность\tКратность интегрирования");
{
Integral obj = new Integral(-Math.PI/2, 0, 300);
for (d = 0.25; d <= 1.5; d += 0.25)
{
Console.WriteLine(obj.ToString());
Console.WriteLine();
}
Console.ReadKey(true);
}
}
}
}

Автор: gambit 10.6.2013, 10:47
Модератор: Пожалуйста, конкретизируйте вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)