Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет Автоматики и Вычислительной Техники
Кафедра Вычислительной Техники
ОТЧЁТ
ЛАБОРАТОРНАЯ РАБОТА № 3
по курсу Языки программирования
Программирование с использованием многомерных массивов
Группа: АБ - 221
Студент: Кропачев А. С.
Преподаватель: Малявко А.А.
1. Цель лабораторной работы:
Освоить использование многомерных, динамических и ступенчатых массивов, изучить свойства компонента dataGridView.
2. Задание:
4. Даны две прямоугольные вещественные матрицы. Вычислить их произведение, сформировать ступенчатый массив и занести в него только неотрицательные элементы произведения исходных матриц.
17. Преобразовать заданную трехмерную целочисленную матрицу в ступенчатый трехмерный массив, включив в него только уникальные элементы строк исходной матрицы.
3. Текст программы решения задачи:
№4:
//4. Даны две прямоугольные вещественные матрицы.
//Вычислить их произведение, сформировать ступенчатый массив и занести в него только неотрицательные элементы произведения исходных матриц.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace v4
{
public partial class Form1 : Form
{
int width = 10, height = 10;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
dataGridView1.RowCount = height; //Указываем количество строк
dataGridView1.ColumnCount = width*3+2; //Указываем количество столбцов
Random rand = new Random();
//задаем ширину строк и столбцов
for (int i = 0; i < dataGridView1.ColumnCount; i++)
dataGridView1.Columns[i].Width = 35;
for (int i = 0; i < dataGridView1.RowCount; i++)
dataGridView1.Rows[i].Height = 20;
//инициализируем 3 массива
int[,] a = new int[height, width];
int[,] b = new int[height, width];
int[,] res = new int[height, width];
//заполняем 2 таблицы случайными значениями
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++)
{
a[i,j] = rand.Next(-99, 99);
dataGridView1.Rows[i].Cells[j].Value = a[i,j];
}
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++)
{
b[i, j] = rand.Next(-99, 99);
dataGridView1.Rows[i].Cells[j + width + 1].Value = b[i, j];
}
//Перемножаем таблицы и заполняем результат
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++)
{
res[i, j] = a[i, j] * b[i, j];
if (res[i, j] > 0)
dataGridView1.Rows[i].Cells[j + 2 * width + 2].Value = res[i, j];
}
}
}
}
№17:
//17. Преобразовать заданную трехмерную целочисленную матрицу в ступенчатый трехмерный массив,
// включив в него только уникальные элементы строк исходной матрицы.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace v17
{
public partial class Form1 : Form
{
static int width = 10, height = 10, depth = 4;
//инициализируем 3 мерный массив
int[, ,] a = new int[height, width, depth];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
dataGridView1.RowCount = height; //Указываем количество строк
dataGridView1.ColumnCount = depth*(width + 1); //Указываем количество столбцов
Random rand = new Random();
//задаем ширину строк и столбцов
for (int i = 0; i < dataGridView1.ColumnCount; i++)
dataGridView1.Columns[i].Width = 20;
for (int i = 0; i < dataGridView1.RowCount; i++)
dataGridView1.Rows[i].Height = 20;
//заполняем массив cлучайными значениями
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++)
for (int k = 0; k < depth; k++)
{
a[i, j, k] = rand.Next(0, 20);
dataGridView1.Rows[i].Cells[j+(width+1)*k].Value = a[i, j, k];
}
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++)
for (int k = 0; k < depth; k++)
{
bool b = false;
for (int z = j+1; z<width; z++)
if (a[i, j, k] == a[i, z, k])
{
dataGridView1.Rows[i].Cells[z + (width + 1) * k].Style.ForeColor=Color.LightGray;
b = true;
}
if (b)
dataGridView1.Rows[i].Cells[j + (width + 1) * k].Style.ForeColor = Color.LightGray;
}
}
}
}
4. Результаты работы программ:
№ 4
№ 17