Пусть - какое-то разбиение отрезка [a, b]. Формулой левых прямоугольников называется приближение
Часто выбирают равномерное разбиение, в котором все точки расположены на одинаковом расстоянии h = (b - a) / n, при этом .
Реализация (PascalABC.NET): функция int_lr принимает подинтегральную функцию, левую и правую границы отрезка интегрирования и количество отрезков в разбиения. В основной программе интеграл вычисляется для n = 1, 2, 4, 8, ..., 1024, выводится n, результат численного интегрирования и разность между полученным значением и точным значением интеграла. Можно заметить, что при увеличении n в 2 раза ошибка уменьшается примерно в 2 раза.
function int_lr(f: real-> real; l, r: real; n: integer): real;
begin
var h := (r - l) / n;
var s := 0.To(n - 1).Select(i -> f(l + i * h)).Sum;
result := s * h;
end;
const exact = 1250 / 3;
begin
var n := 1;
for var _ := 1 to 11 do
begin
var int := int_lr(x -> (x - 5) ** 2 * (10 - x), 0, 10, n);
writeln(n:4, int:9:3, abs(int - exact):9:3);
n := 2 * n;
end;
end.
Вывод программы:
1 2500.000 2083.333
2 1250.000 833.333
4 781.250 364.583
8 585.938 169.271
16 498.047 81.380
32 456.543 39.876
64 436.401 19.735
128 426.483 9.816
256 421.562 4.896
512 419.111 2.445
1024 417.888 1.221
static void Main(string[] args)
{
Console.WriteLine("Введите первую строку");
string r1 = Console.ReadLine();
Console.WriteLine("Введите вторую строку");
string r2 = Console.ReadLine();
string newstring = "";
//Задание 1
string firstword = r2.Split()[0];//Находим первое слово
if (r1.ToLower().Contains(firstword)) //если строка Содержит первое слово(учитывается регистр)
newstring = r1.ToLower().Replace(firstword, "hello");//Заменяем искомое слово на hello
Console.WriteLine("Измененная строка 1: "+ newstring);
//Задание 2
Console.WriteLine("Длина первой строки: " + r1.Length);
if (r1.Length < 40)//если длина строки меньше 40
{
int x = 40 - r1.Length;//находим сколько символов не хватает до 40
newstring = r1.Insert(0, new string(' ', x));//вставляем х пробелов в нулевую позицию строки
Console.WriteLine("Длина дополненной строки: " + newstring.Length);
Console.WriteLine("Дополненная строка: " + newstring);
}
Console.ReadLine();
}