Нужно решить лабу на c# в visual studio
Решить лабу на c#(задание на фото).
Пример кода для похожей задачи ниже:
(*Модуль Form1.cs *)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Task_4
{
public partial class Form1 : Form
{
public Form1()
{ InitializeComponent();
}
private void txtBoxN_TextChanged(object sender,EventArgs e)
{ // установка размера матрицы и DataGridView
int i;
N = Int32.Parse(txtBoxN.Text);
DataTable matr = new DataTable("matr");
DataColumn[] cols = new DataColumn[N];
for (i = 0; i
{
cols = new DataColumn(i.ToString());
matr.Columns.Add(cols);
}
for ( i = 0; i
{
DataRow newRow;
newRow = matr.NewRow();
matr.Rows.Add(newRow);
}
datGrdViewIn.DataSource = matr;
for (i = 0; i
datGrdViewIn.Columns.Width = 50;
}
// обработка матрицы
private void btnStart_Click(object sender, EventArgs e)
{
datGrdViewRes.Visible = false;
MatrMake mt = new MatrMake(N);
mt.GridToMatrix(datGrdViewIn);
if (mt.DelStr())
MessageBox.Show("Все строки содержат нули");
else
{
datGrdViewRes.Visible = true;
mt.MatrixToGrid(datGrdViewRes);
}
}
}
}
----------------------------------------------------------------------
Модуль MatrMake.cs
(Условие:Удалить из матрицы строки, содержащие нули)
using System;
using System.Windows.Forms;
using System.Data;
namespace Task_4
{
class MatrMake
{ int n_str, //количество строк
n_col; //количество столбцов
int[,] matrix; // обрабатываемая матрица
public MatrMake(int n) // конструктор
{ n_str = n; // на входе матрица квадратная
n_col = n;
matrix = new int[n, n];
}
//заполнение матрицы из DataGridView
public void GridToMatrix(DataGridView dgv)
{
DataGridViewCell txtCell;
for(int i=0;i
{
for(int j=0; j
{
txtCell = dgv.Rows.Cells[j];
string s = txtCell.Value.ToString();
if (s == "")
matrix[i, j] = 0;
else
matrix[i, j] = Int32.Parse(s);
}
}
}
//вывод матрицы в DataGridView
public void MatrixToGrid(DataGridView dgv)
{
//установка размеров
int i;
DataTable matr = new DataTable("matr");
DataColumn[] cols = new DataColumn[n_col];
for (i = 0; i
{
cols = new DataColumn(i.ToString());
matr.Columns.Add(cols);
}
for (i = 0; i
{
DataRow newRow;
newRow = matr.NewRow();
matr.Rows.Add(newRow);
}
dgv.DataSource = matr;
for (i = 0; i
dgv.Columns.Width = 50;
// занесение значений
DataGridViewCell txtCell;
for ( i = 0; i
{
for (int j = 0; j
{
txtCell=dgv.Rows.Cells[j];
txtCell.Value= matrix[i, j].ToString() ;
}
}
}
// удаление строк, содержащих нули
public bool DelStr() //true, если результат пустая матрица
{
int i, j;
bool ok;
i = 0;
while ( i
{
ok = true;
for (j = 0; j
if (matrix[i, j] == 0)
ok = false;
if (!ok)
{
//удалить i строку
for (int k = i; k
for (j = 0; j
matrix[k, j] = matrix[k + 1, j];
n_str--;
}
else i++;
}
if (n_str == 0)
return true;
else return false;
}
}
}
Заявки фрилансеров

