Отчёты 2 семестр
.docxГлава III
Циклы
Ивин П.А.
ЭИС-14
Вариант 6
Задание:
Распечатать таблицу значений функции F для x, изменяющегося в интервале от x0 до xk с шагом h. Значения x0, xk, h вводятся пользователем.
Код программы:
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;
}
Результат работы программы:
Глава IV
Одномерные массивы
Ивин П.А.
ЭИС-14
Вариант 6
Задание:
Код программы: #pragma endregion private: Void form(int *mass)
{
srand(time(NULL));
int sum1 = 0;
for (int i = 0; i < 10; i++)
{
mass[i] = rand() % 100 - 50;
sum1 += pow(-1, i + 1)*mass[i];
}
textBox1->Text = Convert::ToString(sum1);
}
private: void show(int *mass)
{
for (int i = 0; i < 10; i++)
{
dataGridView1->Rows[0]->HeaderCell->Value = "Вектор a:";
dataGridView1->Columns[i]->HeaderCell->Value = Convert::ToString(i + 1);
dataGridView1->Rows[0]->Cells[i]->Value = mass[i];
}
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
int mass[10];
dataGridView1->ColumnCount = 10;
dataGridView1->RowCount = 1;
form(mass);
show(mass);
dataGridView1->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);
dataGridView1->AutoResizeColumns();
}
Результат работы программы:
Глава V
Двумерные массивы
Ивин П.А.
ЭИС-14
Вариант 6
Раздел 1
Задание: Условие задачи: дана матрица А(nxn). Написать программу нахождения матрицы Ат*А, где Ат - транспонированная матрица. Код программы: #pragma endregion
private: void form(int size, int **massA, int **massAt)
{
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
massA[i][j] = rand() % 100 - 50;
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
massAt[j][i] = massA[i][j];
}
private: void formAtA(int size, int **massA, int **massAt, int **massAtA)
{
for (int i = 0; i < size; i++)
{
int AtA = 0;
for (int j = 0; j < size; j++)
{
for (int n = 0; n < size; n++)
AtA += massA[i][n] * massAt[n][j];
massAtA[i][j] = AtA;
}
}
}
private: void show(int size, int **massA, int **massAt, int **massAtA)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
dataGridView1->TopLeftHeaderCell->Value = "Матрица A";
dataGridView1->Columns[j]->HeaderCell->Value = Convert::ToString(j + 1);
dataGridView1->Rows[i]->HeaderCell->Value = Convert::ToString(i + 1);
dataGridView1->Rows[i]->Cells[j]->Value = massA[i][j];
dataGridView2->TopLeftHeaderCell->Value = "Матрица Aт";
dataGridView2->Columns[j]->HeaderCell->Value = Convert::ToString(j + 1);
dataGridView2->Rows[i]->HeaderCell->Value = Convert::ToString(i + 1);
dataGridView2->Rows[i]->Cells[j]->Value = massAt[i][j];
dataGridView3->TopLeftHeaderCell->Value = "Матрица Ат*А";
dataGridView3->Columns[j]->HeaderCell->Value = Convert::ToString(j + 1);
dataGridView3->Rows[i]->HeaderCell->Value = Convert::ToString(i + 1);
dataGridView3->Rows[i]->Cells[j]->Value = massAtA[i][j];
}
}
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int size = Convert::ToInt32(numericUpDown1->Value);
int **massA = new int *[size];
int **massAt = new int *[size];
int **massAtA = new int *[size];
for (int i = 0; i < size; i++) {
massA[i] = new int[size];
massAt[i] = new int[size];
massAtA[i] = new int[size];
}
dataGridView1->ColumnCount = size;
dataGridView1->RowCount = size;
dataGridView2->ColumnCount = size;
dataGridView2->RowCount = size;
dataGridView3->ColumnCount = size;
dataGridView3->RowCount = size;
form(size, massA, massAt);
formAtA(size, massA, massAt, massAtA);
show(size, massA, massAt, massAtA);
dataGridView1->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);
dataGridView1->AutoResizeColumns();
dataGridView2->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);
dataGridView2->AutoResizeColumns();
dataGridView3->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);
dataGridView3->AutoResizeColumns(); }
Результат работы программы:
Глава V
Двумерные массивы
Ивин П.А.
ЭИС-14
Вариант 6
Раздел 2
Задание:
Код программы:
#pragma endregion
private: void formA(int size, int **mass)
{
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
mass[i][j] = rand() % 100 - 50;
}
private: void formAy(int size, int **mass)
{
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
for (int k = 0; k < size-1; k++)
if (mass[k][j] < mass[k + 1][j]) std::swap(mass[k][j], mass[k + 1][j]);
}
private: void showA(int size, int **massA)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
dataGridView1->TopLeftHeaderCell->Value = "Матрица";
dataGridView1->Columns[j]->HeaderCell->Value = Convert::ToString(j + 1);
dataGridView1->Rows[i]->HeaderCell->Value = Convert::ToString(i + 1);
dataGridView1->Rows[i]->Cells[j]->Value = massA[i][j];
}
}
}
private: void showAy(int size, int **massA)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
dataGridView2->TopLeftHeaderCell->Value = "Матрица Ау";
dataGridView2->Columns[j]->HeaderCell->Value = Convert::ToString(j + 1);
dataGridView2->Rows[i]->HeaderCell->Value = Convert::ToString(i + 1);
dataGridView2->Rows[i]->Cells[j]->Value = massA[i][j];
}
}
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
int size = Convert::ToInt32(numericUpDown1->Value);
int **massA = new int *[size];
for (int i = 0; i < size; i++)
massA[i] = new int[size];
dataGridView1->ColumnCount = size;
dataGridView1->RowCount = size;
dataGridView2->ColumnCount = size;
dataGridView2->RowCount = size;
formA(size, massA);
showA(size, massA);
formAy(size, massA);
showAy(size, massA);
dataGridView1->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);
dataGridView1->AutoResizeColumns();
dataGridView2->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);
dataGridView2->AutoResizeColumns();
}
Результат работы программы: