实验报告第07次作业代码_第1页
实验报告第07次作业代码_第2页
实验报告第07次作业代码_第3页
免费预览已结束,剩余4页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、01:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _01 class Program static void Main(string args) CzVector v1 = new CzVector(1,-5,9,6); CzVectorEx v2 = new CzVectorEx(0,1,2,3); Console.WriteLine(定义了CzVector类v1: + v1.ToString()

2、; Console.WriteLine(定义了CzVectorEx类v2: + v2.ToString(); Console.WriteLine(v1 + v2 = + (v1 + v2).ToString(); Console.Read(); public class CzVector protected double values; public uint Length get return (uint)values.Length; public double Sum get double sum = 0; for (int i = 0; i values.Length; i+) sum

3、+= valuesi; return sum; public double Prod get double prod = 1; for (int i = 0; i values.Length; i+) prod *= valuesi; return prod; public double InfiniteNorm get double result = Math.Abs(values0); for (uint i = 1; i result) result = Math.Abs(valuesi); return result; public double thisuint i get if (

4、i Length) return valuesi; else throw new ArgumentException(索引不在合法范围内。); set if (i Length) valuesi = value; else throw new ArgumentException(索引不在合法范围内。); public CzVector(uint length) values = new doublelength; public CzVector(params double dArray) values = new doubledArray.Length; for (int i = 0; i d

5、Array.Length; i+) valuesi = dArrayi; public CzVector(CzVector v) values = new doublev.Length; for (uint i = 0; i v.Length; i+) valuesi = v.valuesi; public static CzVector operator +(CzVector v1, CzVector v2) if (v1.Length != v2.Length) return null; CzVector result = new CzVector(v1.Length); for (int

6、 i = 0; i v1.Length; i+) result.valuesi = v1.valuesi + v2.valuesi; return result; public static CzVector operator -(CzVector v1, CzVector v2) if (v1.Length != v2.Length) return null; CzVector result = new CzVector(v1.Length); for (int i = 0; i v1.Length; i+) result.valuesi = v1.valuesi - v2.valuesi;

7、 return result; public static CzVector operator -(CzVector v) for (int i = 0; i v.Length; i+) v.valuesi = -v.valuesi; return v; public static CzVector operator *(double a, CzVector v) CzVector result = new CzVector(v.Length); for (int i = 0; i v.Length; i+) result.valuesi = a * v.valuesi; return res

8、ult; public static CzVector operator *(CzVector v, double a) CzVector result = new CzVector(v.Length); for (int i = 0; i v.Length; i+) result.valuesi = a * v.valuesi; return result; public static double operator *(CzVector v1, CzVector v2) if (v1.Length != v2.Length) return 0; double result = 0; for

9、 (int i = 0; i v1.Length; i+) result += v1.valuesi * v2.valuesi; return result; public static bool operator =(CzVector v1, CzVector v2) if (v1.Length != v2.Length) return false; for (uint i = 0; i v1.Length; i+) if (v1.valuesi != v2.valuesi) return false; return true; public static bool operator !=(

10、CzVector v1, CzVector v2) return !(v1 = v2); public static implicit operator CzVector(double x) CzVector v = new CzVector(1); v.values0 = x; return v; public static explicit operator double(CzVector v) return v.values0; public void Output() Console.Write(); for (int i = 0; i Length; i+) Console.Writ

11、e(0, , valuesi); Console.WriteLine(bb); public override string ToString() string s = (; for (int i = 0; i Length; i+) if (i != Length - 1) s += valuesi + , ; else s += valuesi + ); return s; public class CzVectorEx : CzVector private double sum, prod; private bool calculated; public bool Calculated

12、get return calculated; public new double Sum get if (calculated) return sum; else return base.Sum; public new double Prod get if (calculated) return prod; else return base.Prod; public new double thisuint i get if (i Length) return valuesi; else throw new ArgumentException(索引不在合法范围内); set if (i Length) valuesi = value; calculated = false; else throw new ArgumentException(索引不在合法范围内); public CzVectorEx(uint length) : base(length) PreCalculate(); calculated = true; publ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论