Глава 3
.docxГлава III
Циклы
ЭИС – 14
Ивин Павел
Вариант 6
Раздел 1
Условие задачи: распечатать таблицу значений функции F для x, изменяющегося в интервале от x0 до xk с шагом h. Значения x0, xk, h вводятся пользователем.
Код программы:
private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
DataTable ^table;
DataColumn ^column;
DataRow ^row;
table = gcnew DataTable();
String^ nameFirstColumn = "x";
String^ nameSecondColumn = "F";
column = gcnew DataColumn(nameFirstColumn, Double::typeid);
table->Columns->Add(column);
column = gcnew DataColumn(nameSecondColumn, String::typeid);
table->Columns->Add(column);
double x0, xk, F, h, x, const b = 4;
Convert::ToString(x0 = Convert::ToDouble(textBox1->Text));
Convert::ToString(xk = Convert::ToDouble(textBox2->Text));
Convert::ToString(h = Convert::ToDouble(textBox3->Text));
for (x = x0; x <= xk; x += h)
{
if (x < 2) F = atan(x) + sqrt(abs(x - 2));
else if (x == 2) F = (5 - pow(b, 2) + cos(3.14*x));
else F = (log(x - 2)*sin(x/2));
row = table->NewRow();
row[nameFirstColumn] = x;
row[nameSecondColumn] = F;
table->Rows->Add(row);
}
dataGridView1->DataSource = table;
Примеры вывода программы:
Раздел 2
Условие задачи: Для x, изменяющегося в интервале от x0 до xk с шагом h, вычислить значения бесконечной суммы S(x) с точностью e=0.00001 и функции y(x).
Код программы:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
DataTable ^table;
DataColumn ^column;
DataRow ^row;
table = gcnew DataTable();
String^ nameFirstColumn = "x";
String^ nameSecondColumn = "y";
String^ nameThirdColumn = "S";
column = gcnew DataColumn(nameFirstColumn, Double::typeid);
table->Columns->Add(column);
column = gcnew DataColumn(nameSecondColumn, String::typeid);
table->Columns->Add(column);
column = gcnew DataColumn(nameThirdColumn, Double::typeid);
table->Columns->Add(column);
double x0, x, xk, h, u, S, y, t = 1E-5;
int n;
Convert::ToString(x0 = Convert::ToDouble(textBox1->Text));
Convert::ToString(xk = Convert::ToDouble(textBox2->Text));
Convert::ToString(h = Convert::ToDouble(textBox3->Text));
for (x = x0; x <= xk; x += h)
{
for (x = x0; x <= xk; x += h)
{
S = 0;
u = 1;
n = 0;
y = cos(x);
while (abs(u) > t)
{
S += u;
u = u * (-pow(x, 2)) / ((2 * n + 1)*(2 * n + 2));
n++;
}
row = table->NewRow();
row[nameFirstColumn] = x;
row[nameSecondColumn] = y;
row[nameThirdColumn] = S;
table->Rows->Add(row);
}
}
dataGridView1->DataSource = table;
}
Примеры вывода программы: