Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Львівський національний університет імені Івана Франка

Факультет: електроніки та комп’ютерних технологій

Лабораторна робота №12


з курсу «Алгоритмізація та програмування»
«Визначений інтеграл із заданою точністю»

Виконав:
Ст. ФЕІ-11
Вовк Андрій

Перевірив:
Хвищун Іван Олександрович

Львів 2022
Звіт

Мета: Навчитись розв’язувати визначений інтеграл із заданою точністю у С++.

Текст програми

double f(float x)
{
double y;
y = 1 / (1 + x + x * x);
return y;
}
double sum(int m, double x, double w)
{
double s;
s = 0;
for (int i = 1; i <= m; i++)
{
s = s + f(x);
x = x + w;
}
return s;
}

private: System::Void textBox3_TextChanged(System::Object^ sender,


System::EventArgs^ e) {
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e) {
Close();
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e) {
double a = 0;
double b = 1;

double Eps = Convert::ToDouble(textBox1->Text);


int N = Convert::ToInt32(textBox2->Text);
double h = (b - a) / N;
double int_new, int_old = 0;
textBox6->Text = Convert::ToString(3.141593 / (3 * Math::Sqrt(3)));
switch (comboBox1->SelectedIndex)
{
case 0: int_new = h * sum(N, a + h / 2, h); break;
case 1: int_new = h * 0.5 * (f(a) + f(b) + 2 * sum(N - 1, a + h, h)); break;
case 2: int_new = h * (f(a) + f(b) + 4 * sum(N, a + h / 2, h) + 2 * sum(N - 1,
a + h, h)) / 6; break;
}
while (Math::Abs(int_new - int_old) > Eps)
{
int_old = int_new;
N = N + 1;
h = (b - a) / N;
switch (comboBox1->SelectedIndex)
{
case 0: {
int_new = h * sum(N, a + h / 2, h);
textBox3->Text = Convert::ToString(int_new);
textBox7->Text = Convert::ToString(N);
}break;
case 1: {
int_new = h * 0.5 * (f(a) + f(b) + 2 * sum(N - 1, a + h, h));
textBox4->Text = Convert::ToString(int_new);
textBox8->Text = Convert::ToString(N);
}break;
case 2: {
int_new = h * (f(a) + f(b) + 4 * sum(N, a + h / 2, h) + 2 *
sum(N - 1, a + h, h)) / 6;
textBox5->Text = Convert::ToString(int_new);
textBox9->Text = Convert::ToString(N);
}break;
}
}
}
Тестування

Висновок: Я навчився розв’язувати визначений інтеграл із заданою точністю у


С++.

You might also like