profile
Размещено 5 лет назад по предмету Информатика от Лиля160197

Перевод кода из Pascal в C# (Консольное приложение)
Задача: написать программу, которая позволяет вычислять определенный интеграл с помощью формулы Ньютона-Котеса.

код:
{
Программа для вычисления интеграла
численным методом Ньютона-Котеса открытого типа 4-го порядка
с заданной погрешностью вычислений
}
program NewtonCotes;

{подинтегральная функция}
function F(x: real): real;
begin
F := sin(x);
end;

{вычисление интеграла на отрезке [a, b] методом Ньютона-Котеса открытого типа 4-го порядка}
function NewtonCotesOpen4(a, b: real): real;
const
n = 4; {порядок метода}
c: array [1..n - 1] of real = (2, -1, 2); {весовые коэффициенты}
K = 3.0; {делитель}
var
Res: real;
h: real; {величина шага}
x: real;
i: integer;
begin
h := (b - a) / n;
Res := 0;
for i := 1 to n - 1 do
begin
x := a + i * h;
Res := Res + c[i] * F(x);
end;
NewtonCotesOpen4 := Res * (b - a) / K;
end;

{вычисление интеграла на отрезке [a, b] как суммы интегралов на n подинтервалах}
function SumSubIntervals(a, b: real; n: integer): real;
var
h: real;
i: integer;
begin
SumSubIntervals := 0;
h := (b - a) / n;
for i := 1 to n do
SumSubIntervals := SumSubIntervals + NewtonCotesOpen4(a + pred(i) * h, a + i * h);
end;

var
a, b, {границы интегрирования}
Eps: real; {погрешность численного интегрирования}
n: integer; {количество подинтервалов интегрирования}
Icur, {значение интеграла на текущем шаге итерации}
Ipre: real; {значение интеграла на предыдущем шаге итерации}

begin
a := 0;
b := Pi;
Eps := 0.00001;

n := 1;
Icur := SumSubIntervals(a, b, n);
repeat
Ipre := Icur;
n := 2 * n; {увеличиваем количество подинтервалов}
Icur := SumSubIntervals(a, b, n);
WriteLn('I=', Icur: 10: 8, ' при n=', n, ', e=', Abs(Icur - Ipre): 10: 8);
until Abs(Icur - Ipre) < Eps;
writeln('------------------------------------------------------');
WriteLn('I=', Icur: 10: 8, ' при n=', n, ', e=', Abs(Icur - Ipre): 10: 8);
end.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.