Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6.docx
Скачиваний:
1
Добавлен:
17.10.2023
Размер:
563.91 Кб
Скачать

-

-

-

+

+

-

+

+

-

-

+

+

-

-

+

+

Рисунок 2 – Блок-схемы к заданию 1

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

  1. Индивидуальное задание 2

    1. Постановка задачи

Создайте приложение, позволяющее найти в данном массиве сумму элементов, расположенных ниже побочной диагонали.

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 представлен алгоритм решения задачи в виде блок-схемы.

-

+

Рисунок 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. Основные этапы разработки проекта и результаты выполнения описаны и представлены в виде скриншотов в пояснительной записке.