回 帖 发 新 帖 刷新版面

主题:[讨论]向量类   高手看看

1   在C#中创建控制太应用程序L2
2   在程序中新建一个向量类CzVector,在其中定义一个double[]类型的私有字段_values,用于维护向量的各个元素值。
3   为CzVector定义三个公有属性Length,Sum,Prod,分别用于返回的长度,向量所有的元素的和以及向量所有元素的积。
4    在CzVector中定义一个索引函数,用于获取或设置向量各个元素的值
5    为CzVector定义两个构造函数,一个根据指定长度来对向量进行初始化(向量各元素取默认值0),另一个由指定的数组来构造向量并设置各元素值,参考代码如下:
   public CzVector (int length)
  {
          _values = new double [length]  ;
  }
     public  CzVector (params double[] dArray)
  {
        _values = dArray ;
   }
6   利用操作符重载来实现向量加法,减法,和乘法。这三种运算均要求两个向量的长度相等。以加法操作符重载为例,参考代码源如下:
    public static CzVector operator +(CzVector V1,CzVertoc V2)
  {   
       if (v1.length != v2.length)
              return null ;
      CzVector result = new CzVertoc(v1.length);
      for (int i = 0 ; i <v1.length ; i++)
            result [i] = v1[i] + v2[i];
            return result ;
   }
7   类似的,利用操作符重载来判断两个向量是否相等。向量相等的条件是;两个向量的长度相等,且各个位置上的对应元素值也相等。
8   为CzVector定义一个ConsoleOutput方法,用于在控制台一行输出向量所有元素,其之间以空格分隔。
9   在程序主方法中随机定义几个向量对象,并测试其运算结果。参考下面代码:
      static void Main()
   {
      Czvector v1 = new  Czvector (1,-5,9,6);
      Czvector v2 = new  Czvector (0,1,2,3);
      Console . Write ("v1 =");
      v1.ConsoleOutput();
      Console. Write ("v2 =");
      v2.ConsoleOutput();
       Czvector v3 = v1+v2;
      Console .Write ("v1+v2 =");
      v3.ConsoleOutput();
      Console. Write ("3 *(v1+v2 )=");
      (v3*3).ConsoleOutput();
      Console .WriteLine("v1*v2={0}",v1*v2);
   }

只求完整代码

回复列表 (共1个回复)

沙发

向量的公式都不记得了,向量是属于线性代数里面的吧?

我来回复

您尚未登录,请登录后再回复。点此登录或注册