Использование классов при работе с векторами и матрицами (Лабораторная работа № 2), страница 6

В классе не могут быть два конструктора с одинаковыми списками параметров, т. к. при этом различить их невозможно. Использование конструкторов иллюстрируется программой на листинге 10.

Листинг 10

#include <iostream.h>

#include <stdio.h>

#include <conio.h>

#include "tvector.h"

void main()

{

// описание данных

     int i;

     TVector X,

          Y(5,1.0),

          Z(7,-10.0,10.0);

// вывод векторов

clrscr();

     cout<<"Вектор X"<<endl<<endl;

     X.OutVec(0,6,2);

     getch();

     cout<<endl;

     cout<<"Вектор Y"<<endl<<endl;

     Y.OutVec(0,6,2);

     getch();

     cout<<endl;

     cout<<"Вектор Z"<<endl<<endl;

Z.OutVec(0,6,2);

     getch();

}

Задание к работе

1.  Дополнить класс TVector методами:

1.1.  doubleMean(void) для вычисления среднего значения элементов вектора;

1.2.  doubleStdDev(void) для вычисления среднеквадратичного отклонения элементов вектора;

1.3.  doubleMin(int& Imin) для поиска минимального значения;

1.4.  doubleMax(int& Imax) для поиска максимального значения;

1.5.  voidSortUp(void) для сортировки элементов по возрастанию;

1.6.  voidSortDown(void) для сортировки элементов по убыванию;

Все разрабатываемые методы должны работать с данными класса. Поэтому в списке их параметров не должно быть входных векторов.

Разработать соответствующие управляющие программы и проверить работу методов.

2.  По аналогии с классом TVector разработать класс TMatrix с закрытыми  данными и аналогичными методами              InpMat(),OutMat(),SetMat(),GetMat(),AddMat(),SubMat(),MultMat(), а также с методом умножения матрицы на вектор MultMatVec(). Снабдить класс конструкторами, аналогичными конструкторам класса TVector.

Разработать соответствующие управляющие программы и проверить работу всех методов.

3.  По аналогии с классом TVector разработать класс TMatrix с закрытыми  данными и аналогичными методами              InpMat(),OutMat(),SetMat(),GetMat(), а также операциямисложения + ,вычитания –,умножения * матрицы на матрицу и умножения * матрицы на вектор. Снабдить класс конструкторами, аналогичными конструкторам класса TVector.

Разработать соответствующие управляющие программы и проверить работу методов.

4.  Дополнить класс TMatrix методами:

4.1.  voidUnitMat(intcomp) для формирования единичной матрицы;

4.2.  double NormMat(void)для расчета нормы матрицы;

4.3.  double MeanMat(void)для расчета среднего значения элементов матрицы;

4.4.  double StdDevMat(void)для расчета среднеквадратичного отклонения элементов матрицы;

4.5.  TMatrix DegMat(int m)для возведение квадратной матрицы в целую степень m;

4.6.  doubleDetMat(void)для расчета определителя матрицы;

4.7.  TMatrixInvMat(void)для нахождения обратной матрицы;

В качестве образцов следует использовать соответствующие функции модуля Matrix.

Разработать соответствующие управляющие программы и проверить работу методов.

6. Литература

1.  Березин Б.И., Березин С.Б. Начальный курс С и С++. М.: Диалог-МИФИ, любой год издания.

2.  Подбельский В.В. Язык С++. М.: Финансы и статистика, любой год издания.

3.  Архангельский А.Я. Программирование в С++ Builder 5 (6) – M: ЗАО «Издательство БИНОМ», 2001 - .