Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 6, 7, 8.docx
Скачиваний:
0
Добавлен:
12.01.2020
Размер:
591.45 Кб
Скачать

Глава VI

Строки

Ивин П.А.

ЭИС-14

Вариант 6

Раздел 1

Задание:

написать программу, которая каждое встреченное сочетание 'аб' заменяет символом 'с'.

Код программы:

#pragma endregion

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

String^ str = textBox1->Text;

if (textBox1->Text->Length == 0)

MessageBox::Show("Не введены данные !");

textBox2->Text = str->Replace("аб", "с");

}

Результат работы программы:

Глава VI

Строки

Ивин П.А.

ЭИС-14

Вариант 6

Раздел 2

Задание: текст начинается с некоторой ненулевой цифры, за которой следуют только буквы, и их количество равно числовому значению цифры.

Код программы:

#pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

String^ str = textBox1->Text;

Char s1 = str[0];

String^ s2;

s2 = str->Substring(1);

int len = s2->Length;

if ((s1 <= '9') && (s1 > '0') && (len == s1 - 48)) rB1->Checked = true;

else rB2->Checked = true;

}

Результат работы программы:

Глава VII

Подпрограммы

Ивин П.А.

ЭИС-14

Вариант 6

Раздел 2

Задание: Заданы три матрицы А(второго порядка), В(третьего порядка) и С(четвертого порядка). Выяснить и напечатать, сколько из них являются симметричными (Матрица называется симметричной, если транспонированная матрица равна исходной). Транспонирование матрицы оформить в виде процедуры.

Код программы:

#pragma endregion

int TRe(int a, int b, int dT, double **massB)

{

dT = massB[a][b]*massB[a+1][b+1]*massB[a+2][b+2] + massB[a][b + 1] * massB[a+1][b+2]*massB[a+2][b]+massB[a+1][b]*massB[a][b+2]*massB[a+2][b+1] - massB[a+2][b]*massB[a+1][b+1]*massB[a][b+2] - massB[a][b+1]*massB[a+2][b+2]*massB[1][0] -massB[0][0]*massB[1][2]*massB[2][1]; // вычисление определителя третьего порядка методом треугольников

return dT;

}

void form(double **massA, double **massB, double **massC)

{

int dA;

int dB, dC, dT;

while (dA == 0)

{

for (int i = 0; i < 2; i++)

for (int j = 0; j < 2; j++)

massA[i][j] = rand() % 2;

dA = massA[0][0] * massA[1][1] - massA[0][1] * massA[1][0];

}

while (dB == 0)

{

for (int i = 0; i < 3; i++)

for (int j = 0; j < 3; j++)

massB[i][j] = rand() % 2;

// (rand() % 500) /10.0 (для проверки используем целочисленные массивы)

dB=TRe(0, 0, dT, massB);

}

while (dC == 0)

{

for (int i = 0; i < 4; i++)

for (int j = 0; j < 4; j++)

massC[i][j] = rand() % 2;

dC = massC[0][0] * TRe(0,0, dT, massC) - massC[0][1] * TRe(0, 1, dT, massC) + massC[0][2] * TRe(1, 0, dT, massC) - massC[0][3] * TRe(1, 1, dT, massC);

}

}

void tr(double **massA, double **massB, double **massC, double **trA, double **trB, double **trC)

{

int k = 0, A = 0, B = 0, C = 0;

for (int i = 0; i < 2; i++)

for (int j = 0; j < 2; j++)

trA[j][i] = massA[i][j];

for (int i = 0; i < 2; i++)

for (int j = 0; j < 2; j++)

if (trA[i][j] == massA[i][j]) A ++;

if (A == 4) k++;

for (int i = 0; i < 3; i++)

for (int j = 0; j < 3; j++)

trB[j][i] = massB[i][j];

for (int i = 0; i < 3; i++)

for (int j = 0; j < 3; j++)

if (trB[i][j] == massB[i][j]) B ++;

if (B == 9) k++;

for (int i = 0; i < 4; i++)

for (int j = 0; j < 4; j++)

trC[j][i] = massC[i][j];

for (int i = 0; i < 4; i++)

for (int j = 0; j < 4; j++)

if (trC[i][j] == massC[i][j]) C ++;

if (C == 16) k++;

textBox1->Text = Convert::ToString(k);

}

void show(double **massA, double **massB, double **massC)

{

dataGridView1->TopLeftHeaderCell->Value = "Матрица A";

for (int i = 0; i < 2; i++)

for (int j = 0; j < 2; j++)

{

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 = "Матрица B";

for (int i = 0; i < 3; i++)

for (int j = 0; j < 3; j++)

{

dataGridView2->Columns[j]->HeaderCell->Value = Convert::ToString(j + 1);

dataGridView2->Rows[i]->HeaderCell->Value = Convert::ToString(i + 1);

dataGridView2->Rows[i]->Cells[j]->Value = massB[i][j];

}

dataGridView3->TopLeftHeaderCell->Value = "Матрица C";

for (int i = 0; i < 4; i++)

for (int j = 0; j < 4; j++)

{

dataGridView3->Columns[j]->HeaderCell->Value =Convert::ToString(j + 1);

dataGridView3->Rows[i]->HeaderCell->Value =Convert::ToString(i + 1);

dataGridView3->Rows[i]->Cells[j]->Value = massC[i][j];

}

}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

double **massA = new double *[2];

double **massB = new double *[3];

double **massC = new double *[4];

double **trA = new double *[2];

double **trB = new double *[3];

double **trC = new double *[4];

for (int i = 0; i < 2; i++)

{

massA[i] = new double[2];

trA[i] = new double[2];

}

for (int i = 0; i < 3; i++)

{

massB[i] = new double[3];

trB[i] = new double[3];

}

for (int i = 0; i < 4; i++)

{

massC[i] = new double[4];

trC[i] = new double[4];

}

dataGridView1->ColumnCount = 2;

dataGridView1->RowCount = 2;

dataGridView2->ColumnCount = 3;

dataGridView2->RowCount = 3;

dataGridView3->ColumnCount = 4;

dataGridView3->RowCount = 4;

form(massA, massB, massC);

tr(massA,massB,massC, trA,trB,trC);

show(massA, massB, massC);

dataGridView1->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);

dataGridView1->AutoResizeColumns();

dataGridView2->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);

dataGridView2->AutoResizeColumns();

dataGridView3->AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders);

dataGridView3->AutoResizeColumns();

}

Соседние файлы в предмете Информатика