
ФГБОУ ВО Уфимский государственный авиационный технический университет
Кафедра Информатики
100 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
90 |
|
|
|
|
|
|
|
|
|
|
|
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пользовательское меню. Методы пользователя.
Обработка одномерных массивов.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к лабораторной работе по |
информатике |
1306.501610.000ПЗ |
(обозначение документа) |
Группа |
|
|
Фамилия, И., О. |
Подпись |
Дата |
Оценка |
||||
ИВТ-127б |
|
|||||||||
|
|
|||||||||
Студент |
Мустафина К. И. |
|
|
|
||||||
Консультант |
Зигангирова Ю. В. |
|
|
|
||||||
Принял |
Зигангирова Ю. В. |
|
|
|
Уфа 2021 г.
Содержание
Введение 3
1. Индивидуальное задание №1 4
1.1. Постановка задачи 4
1.2. Создание интерфейса 4
1.3. Разработка блок-схемы 5
1.4. Разработка программного кода 7
2. Индивидуальное задание № 2 10
2.1. Постановка задачи 10
2.2. Создание интерфейса 10
10
2.3. Разработка блок-схемы 11
2.4. Разработка программного кода 12
3. Индивидуальное задание №3 15
3.1. Постановка задачи 15
3.2. Создание интерфейса 15
3.3. Разработка блок-схемы 16
3.4. Разработка программного кода 16
Вывод 19
Введение
Лабораторная работа № 6 посвящена изучению принципов использования современной системы Microsoft Visual Studio 2019 для реализации типовых алгоритмов обработки двумерных массивов с использованием объектно-ориентированного языка программирования C#.
В лабораторной работе необходимо создать многооконный проект, каждая форма которого предназначена для решения одной задачи индивидуальных заданий по варианту № 10.
Задание 1. Создать форму, программный код которой позволяет осуществить решение задачи:
Определить сумму элементов массива с нечетными значениями индексов его элементов
Найти произведение максимальных элементов массива
Упорядочить массив по возрастанию элементов сверху вниз и слева направо
Задание 2. Создать форму, программный код которой позволяет осуществить решение задачи:” Найдите в данном массиве среднее арифметическое элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу”.
Задание 3. Создать форму, программный код которой позволяет осуществить решение задач:” Поменять местами первый и последний столбцы”.
Индивидуальное задание №1
Постановка задачи
Создать форму, программный код которой позволяет осуществить решение задачи:
Определить сумму элементов массива с нечетными значениями индексов его элементов
Найти произведение максимальных элементов массива
Упорядочить массив по возрастанию элементов сверху вниз и слева направо
Входные данные:
m, n–аргументы функции, целочисленные числа (int).
Выходные данные:
massiv[]- массив чисел, от которого зависит результат вычисления, и этот же массив, но в отсортированном виде, целочисленный массив (int).
kolvo–вычисленное значение заданной функции, целочисленное число (int).
Создание интерфейса
На Рисунок 1 представлен интерфейс формы для решения задания № 1.
Рисунок 1–Интерфейс формы для задания № 1
Разработка блок-схемы
На Рисунок 2 представлен алгоритм решения задачи в виде блок-схемы.
Рисунок 2 – Блок-схема к заданию №1
Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания №1 в соответствии алгоритмом, представленном в виде блок-схемы на Рисунок 2 соответствует процедура button1_Click(), button2_Click(), button3_Click(), button4_Click(),button5_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 Индивидуальное_задание_1 : Form
{
public Индивидуальное_задание_1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
int n, m;
int[,] massiv;
private void button3_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);
textBox4.Text += Convert.ToString(massiv[i, j]) + "\t";
}
textBox4.Text += "\r\n";
}
}
private void label3_Click(object sender, EventArgs e)
{
}
private void button5_Click(object sender, EventArgs e)
{
for (int j = 0; j < n; j++)
{
for (int i = 0; i < m-1; i++)
{ for (int g = i+1; g < m; g++)
{
if (massiv[i, j] > massiv[g, j])
{
int tmp = massiv[g, j];
massiv[g, j] = massiv[i, j];
massiv[i, j] = tmp;
}
}
}
}
textBox6.Text += Convert.ToString("Сортировка сверху вниз") + "\t\r\n";
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
textBox6.Text += Convert.ToString(massiv[i, j]) + "\t";
}
textBox6.Text += "\r\n";
}
for (int j = 0; j < m; j++)
{
for (int i = 0; i < n - 1; i++)
{
for (int g = i + 1; g < n; g++)
{
if (massiv[j, i] > massiv[j, g])
{
int tmp = massiv[j, g];
massiv[j, g] = massiv[j, i];
massiv[j, i] = tmp;
}
}
}
}
textBox6.Text += Convert.ToString("Сортировка сверху вниз и слева направо") + "\t\r\n";
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
textBox6.Text += Convert.ToString(massiv[i, j]) + "\t";
}
textBox6.Text += "\r\n";
}
}
private void button4_Click(object sender, EventArgs e)
{ int max = 0,kolvo=1;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (massiv[i, j] == max) kolvo++;
if ( massiv[i,j]> max)
{
max = massiv[i, j];
kolvo = 1;
}
}
}
textBox5.Text = Convert.ToString(Math.Pow(max,kolvo));
}
private void button2_Click(object sender, EventArgs e)
{
int kolvo = 0;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if ((i+1) % 2 != 0 & (j+1) % 2 != 0)
{
kolvo += massiv[i, j];
}
}
}
textBox3.Text= Convert.ToString(kolvo);
}
}
}
На Рисунок 3 представлен результат вычислений.
Рисунок 3 –Пример выполнения задания № 1