D
develish15
Само задание тут
написала программу, но надо исправить 25строчку. (эту
)
Сама прога:
Знаю что нужно создавать некий массив x[n] чисел в диапазоне a-b. затем в формулу подставлять x. так:
При этом нужно сделать метод заполнения массива x[n] числами от a до b. И в методы функций нужно передавать double[] x.
А как реализовать не могу понять...подскажите пожалуйста...
Ссылка скрыта от гостей
, написала программу, но надо исправить 25строчку. (эту
Код:
for (int i = a; i < b; i++)
{
L += Math.Sqrt( ( f( i + 1 ) - f( i ) ) * ( f( i + 1 ) - f( i )) + ( (i + 1) - i ) * ( (i + 1) - i ) );
}
Сама прога:
Код:
class Program
{
//Объявление переменной функционального типа (делегата)
delegate double fun(double x);
//Функции, которые будут передаваться посредством делегата
static double F1(double x)
{
return x * x + 2 * Math.Log( 1 + x * x );
}
static double F2(double x)
{
return x * Math.Log( Math.Abs( x * x - 2 * x ) );
}
static double F3(double x)
{
return ( x * x + 2 * x - 3 ) * Math.Exp( -x );
}
//Вычисление длины дуги
static double Line(int a, int b, fun f)
{
double L = 0;
for (int i = a; i < b; i++)
{
L += Math.Sqrt( ( f( i + 1 ) - f( i ) ) * ( f( i + 1 ) - f( i )) + ( (i + 1) - i ) * ( (i + 1) - i ) );
}
return L;
}
//Основной модуль
static void Main(string[] args)
{
Console.Write("Введите a=");
int a = int.Parse(Console.ReadLine());
Console.Write("Введите b=");
int b = int.Parse(Console.ReadLine());
Console.Clear();
Console.WriteLine("Введенные значения:\n a={0:d}\n b={1:d}\n\n", a, b);
double res1 = 0, res2 = 0, res3 = 0, maxres = 0;
res1 = Line( a, b, F1 );
res2 = Line(a, b, F2);
res2 = Line(a, b, F3);
if (res1 > res2) maxres = res1;
else maxres = res2;
if (maxres < res3) maxres = res3;
Console.WriteLine("Длины дуг:");
Console.WriteLine(" при F1: {0:f4}", res1);
Console.WriteLine(" при F2: {0:f4}", res2);
Console.WriteLine(" при F3: {0:f4}\n", res3);
Console.WriteLine(" Наибольшая длина дуги: {0:f4}\n", maxres);
Console.ReadLine();
}
}
}
Знаю что нужно создавать некий массив x[n] чисел в диапазоне a-b. затем в формулу подставлять x. так:
C++:
for (int i = 0; i < n-1; i++)
{
L += Math.Sqrt( ( f( x[i + 1] ) - f( x[i] ) ) * ( f( x[i + 1] ) - f( x[i] )) + ( (x[i + 1]) - x[i] ) * ( (x[i + 1]) - x[i] ) )
};
При этом нужно сделать метод заполнения массива x[n] числами от a до b. И в методы функций нужно передавать double[] x.
А как реализовать не могу понять...подскажите пожалуйста...