第5章基础类及常用算法-精选ppt课件

上传人:风*** 文档编号:246751590 上传时间:2024-10-15 格式:PPT 页数:42 大小:116.52KB
返回 下载 相关 举报
第5章基础类及常用算法-精选ppt课件_第1页
第1页 / 共42页
第5章基础类及常用算法-精选ppt课件_第2页
第2页 / 共42页
第5章基础类及常用算法-精选ppt课件_第3页
第3页 / 共42页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,5,章 基础类及常用算法,唐大仕,dstang2000263,dstang,本章内容,1 DotNet,基本类库,2,类型转换,3,数学、文字、日期,4,数组、集合、泛型,5,常用算法,6,程序的调试,5.1 DotNet,基本类库,统一,的编程,API,:,NET Framework,类库,System,System.Data,System.Xml,System.Web,Globalization,Diagnostics,Configuration,Collections,Resources,Reflection,Net,IO,Threading,Text,ServiceProcess,Security,Common,OleDb,SQLTypes,SqlClient,XPath,XSLT,Runtime,InteropServices,Remoting,Serialization,Serialization,Configuration,SessionState,Caching,Security,Services,Description,Discovery,Protocols,UI,HtmlControls,WebControls,System.Drawing,Imaging,Drawing2D,Text,Printing,System.Windows.Forms,Design,ComponentModel,统一,的编程,API,:,NET Framework,类库,5.2,基本类型及类型转换,任何事物都是对象,任何事物都是,object,类的子类,一个函数如果需要,object,参数,则可以代入任意参数,任何对象都有以下方法,ToString()Equals()GetType(),MemberwiseClone(),等,常量也是对象,3.ToString(),“,Hello,”,.Length,表达式中的类型转换,当有不同种类的混合运算时,:,int,longfloatdouble,(,所有的,byte,short,char,等转为,int),强制类型转换,在表达式前面用(类型)来表示,double d=3.14;,int a=(int)d;,float b=(float)(d+1.5);,注意圆括号,类型转换函数,System.Convert,类有以下,static,方法,ToDouble(,),ToInt32(,),ToDateTime(),基本类型,关键字含有等价的类,int,即,System.Int32,含有一些特殊的属性或方法,int.MaxValue,double.NaN,Double.PositiveInfinity,Double.IsNaN(,),数与字符串的转换,int.Parse(string),double.ToString();,ToString(#0.00),5.3,几个常用类,Math,类,提供了相关的数学方法,Abs(),Sin()Cos()Tan(),Round(),Exp()Log(),Pow(),乘方,Random类,.Next(100)0,到,100,之间,(,不含,100),.NextDouble()0,到,1,之间,Random,得到的是伪随机数,如果要用更强的随机数,可以使用,System.Security.Cryptography,.RNGCryptoServiceProvider,DateTime及TimeSpan,DateTime,是值类型,new DateTime(y,m,d,h,m,s),.Now,.ToString(yyyy-MM-dd HH:mm:ss“),.AddMinutes(5),.Year,.Month,.Day,.Date,TimeSpan,两个日期相减,可以得到一个,TimeSpan,String类,=+,.Length .IndexOf.LastIndexOf,.StartsWith,.EndsWith,.Substring(idx,len)注意第二个参数,.Trim,.TrimEnd,.PadLeft,.Insert,.Remove,.Split(;),string.Join,String,及,StringBuilder,String,内容不可变(,immutable,),StringBuilder,内容可变,.Append,.Remove,.Replace,.Length,.ToString,在循环体中用,s+=.,可能会带来效率问题,5.4,数组与集合,数组,声明,int a;,int,b;,分配空间,a=new int5;,b =new int4,5;,集合类,ArrayList,相当于动态数组,实现,IList,Hashtable,相当于键,/,值的集合,实现,IDictionary,用,进行访问,表示获取、增加、删除、修改,提示:用于查询时,比线性搜索的效率要高,可用于程序的优化,SortedList Stack Queue,使用,foreach,访问数组及集合,foreach(,类型 变量,in xxxx),其中,xxxx,必须是实现了实现,IEnumerable,接口或含有,GetEnumerator,方法的类型,IEnumerator,GetEnumerator();,IEnumerator,Current,属性,MoveNext,及,Reset,方法,泛型 Generic,泛型具有更好的类型检查及性能,System.Collections.Generic,名称空间,List,列表,Dictionary,SortedDictionary,字典,Stack,Queue,栈,队列,5.5 常用算法,算法,指令的有限序列,特点:,有穷性,确定性,可行性,输入、输出,遍试,逻辑上:针对所有可能的情况进行判断,形式上:,For,中用,If,示例:,1.,韩信点兵,百鸡问题,鸡兔同笼问题,2.,水仙花数,1,3,+5,3,+3,3,=153,3.,完全数,28=1+2+4+7+14,4.,百分币,5.,佩尔方程,6.,验证猜想,:,哥德巴赫猜想,迭代,逻辑上:多次使用同一算法,形式上:,a=f(a),示例:,1.,求平方根,2.Mandelbrot,集,Julia,集,3.,倍边法求,Pi,4.,数字平方和,递归,逻辑上:一个问题化为同样的问题,形式上:自己调用自己,示例:,1.,求阶乘,2.,菲波那契数列,3.Celay,树,Koch,分形集,小结,遍试:,for,中用,if,迭代,:for,中,n=f(n),递归,:f(n),中用,f(n-1),6,程序的调试,错误的种类,代码的错误通常可以分成三大类,语法错误,运行错误,逻辑错误,其中语法错误比较容易排除,也是一种低级的错误。运行错误和逻辑错误需要靠经验、调试工具以及不断的深入代码来排除。,语法错误,此类型的错误通常发生在程序员对语言本身的熟悉度不足,如,if,之后忘了加上大括号、,For,语句少了分号。还有比如定义一个变量是,Student,,但是在引用的时候不小心就变成,studnet,了。还有一种情况是调用函数错误的语法。,例如调用,SubString,函数少传了一个参数。使用,Visual Studio.NET,开发工具,多数的错误会在编辑程序的时候发现。,逻辑错误,逻辑错误(,Logic Error,)是指程序算法的错误,这种错误程序不会发生任何程序中断或跳出程序,而是一直执行到最后,可能有结果。但是执行结果是不对的。,如计算,1,到,10,的总数,结果应该为,55,,利用下面的算法。,运行时错误,运行时错误(,Runtime Error,)多数发生在不可预期的异常。,比如打开硬盘上的某个文件时,该文件不存在。向硬盘上写某个文件的时候,硬盘的空间不足。,由于网络阻塞得不到预期的数据等等。也有可能是用户不按正确的操作步骤而造成的错误,,如在做除法的时候除数为零,访问数组的时候,超出了可访问下标的范围,这些都是发生错误的原因。比如下面的代码。,程序调试的基本手段,断点,跟踪,监视,断点,断点,用鼠标单击左边,Ctrl+B,调试,|,窗口,|,断点,Ctrl+Alt+F9,断点的属性,条件断点,(先设置断点,右击,可编辑条件),命中次数,清除或禁用断点,清除所有断点,Ctrl+Shift+F9,跟踪,单步执行,逐语句,F11,逐过程,F10,点右键,运行到光标处,跳出函数,Shift+F11,拖动到下一句,(,跳过中间一些语句,),监视,即时监视,快速监视,Ctrl+Alt+Q,自动窗口,调用堆栈,指令,调试,|,窗口,|,反汇编,练习,练习基本类的用法,练习常用算法,练习调试,参见,forDebug,下的示例,while,循环的跟踪,数组的跟踪(筛法求素数),构造方法执行过程的跟踪,一个,dotNET BUG,的跟踪,一个奇异的,bug,int a=0 x79de61c0;/2044617152;,a+=0 x12345678;,/a,应为,0 x8c12b838;/-1944930248,if(a 0)a=-a;,/,注意,如果加上以下语句,则程序出错,/string str1=a.ToString();,System.Console.WriteLine(a);,/,一个我发现的在,fx1.1,中的,bug,见,cns/dstang2000,问题与讨论,dstang2000263,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!