- •Содержание
- •1 Индивидуальное задание 1
- •Постановка задачи
- •1.2 Разработка интерфейса
- •1.3 Разработка блок-схемы
- •1.4 Разработка программного кода
- •Индивидуальное задание 2
- •Постановка задачи
- •2.2 Разработка интерфейса
- •2.3 Разработка блок-схемы
- •2.4 Разработка программного кода
- •3 Индивидуальное задание 3
- •3.1 Постановка задачи
- •3.2 Разработка интерфейса
- •3.3 Разработка блок-схемы
- •3.4 Разработка программного кода
- •4 Вывод:
-
-
-
+
+
-
+
+
-
-
+
+
-
-
+
+
1.4 Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания 1 в соответствие с алгоритмом, представленном в виде блок-схем на рисунке 2, соответствует процедуры button1_Click(), button2_Click(). А также представлены блок-схемы методов пользователя razmet, random, d.
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 лаба_4
{
public partial class ИндЗадание_1 : Form
{
public ИндЗадание_1()
{
InitializeComponent();
}
int m, n, l, max, min;
int[,] mas;
private void button1_Click(object sender, EventArgs e)
{
button2.Enabled = true;
m = Convert.ToInt32(textBox1.Text);
n = Convert.ToInt32(textBox2.Text);
mas = new int[m, n];
Class1.razmet(m, n, dataGridView1);
mas = Class1.random(m, n, mas);
Class1.d(m, n, mas, dataGridView1);
}
private void button2_Click(object sender, EventArgs e)
{
l = Convert.ToInt32(textBox3.Text);
max = -11;
min = 11;
for(int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (max < mas[i, j])
{
max = mas[i, j];
}
if (min > mas[i, j])
{
min = mas[i, j];
}
}
}
textBox4.Text = Convert.ToString(max);
textBox5.Text = Convert.ToString(min*l);
int[] a = new int[n * m];
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
a[i * n + j] = mas[i, j];
}
}
Array.Sort(a);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
mas[i, j] = a[i * n + j];
}
}
Class1.razmet(m, n, dataGridView2);
Class1.d(m, n, mas, dataGridView2);
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
На
рисунке 3 представлен результат
вычислений
Рисунок 3 – Результат вычислений задания 1
Индивидуальное задание 2
Постановка задачи
Создайте приложение, позволяющее найти в данном массиве сумму элементов, расположенных ниже побочной диагонали.
2.2 Разработка интерфейса
На рисунке 4 представлен интерфейс формы для решения задания 2.
Рисунок 4 – Интерфейс формы для задания 2
В таблице 2 перечислены элементы управления, которые были использованы при создании интерфейса.
Таблица 2 – Элементы управления формы к заданию 2
Элемент управления |
Пояснение |
ИндЗадание2 |
Окно для решения задания 2 |
TextBox1 |
Текстовое поле для ввода количества строк массива |
TextBox2 |
Текстовое поле для ввода количества столбцов массива |
TextBox3 |
Текстовое поле для вывода суммы |
Label1, Label2, Label3 |
Метки пояснений |
Button1 |
Кнопка для запуска программного кода для генерации массива |
Button2 |
Кнопка для запуска программного кода для преобразования массива |
Button3 |
Кнопка для запуска программного кода для закрытия формы |
DataGridView1 |
Таблица для вывода исходного массива |
2.3 Разработка блок-схемы
На рисунке 5 представлен алгоритм решения задачи в виде блок-схем.
-
-
-
+
+
+
Рисунок 5 – Блок-схемы к заданию 2
2.4 Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания 2 в соответствие с алгоритмом, представленном в виде блок-схем на рисунке 5, соответствует процедурs 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 лаба_4
{
public partial class ИндЗадание_2 : Form
{
public ИндЗадание_2()
{
InitializeComponent();
}
int m, n, sum = 0;
int[,] mas;
private void button1_Click(object sender, EventArgs e)
{
button2.Enabled = true;
m = Convert.ToInt32(textBox1.Text);
n = Convert.ToInt32(textBox2.Text);
mas = new int[m, n];
Class1.razmet(m, n, dataGridView1);
mas = Class1.random(m, n, mas);
Class1.d(m, n, mas, dataGridView1);
}
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j > n - i - 1) { sum += mas[i, j]; }
}
}
textBox3.Text = Convert.ToString(sum);
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}}
На рисунке 6 представлен результат вычислений
Рисунок 6 – Пример выполнения задания 2
3 Индивидуальное задание 3
3.1 Постановка задачи
Создайте приложение, позволяющее поменять местами третий и последний столбцы
3.2 Разработка интерфейса
На рисунке 7 представлен интерфейс формы для решения задания 3.
Рисунок 7 – Интерфейс формы для задания 3
В таблице 3 перечислены элементы управления, которые были использованы при создании интерфейса.
Таблица 3 – Элементы управления формы к заданию 3
Элемент управления |
Пояснение |
ИндЗадание3 |
Окно для решения задания 3 |
TextBox1 |
Текстовое поле для ввода количества строк массива |
TextBox2 |
Текстовое поле для ввода количества столбцов массива |
DataGridView1 |
Таблица для вывода исходного массива |
DataGridView2 |
Таблица для вывода преобразованного массива |
Label1, Label2 |
Метки пояснений |
Button1 |
Кнопка для запуска программного кода для генерации массива |
Button2 |
Кнопка для запуска программного кода для преобразования массива |
Button3 |
Кнопка для запуска программного кода для закрытия формы |
3.3 Разработка блок-схемы
-
-
+
Рисунок 8 – Блок-схема к заданию 3
3.4 Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания 3 в соответствие с алгоритмом, представленном в виде блок-схемы на рисунке 8, соответствует процедура 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 лаба_4
{
public partial class ИндЗадание_3 : Form
{
public ИндЗадание_3()
{
InitializeComponent();
}
int m, n;
int[,] mas;
private void button1_Click(object sender, EventArgs e)
{
button2.Enabled = true;
m = Convert.ToInt32(textBox1.Text);
n = Convert.ToInt32(textBox2.Text);
mas = new int[m, n];
Class1.razmet(m, n, dataGridView1);
mas = Class1.random(m, n, mas);
Class1.d(m, n, mas, dataGridView1);
}
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < m; i++)
{
int tmp = mas[i, 2];
mas[i, 2] = mas[i, n - 1];
mas[i, n - 1] = tmp;
}
Class1.razmet(m, n, dataGridView2);
Class1.d(m, n, mas, dataGridView2);
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
На рисунке 9 представлен результат вычислений
Рисунок 9 – Пример выполнения задания 3
4 Вывод:
В данной лабораторной работе по изучению обработке двумерных массивов на языке программирования С# был создан и протестирован многооконный проект, каждая форма которого была предназначена для решения одной задачи из индивидуальных заданий по варианту №15. Основные этапы разработки проекта и результаты выполнения описаны и представлены в виде скриншотов в пояснительной записке.