3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication18
{
class Program
{
static void fx(double xsled, double ysled, double ypred, double xpred, double x, ref double fx)
/*!!!*/ { fx = ypred + ((ysled - ypred) / (xsled - xpred)) * (x - xpred); } // это-формула линейной интерполяции из методички 108стр
static void Main(string[] args)
{
double[,] xy = ////////////
{
/*x*/ { 927, 1077, 1227, 1377, 1527, 1677, 1827, 1977, 2120, 2125, 2127 }, //исходные
/*y*/ { 75, 69, 63, 41, 20, 14, 8, 6, 4.2, 4, 4} //данные
}; ///////////
Console.WriteLine(xy[0, 10]);
double y = 0;
int a = 0;
Console.WriteLine("введите Х от 28 до 1826");
double x = double.Parse(Console.ReadLine());
Console.WriteLine();
for (int i = 0; i < 10; i++)
////////////////////////////////
{ //
if ((xy[0, i] - x) * (xy[0, i + 1] - x) <= 0) // этим циклом я ищу
{
// между какими Х(i) и X(i-1)
a = i; // расположенно введенное нами значение.
} //
}
////////////////////////////////
fx(xy[0, a + 1], xy[1, a + 1], xy[1, a], xy[0, a], x, ref y); // подставив сюда значения, между которых находится наш Х, получим интересующее нас значение F(X)
Console.WriteLine(y);
Console.ReadLine();
}
}
}