




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验1 熟悉C#语言:数组和类的定义实验目的:理解C#的基本概念及其基本操作,重点是数组的处理和新的类型的定义。题意:1. 定义和初始化数组,在数组中查找特定数据,对数组中的数据进行排序。2. 设计复数类,实现复数的基本操作。1. 泛型方法C#语言中泛型的优越性在下面的一段例子中应能较好的显示出来。对于同样的运算逻辑(例子中是交换两个变量的内容),但仅是数据的类型不一样,可能就需要定义一堆相似的方法;而应用泛型特性则可仅定义一个泛型方法(例子中是swap)。 static void Main(string args) int a = 3; int b = 7; swapint(ref a, ref b); double ad = 3.5; double bd = 7.5; swapdouble(ref ad, ref bd); swap(ref a, ref b); static void swapint(ref int a, ref int b) int x = a; a = b; b = x; static void swapdouble(ref double a, ref double b) double x = a; a = b; b = x; static void swap(ref T a, ref T b) T x = a; a = b; b = x; 2. 定义和初始化数组,在数组中查找特定数据,对数组中的数据进行排序。 class Program static void Main(string args) int a = new int20; RandomizeData(a); Show(a); int i = Array.IndexOf(a, 10); Console.WriteLine(10s index is: 0, i); Console.WriteLine(Sorted Array: ); Array.Sort(a); Show(a); private static void Show(int a) for (int i = 0; i a.Length; i+) Console.Write(ai + ); Console.WriteLine(); private static void RandomizeData(int a) Random rd = new Random(); for (int i = 0; i a.Length; i+) ai = rd.Next(100); 3. 设计复数类,实现复数的基本操作 class ComplexTest static void Main(string args) Complex ca = new Complex10; RandomizeData(ca); Show(ca); /int i = Array.IndexOf(ca, new Complex(); int i = Array.IndexOf(ca, ca5); Console.WriteLine(0s index is: 1, ca5, i); Console.WriteLine(Sorted Array: ); Array.Sort(ca); Show(ca); private static void Show(Complex a) for (int i = 0; i a.Length; i+) Console.Write(ai + ; ); Console.WriteLine(); private static void RandomizeData(Complex a) Random rd = new Random(); for (int i = 0; i 0) s = rp.ToString(F) + + + ip.ToString(F) + j; else if (ip 0) s = ip.ToString(F) + j; else if (ip 0) double absImag = -1 * ip; s = absImag.ToString(F) + j; else s = rp.ToString(F); return s; /* * 比较两个复数是否相等 * * param other - 用于比较的复数 * return bool型,相等则为true,否则为false */ public override bool Equals(object other) Complex c = other as Complex; if (c = null) return false; return Math.Abs(rp - c.rp) = eps & Math.Abs(ip - c.ip) = Math.Abs(c.ip) e = c.ip / c.rp; f = c.rp + e * c.ip; x = (rp + ip * e) / f; y = (ip - rp * e) / f; else e = c.rp / c.ip; f = c.ip + e * c.rp; rp = (rp * e + ip) / f; ip = (ip * e - rp) / f; return this; /* * 计算复数的模 * * return double型,指定复数的模 */ public double Abs() return (Math.Sqrt(rp*rp +ip*ip); /* * 计算复数的实幂指数 * * param x - 待求实幂指数的幂次 * return Complex型,复数的实幂指数值 */ public Complex Pow(double x) / 常量 const double PI = 3.14159265358979; / 局部变量 double r, t; / 特殊值处理 if (rp = 0) & (ip = 0) return this; / 幂运算公式中的三角函数运算 if (rp = 0) if (ip 0) t = 1.5707963268; else t = -1.5707963268; else if (rp 0) t = Math.Atan2(ip, rp); else if (ip = 0) t = Math.Atan2(ip, rp) + PI; else t = Math.Atan2(ip, rp) - PI; / 模的幂 r = Math.Exp(x * Math.Log(Math.Sqrt(rp * rp + ip * ip); / 复数的实幂指数 rp = r * Math.Cos(x * t); ip = r * Math.Sin(x * t); return this; /* * 计算复数的自然对数 * * return Complex型,复数的自然对数值 */ public Complex Log() double p = Math.Log(Math.Sqrt(rp * rp + ip * ip); rp = p; ip = Math.Atan2(ip, rp); return this; /* * 计算复数的正弦 * * return Complex型,复数的正弦值 */ public Complex Sin() int i; double x, y, y1, br, b1, b2; double c = new double6; / 切比雪夫公式的常数系数 c0 = 1.13031820798497; c1 = 0.04433684984866; c2 = 0.00054292631191; c3 = 0.00000319843646; c4 = 0.00000001103607; c5 = 0.00000000002498; y1 = Math.Exp(ip); x = 0.5 * (y1 + 1 / y1); br = 0; if (Math.Abs(ip) = 1) y = 0.5 * (y1 - 1 / y1); else b1 = 0; b2 = 0; y1 = 2 * (2 * ip * ip - 1); for (i = 5; i = 0; -i) br = y1 * b1 - b2 - ci; if (i != 0) b2 = b1; b1 = br; y = ip * (br - b1); / 组合计算结果 rp = x * Math.Sin(rp); ip = y * Math.Cos(rp); return this; /* * 计算复数的余弦 * * return Complex型,复数的余弦值 */ public Complex Cos() int i; double x, y, y1, br, b1, b2; double c = new double6; / 切比雪夫公式的常数系数 c0 = 1.13031820798497; c1 = 0.04433684984866; c2 = 0.00054292631191; c3 = 0.00000319843646; c4 = 0.00000001103607; c5 = 0.00000000002498; y1 = Math.Exp(ip); x = 0.5 * (y1 + 1 / y1); br = 0; if (Math.Abs(ip) = 1) y = 0.5 * (y1 - 1 / y1); else b1 = 0; b2 = 0; y1 = 2 * (2 * ip * ip - 1); for (i = 5; i = 0; -i) br = y1 * b1 - b2 - ci; if (i != 0) b2 = b1; b1 = br; y = ip * (br - b1); / 组合计算结果 rp = x * Math.Cos(rp); ip = -y * Math.Sin(rp); return this; public int Compa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东广告策划自考试题及答案
- 篮协培训考试题及答案
- 木刻水印雕刻版员数字化技能考核试卷及答案
- 课件无法打开的原因
- 课件旋转平移路径
- 真空制盐工协同作业考核试卷及答案
- 压电石英片烧银焊线工5S管理考核试卷及答案
- 基础强化自考专业(行政管理)试题【历年真题】附答案
- 钢渣处理工质量追溯知识考核试卷及答案
- 2025年康复医学科患者康复方案制定考核试题答案及解析
- 现代设计理论与方法(上)
- EP 中文的课件资料
- 碳纤维材料工程检验批质量验收记录表优质资料
- GB/T 95-2002平垫圈C级
- 现代化工绿色化工课件
- 单孔腹腔镜课程讲义课件
- 人工血管动静脉内瘘术后护理课件
- 普通逻辑ppt课件(完整版)
- 《小学语文课程与教学论》复习题
- DB32∕T 4065-2021 建筑幕墙工程技术标准
- 施工现场环保工作措施
评论
0/150
提交评论