Индивидуальное задание № 2
Постановка задачи
Создать форму, программный код которой позволяет осуществить решение задачи:” Найдите в данном массиве среднее арифметическое элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу”.
Входные данные:
m, n–аргументы функции, целочисленные числа (int).
Выходные данные:
Sum1, sum2, sum3, sum4–вычисленные значения заданной функции, целочисленные числа (int).
Создание интерфейса
На Рисунок 4 представлен интерфейс формы для решения задания № 2.
Рисунок 4 –Интерфейс формы для задания № 2
Разработка блок-схемы
На Рисунок 5 представлен алгоритм решения задачи в виде блок-схемы.
Рисунок 5– Блок-схема к заданию №2
Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания №2 в соответствии алгоритмом, представленном в виде блок-схемы на Рисунок 5 соответствует процедура button1_Click(), button2_Click(), а также функции Grid_on(DataGridView dataGridView).
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Лабораторная_работа__6
{
public partial class Индивидуальное_задание_2 : Form
{
public Индивидуальное_задание_2()
{
InitializeComponent();
}
int m, n;
int[,] massiv;
private void Grid_on(DataGridView dataGridView)
{
m = int.Parse(textBox1.Text);
n = int.Parse(textBox2.Text);
dataGridView.RowHeadersVisible = false;
dataGridView.ColumnHeadersVisible = false;
dataGridView.RowCount = m;
dataGridView.ColumnCount = n;
for (int j = 0; j < n; j++)
{
dataGridView.Columns[j].Width = 40;
}
}
private void button1_Click_1(object sender, EventArgs e)
{ Grid_on(dataGridView1);
}
private void button2_Click(object sender, EventArgs e)
{
massiv = new int[m, n];
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
massiv[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
}
}
float sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0;
for (int i = 0; i < n; i++)
{
sum1 += massiv[0, i];
sum2 += massiv[m - 1, i];
}
for (int i = 0; i < m; i++)
{
sum3 += massiv[i, 0];
sum4 += massiv[i, n - 1];
}
textBox3.Text = Convert.ToString(sum1 / n);
textBox4.Text = Convert.ToString(sum2 / n);
textBox5.Text = Convert.ToString(sum3 / m);
textBox6.Text = Convert.ToString(sum4 / m);
}
}
}
Рисунок 6 представлен результат вычислений.
Рисунок 6 –Пример выполнения задания № 2
Индивидуальное задание №3
Постановка задачи
Создать форму, программный код которой позволяет осуществить решение задач:” Поменять местами первый и последний столбцы”.
Входные данные:
m, n–аргументы функции, целочисленные числа (int).
Выходные данные:
massiv []- массив чисел, от которого зависит результат вычислений, целочисленный массив (int)
Создание интерфейса
На Рисунок 7 представлен интерфейс формы для решения задания № 3.
Рисунок 7 –Интерфейс формы для задания № 3
Разработка блок-схемы
На Рисунок 8 представлен алгоритм решения задачи в виде блок-схемы.
Рисунок 8– Блок-схема к заданию №3
Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания №3 в соответствии алгоритмом, представленном в виде блок-схемы на соответствует процедура button1_Click (), button2_Click().
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Лабораторная_работа__6
{
public partial class Индивидуальное_задание_3 : Form
{
public Индивидуальное_задание_3()
{
InitializeComponent();
}
int n, m;
int[,] massiv;
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < m; i++)
{ int tmp = massiv[i, 0];
massiv[i, 0] = massiv[i,n-1];
massiv[i, n-1] = tmp;
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
textBox4.Text += Convert.ToString(massiv[i, j]) + "\t";
}
textBox4.Text += "\r\n";
}
}
private void button1_Click(object sender, EventArgs e)
{
m = Convert.ToByte(textBox1.Text);
n = Convert.ToByte(textBox2.Text);
massiv = new int[m, n];
Random rnd = new Random();
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
massiv[i, j] = rnd.Next(-10, 10);
textBox3.Text += Convert.ToString(massiv[i, j]) + "\t";
}
textBox3.Text += "\r\n";
}
}
}
}
На Рисунок 9 представлен результат вычислений.
Рисунок 9– Пример выполнения задания № 3
Вывод
В данной лабораторной работе по изучению принципов использования современной системы Microsoft Visual Studio 2019 для реализации типовых алгоритмов обработки двумерных массивов с использованием объектно-ориентированного языка программирования C#. Был создан и протестирован многооконный проект, каждая форма которого была предназначена для решения одной задачи из индивидуальных заданий по варианту №10. Основные этапы разработки проекта и результаты выполнения описаны и представлены в виде скриншотов в пояснительной записке.
