Выполнили: студенты 3-го курса гр. 250201: Эди О., Лебедев К., Левичев В., Возвышаева Н.
Руководитель работы: Новиков Александр Сергеевич,
Доцент, Кафедра Электронно-вычислительных машин
Тула 2013 год
Цели и задачи работы:
1)ознакомление с основными концепциями объектно-ориентированного программирования; изучение классов языка С#, способов их описания и использования, получение представления о перегрузке операторов и функций; получение навыков применения объектов в прикладных программах.
2) Разработать класс, позволяющий выполнять действия над матрицами произвольных размерностей (сложение, вычитание, умножение, транспонирование). Интерфейс класса должен включать перегруженные операторы.
Для реализации поставленной задачи был использован объектно-ориентированный язык программирования С#. Среда разработки программы MS Visual Studio 2010.
Внешний вид приложения:
Листинг программы:
Первый файл Matrix.cs представляет собой класс, содержащий методы для операций с матрицами. Содержит конструктор, деструкторы встроены. Содержит индексатор, позволяющий создать класс со свойствами массива.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Class_Matrix
{
class Matrix
{
int N; // Размерность матрицы.
double[,] matrix_1; // 2x Массив (x,x)
double t = 0; // Эта перем. будет исп. в циклах.
public double this[int i, int j] // Индексатор типа int в классе. Индексаторы позволяют индексировать экземпляры класса или структуры так же, как массивы. Индексаторы напоминают свойства, но их методы доступа принимают параметры.
{
get { return matrix_1[i,j];} // Возвр. зн-е, наход. по указ. индексу.
set { matrix_1[i, j] = value; } // Установка значения, которое определяет индекс.
}
public Matrix(int N) // Конструктор задаёт начальные параметры для матрицы.
{
this.N = N;
this.matrix_1 = new double[N,N]; // Задали матрицу (двумерный массив).
}
public void CreateMatrix(int randSeed) // Создаём матрицу. randSeed задаёт сл.число.
{
Random rand = new Random(randSeed);
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
double randNum = rand.Next(0, 100);
matrix_1[i, j] = randNum;
}
}
}
public void CreateDiagMatrix() // Создаём диагональную матрицу.