收藏 分销(赏)

面向对象编程技术(C#).pdf

上传人:曲**** 文档编号:225024 上传时间:2023-03-07 格式:PDF 页数:213 大小:4.03MB
下载 相关 举报
面向对象编程技术(C#).pdf_第1页
第1页 / 共213页
面向对象编程技术(C#).pdf_第2页
第2页 / 共213页
面向对象编程技术(C#).pdf_第3页
第3页 / 共213页
面向对象编程技术(C#).pdf_第4页
第4页 / 共213页
面向对象编程技术(C#).pdf_第5页
第5页 / 共213页
点击查看更多>>
资源描述

1、面向对象编程技术重庆交通大学、程序设计概论 任何一个程序都是为了解决特定的问题,因此开 始撰写程序之前必须先针对问题进行分析、规划 和设计。程序是用来指挥计算机运行的各项指令(语句)的集合,是程序设计者与计算机之间开展沟通的 语言O 编写程序的目的是为了将原来人工操作的工作改 由计算机完成。而一般的数据处理流程包含三个 模块:输入模块、处理模块和输出模块,因此任 何程序也包括这三个模块。例:将指定的摄氏温度值转换为华氏温度值。Int a;Scanf(&a);H=9/5*a+32;Print f(“转换结果为:d”,h);程序中处理模块尤其重要。程序设计者应该具有 下面两项能力。-具有某个领域的

2、知识。-具有不错的知识组织能力。1.程序设计思维程序中主要包括两个不同的方面:-算法的集合(解决问题的指令的集合)-对输入数据的组织和存储两种编程思维:-过程式思维:以功能来考虑并据此分割程序,而数据在各功能之间传递以串联整个操作流程。-面向对象思维:以数据为中心来考虑程序的组 织。程序要处理的数据往往反映了现实世界中 客观事物的属性,而不同类型的数据往往具有不 同的处理方法。2.程序设计语言 计算机的部件Inter Hub ArchitectureMB/s Cpu:算术逻辑运算单元(ALU),控制单元(CU),若干寄存器。机器指令:数据传送,运算指令,控制指令 以两内存中的数据相加,其涉及的

3、动作有:-自内存取得一个值,并存储在一个寄存器;-自内存取得另一个值,并存储在另一个寄存器;-以前两个寄存器为输入,启动ALU执行加法,将运算结 果保存到累加器之中;-将结果输出到显示器。指令和数据均必须用二进制代码表示:15AA:1000H-AL15AA:1004H-BL3456:AL+BL-AL24AE:AL4000:汇编语言程序:MOV ALJ1000HMOVBL,1004HADD AL,BLOUT 20H,ALHALTC#程序的结构using Syst em;using Syst em.Col l ect ions.Generic;using Syst em.Text;namespac

4、e Consol eAppl icat ionl(cl ass Programst at ic void Main(st ring arg s)(Consol e.Writ eLine(欢迎来到C#世界”);int a;fl oat f=Mat h.sqrt(a);)输入/输出语句 Consol e 类:Publ ic st at ic st ring Read Line();返HI输入的字符串,但不包括最后输入的回车符号。如果控制台的输入无效,或者没有任何输入,返 0nul l o St ring st r=Consol e.Read Line();Doubl e d=Convert.ToD

5、oubl e(st r);Publ ic st at ic void writ e(xxx val ue);publ ic st at ic void Writ eLine(st ring format,Object arg O)Format 为复合格式字符串:N,M:format st ring N为索引,M为对齐组件,是一个带符号的整数,指示首选的 设置了格式的字段宽度。如果“对齐”值小于设置了格 式的字符串的长度,“对齐”会被忽略.如果“对齐”为正蓼,字段中设置了格式的数据为右对齐;如果“对齐”为企数,字段中的设置了格式的数据为左对齐。如果需齐。要填充,则使用空白。格/字符串组件(for

6、mat st ring):如果相应对象是数值,贝甘 定数字格式字符串,如果相应对象是Dat eTime对象,则匕 日指定u期和时同修式击符串,或者如果相应对象是枚举值,则指定彼奉语藐学存K数字格式字符串 标准数字格式字符串 C或c:数字转换为表示货币金额的字符串,精度说明符指示所需的小 数位数。D或d:只有整型才支持此格式。数字转换为十进制数字(0-9)的 字符串,精度说明符指示结果字符串中所需的最少数字个数。如果需 要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个 数。F或f:定点数据格式,n为小数点位数。X或x:只有整型才支持此格式。数字转换为十六进制数字的字符串。格式说明符的

7、大小写指示对大于9的十六进制数字使用大写字符还 是小写字符。例如,使用“X”产生 ABCD EF”,使用“x”产生“ab cde f”。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。N或n:数字转换为“-d,ddd,ddd.ddd”形式的字符串,精度说 明符指示所需的小数位数。人、数据类型数据类型概论-控制器只能按照指令处理内存中的数据,所以在指示 计算机处理数据之前,首先必须在内存中存储数据。-各种数据在内存中占用的内存空间不同,不同类的数 据运算方式不同,对其运算的指令也不同。-有了数据类型之后,可以带来如下好处:指示计

8、算机为数据分配适当的内存空间;可以检查程序对各种数据的运算是否合法;将对数据的各种运算转换为机器指令;指示计算机如何解释内存中的数据;变量与常量001101101101101110000101001110100如果按整数解释,值为920357492;如按单精度浮点数解 释,值为:6.5428267e-7变量:需要在程序中说明如何操作内存的数据,而内存单 兀只有内存地址,由於需要为内在单兀命与O【属性】【修饰符】数据类型变量名称;publ ic st at ic int val ue;f oat 05,在C#市变量必须与数据类型相配合,而且限制这些已 定义数据类型的变量在程序执行中任意地改变可以

9、存储的 数据类型,这个特性称为程序语言的静态类型系统。具名常量:有些数据常量在程序中经常使用,可以为其取 一个有意义的名字。【属性丁【修饰符i const数据类型常量名称二值;Const fl oat Pl=3.1415927;.用来存储数据的内存空回必须经过T号左 北以使用,在变量参与运算之前必须先赋int p,q;p=10;if(p 10)q=18;q=q+10;赋值运算符变量名代表了内存单元,如何将内存单元的数据 拿出来参与运算呢?当变量名出现在二的右边时代表了内存中数据,而 出现在二的左边时,其代表的是内存的存储空间。Sum=sum+2;2=sum+2;赋值表达式X=y=z=100;数

10、值类型 整数类型:如344,0 x34a;注意整数类型表示的数据范围,超出将导 致错误。对于l ong,ul ong类型的整数,最好添加一个 L,如4000000L.整数的转折 sbyt e sx=127;sx=(sbyt e)(sx+1);short shx=32767;shx=(short)(shx+1);int int x=2147483647;int int y=-2147483648;int x=int x+1;int y=int y-1;Consol e.Writ eLine(H127+1=0H,sx);Consol e.Writ eLine(H32767+1=0H,shx);Co

11、nsol e.Writ eLine(H2147483647+1=0:d 8H,int x);Consol e.Writ eLine(H-2147483648-1=H+int y);c7 C:WIND0WSsystem32cmd.exe127+1=-12832767+1=-32?682147483647+1=-2147483648-2147483648-1=214748364?请按任意镶麒.-l n|x|答鞠音书a浮点数类型 分为单精度(fl oat)和双精度(d oubl e)。合法的浮点数:1.23e3,33.0d,11t注意e后面一定为整 数。浮点数中有正无穷大(Inifinit y)、负

12、无穷大(-Inifinit y)和非 数字(NaN)。浮点数不会发生溢出错误,当浮点数运算后超过fl oat或 d oubl e能表示的最大范围时,就会出现正无穷大、负无穷 大;当期对值低于fl oat或d oubl e所表示的最小金,贝j视为 0,有+0和-0之分。Fl oat绝对值范围:1.5e-45到3.4e38,精度为7位有效数字。d oubl e绝对值范围:5.0e-324至M7e308,精度为15或16 位有效数字。浮点数由于精度的原因设有绝对的精确值,在判断一个数 值和另一个数值是否相辔容易出错。浮点数的无穷大和非数字fl oat f1=1.0f-0.9f;if(f1=0.1)C

13、onsol e.Writ eLine(1.0f-0.9f=0.1);el seConsol e.Writ eLine(1.0f-0.9f0.1);decimal ml=1.Om-0.9m;if(ml=0.1m)Consol e.Writ eLine(1.0m-0.9m=0.1);el seConsol e.Writ eLine(1.0m-0.9m0.1);fl oat f2=3.4e38f;Consol e.Writ eLine(13.4e38f*10=0n,f2*10);doubl e d1=-1.78e308;Consol e.Writ eLine(-1.78e308*10=0,d1*10

14、);int i=123456789;fl oat f3=i;Consol e.VVrit eLine(“123456789转换为浮点数为:Of,f3);国 C:WIND0WSsystem32cmd.exe-H x|1.0f-0.9f0.11.0n-0.9m=0.1卜.4838拜10=正无穷大H.78e308*i0=负无穷大23456789 转换为浮点数为:1.234568E+08倩按任意破蟋.IEEE 标准 754 在IEEE标准754之前,业界并没有一个统一的浮点数标准,相反,很多计算机制造商都设计自己的浮点数规则,以及 运算细节。那时,实现的速度和简易性比数字的精确性更 受重视。直到198

15、5年Int el打算为其的8086微处理器引进一种浮点 数协处理器的时候,聪明地意识到,作为设计芯片者的电 子工程师和固体物理学家门,也许并不能通过数值分析来 选择最合理的浮点数二进制格式上于是nt el在请加州大学 伯党而分校於Wil l iam Kahanfe最优秀的数分柝家 之一来为8087 FPU设计浮点数格式;而Wil l iam Kahan又 找来两个专家来协助他,于是就有了KCS组合(Kahn,Coonan,and St one)。他们共同完成了Int el的浮点数格式设计,而且完成地如此 出色,以致于IEEE组织决定采用一个非常接近KCS的方 案作为IEEE的标准浮点格式。目前

16、,几乎所有计算机都 支持该标准,大大改善了科学应用程序的可移植性。IEEE标准从逻辑上用三元组S,E,M表示一个数N,如下图所示:最低位最高位SEMN的实际值n由下列式子表示:72=(-l)s x m x 2e苴中.、n,s,e,m分别为N,S,E,M对应的实际数值,而N,S,E,M仅仅是一串二进制位。S(sign)表示N的符号位。对应值s满足:n0时,s=0;nOHt,s=10 E(exponent)表示N的指数位,位于S和M之间的若干位。对应值e值也可正可负。M(mant issa)装小N的尾双彳立,恰好,它位于N沫尾。M也叫有效数字位(sinificand)、系数位(coefficien

17、t),甚至被称作“力、数”。浮点数格式 IEEE标准754规定了三种浮点数格式:单精度、双精度、扩展精度。前两者正好对应C语言里头的fl oat、d oubl e或者FORTRAN里头的real、d oubl e精度类型。限 于篇幅,仅介绍单精度、双精度浮点格式。单精度浮点格式31 30 Z3 ZZ 0SEM 单精度:N共32位,其中S占1位,E占8位,M占23位。双精度:N共64位,其中S占1位,E占11位,M占52位。63 62 52 51 0双精度浮点格式SEM 值得注意的是,M里然是23位或者52位,但它们只是表 示小数点之后的二进制位数,也就是说,假定M为“010110011二,在二

18、进制数值上其实是 u.010110011.而事实上,标准规定小数点左边还有一个隐含位,这个隐 含位通常,应该说绝大多数情况下是1,那什么情况下是0 呢?答案是N对应的n非常小的时候,比如小于2人(-126)(32位单精度浮点数)。计算e、m 规格化:当E的二进制位不全为0,也不全为1时,N为规格化形式。此时e被解 释为表示偏置(biased)形式的整数,e值计算公式如下图所示:e=biasbias=2t-1 上图中,|E|表示E的二进制序列表示的整数值,例如E为“10000100”,贝|上|二132=132/27=5。k贝U表示E的位数,对单精度来说,k=8,则 bias=127,对双精度来说

19、,k=11ibias=1023。此时m的计算公式如 下图所示:Im=1.M 标准规定此时小数点左侧的隐含位为1,那么如 贝”1.1/1|=|1.101|=1.625,即 m=1.625 非规格化:当E的二进制位全部为0时,N为非规格化形式。此时e,m的计算都非常简单。e=1 bias m=|0.Af|注意,此时小数点左侧的隐含位为0。1-bias)而不是给ias),这主要是为规格化繇赫啰/值之间的平常过渡设计的。有了非规格化形式,我们就可以表示。了。把符号位S值1,其余所有位均置。后,我们得到了-0O同理,把所有位均 置0,则得到+0,0。非规格化数还有其他用途,比如表示非 常接近0的小数,而

20、且这些小数均匀地接近0,称为“逐渐 卞溢(g rad ual l y und erfl ow)”属性。特殊数值:当E的二进制位全为1时为特殊数值。此时,若M的二进制位全为0,则n表示无穷大,若S为1则为负无穷大,若S为0则为正无穷大;若 M的二进制位不全为0时,表示NaN(Not a Number),表示这不是一个合法实薪或无穷,或 者该数未经初始化。假定N是一个8位浮点数,其中,S占1位,E占4位,M占3位。描述位表示(N)Ee|0.Af|mn0K小非现帽化数E大非规格化效0 0000 0000 0000 0010 0000 0100 0000 1100 0000 11100000一6一6一

21、6一 I-;一iSi)i_J2 g色 工702色 8+0 5122 5126 5127 512尿小规格化数0 0001 0000 0001 0010 0010 0000 0010 0010 0110 1100 0110 111112266-6一 ri5-5一 1-1O|o0 r-t|x o|x 9|8 卜|81+11+1i+I1十|8512 95128256 92561416-151610 0111 000r 11)010 0111 001r i1工 Ja1十%a98 计算公式:V=(-1)As*2AE*M 当e(各位)为全 0时,E=l-(2(e(位数)-1)-1),;M=mo如:re al

22、*4是8位,E=l-(2(8-1)-1)=1-127=-126即在 re al*4 时,V=(-1)飞*2八(-126)在re al*8时,V=(-1)飞*2八(-1022)当e(各位)不为全0且不为全1时,E=e(值)-(2X e(位数)-1)-1);M=l+mo即在 re al*4 时,V=(-1)飞*2(e(值)T27)*(l+m)在re al*8时,V=(T)飞*2X e(值)T023)*(l+m)当e全1,而尾数m不为0,定义为非数值NaN 当e全1,而尾数m为0,定义为无穷大.将浮点格式转换成十进制数例 1 0 x00280000(real*4)转换成二进制000000000010

23、10000000000000000000符号位指数部分(8位)尾数部分0 00000000 01010000000000000000000符号位=0;因指数部分=0,贝IJ:尾数部分M为m:0.01010000000000000000000=0.3125该浮点数的十进制为:(-1)A0*2A(-126)*0.3125=3.6734198463196484624023016788195e-39例 2:0 xC04E000000000000(real*8)转换成二进制110000000100111000000000000000000000000000000000000000 0000000000符

24、号位指数部分(11位)尾数部分1 10000000100 11100000000000000000000000000000000000000 00000000000符号位=1;指数=1028,因指数部分不为全。且不为全1,则:尾数部分M为1+m:1.1110000000000000000000000000000000000000000000000000=1.875该浮点数的十进制为:(-1)A1*2A(1028-1023)*1.875=-60字符类型、字符串类、布尔类型bool 字符类型:Char ch1=a;Charch2=A0 x0061,;Char ch3=(char)97;Charch

25、4=Au0061,;char ch=97;/错误。字符串类:St ring St ring st UabccT;St ring st r2=“efg h”;St ring st r3=st r1+st r2;布尔类型bool小数类型 绝对值范围:1.0e-287.9e28,精度为28至29位 有效数字。没有无穷大和非数字两个特殊的数据,超出范围 将导致异常。d ecimal t est d=1.0m-0.9m;if(t est d=0.1m)Consol e.Writ eLine(t est d 等于0.1m);el se Consol e.Writ eLineft est d 不等于枚举类型

26、 将具名常量整合在一起就是枚举数据类型,它是一种用户 定义类型。【修饰符】枚举名称:数据类型】枚举值列表;数据类型是各种整数类型,不能是字符类型和浮点数类型,当然也不能是布尔类型,默认为int类型。Publ ic enum Weekd aysSun,Mon,Tues,Wed,Thur,Fri,Sat;类、结构、枚举数据类型应放在类的外部,不能放在函数 内部。Weekd ays w;w二 Fri;错 w=(Weekd ays)2;Consol e.Writ eLine(w);int wi=(int)Weekd ays.Fri;Consol e,Writ eLine(wi);数据类型的转换隐式转换

27、在C#中允许不同类型的数据进行混合运算,在进行运算的时候,一般 不同的数据类型之间的常量或者变量将发生数据类型的转换。Doubl e Sin gle D o ub le D e cim al 或 D at e Tim eo-将 Bo o le an Sin gle、D o ub le D e cim al 或 D at e Tim e 转换为 Charo-将D at e Tim e转换为St rin g以外的任何其他类型。-将St rin g以外的任何其他类型转换为D at e Tim eo如果数字类型转换导致精度丢失(即某些最低有效位丢 失),不引发异常。但是,如果结果超出了特定转换方法 的

28、返回值类型所能表示的范围,则将引发异常。例如,尝试将值为10000的Int 32实例转换为Byt e类型会引 发 Qyerfj1PwExcept ion,因为 超出了 Byt e 数据 类型的范围。练习1.编写一个程序,程序让电脑从键盘上读入摄氏温 度值,程序将它转换为华氏温度值并输出到显示 器上。2.编写一个程序,求某笔贷款的还款总额。从控制 台中读取本金、利率和贷款年限(以年为单位),输出的数据用货币金额方式。3.编写一程序,从控制台读取一个字符串。然后将 其中的小写字母转换为大写字母,最后将字符串 显示在屏幕上。三、表达式算术运算符和算术表达式 递增和递减运算符;Charx=u0068,

29、;Consol e.writ eLine(+x);Consol e.writ eLine(x.g et t ype();int p=8;int q=p+(p+);Consol e.Writ eLine(p);Consol e.Writ eLine(q);int y2=1;y3=(y2+)*2+(y2+)*3;Consol e.Writ eLine(uy3=u+convert.t ost ring(y3);QI C:WIND0WSsystem32cmd.exe胆*iSystem.Char1017k?3=8睛按任意键继续一 正负运算符;乘法和除法运算符;Short a=12345;Short b=

30、23456;Char ch=JaJ;Short c=(short)(a*b);Consol e.writ eLine(a*b);Consol e.writ eLine(c);Consol e.wrieLine(a*ch);结果为:289564320(0 x114266a0)26272(0 x66a0)1197465取余运算符对于除数和被除数都是正数(正整数或正浮点 数),取余运算遵循这样的规律:将除数和被除 数做减法,指导得到的记过小于被除数,这时的 结果就是取余运算的结果。对于负整数或者负浮点数,取余运算按以下规律 计算:如果除数和被除数互相异号,将除数和被 除数做加法,直到得到的结果的绝对

31、值小于被除 数的绝对值,这时得到的结果就是取余运算的结 果;如果除数和被除数都是负数,则按照两者都 是正数的运算方法求余数,判断终止时同样使用 绝对值,余数为负。比较运算和关系表达式关系表达式用于说明两者之间的关系,其 结果为 t rue,fal se.很少单独使用,主要用于if语句。Is运算符 Opr1 is opr2:oph可以是一个变量或者常量名称,opr2则必须是某一种数据类型名称或者用户定义 宿类等。Object o;St ring s=hel l o”;0=s;Consol e.writ eLine(o is st ring);Int i=0;0=i;Consol e.Writ e

32、Line(o is int);逻辑运算符&:用于判断两个条件是否同时成立时使用。|:用于判断两个条件是否成立其中一个时 使用。!:用于判断某个条件不成立时使用。l f(!number=0)resulknumber+”的绝对值是“+-number;El seresul t二number+”的绝对值是“+number;输入/输出语句 Consol e 类:Publ ic st at ic st ring Read Line();返回输入的字符 串,但不包括最后输入的回车符号。如果控制台 的输入无效,或者没有任何输入,返回nul l。Publ ic st at ic void Writ eLine(

33、XXX val ue);将val ue 值输出到控制台。St ring st r=Consol e.Read Line();Doubl e d=Convert.ToDoubl e(st r);Consol e.Writ eLine(d);Publ ic st at ic void writ e(xxx val ue);publ ic st at ic void Writ eLine(st ring format,Object arg O)Format 为复合格式字符串:N,M:format st ring N为索引,M为对齐组件,是一个带符号的整数,指示首选的 设置了格式的字段宽度。如果“对齐

34、”值小于设置了格 式的字符串的长度,“对齐”会被忽略.如果“对齐”为正蓼,字段中设置了格式的数据为右对齐;如果“对齐”为企数,字段中的设置了格式的数据为左对齐。如果需齐。要填充,则使用空白。格/字符串组件(format st ring):如果相应对象是数值,贝甘 定数字格式字符串,如果相应对象是Dat eTime对象,则匕 日指定u期和时同修式击符串,或者如果相应对象是枚举值,则指定彼奉语藐学存K数字格式字符串 标准数字格式字符串 C或c:数字转换为表示货币金额的字符串,精度说明符指示 所需的小数位数。D或d:只有整型才支持此格式。数字转换为十进制数字(0-9)的字符串,精度说明符指示结果字符

35、串中所需的最少数 字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。F或f:定点数据格式,n为小数点位数。X或x:只有整型才支持此格式。数字转换为十六进制数字的字 符串。格式说明符的大小写指示对大于9的十六进制数字使 用大写字符还是小写字符。例如,使用“X”产生ABCDEF”,使用“x”产生abcd ef”。精度说明符指示结果字符串中所需的最少数字个数。如果需 要的话,则用零填充该数字的左侧,以产生精度说明符给定 的数字个数。N或n:数字转换为“-d,ddd,d d d.d d d”形式的字符串,精度说明符指示所需的小数位数。标准日期和时间格式字符串 d:短日期模式

36、:2008/12/23 D:长日期模式:2008年4月10日,星期四。f:完整日期/时间模式(短时间):表示长日期(D)和短 时间模式的组合,由空格分隔 F:完整日期/时间模式(长时间):Thursd ay,April 105 2008 6:30:00 AM g常规日期/时间模式(短时间):表示短日期(d)和短时 间模式的组合,由空格分隔。如:4/10/2008 6:30 AM G常规日期/时间模式(长时间):表示短日期(d)和长时 间(T)模式的组合,由空格分隔。如:4/10/2008 6:30:00 AM oSyst em.Mat h 类 Mat h类中的方法均为静态方法:Publ ic

37、st at ic const d oubl e E=2.718.;Publ ic st at ic const d oubl e Pl=3.1415.;Publ ic st at ic数据类型Max(数据类型nbr1,数据类型nbr2);Publ ic st at ic数据类型Min(数据类型nbr1,数据类型nbr2);Publ ic st at ic数据类型Abs(数据类型val ue);Publ ic st at ic doubl e Pow(doubl e x,doubl e y);返回xy Publ ic st at ic doubl e Sqrt(doubl e val ue);返

38、回平方根 Publ ic st at ic doubl e Round(doubl e val ue);Publ ic st at ic doubl e Round(doubl e val uejnt digit s);Publ ic st at ic doubl e Sin(doubl e a);四、顺序结构 选择结构 循环结构-当型循环一直到型循环程序基本结构If语句 If(关系表达式)语句A;If(关系表达式)语句A;el se语句B;If(关系表达式a)语句A;el se if(关系表达式b)语句B;el se if(关系表达式c)语句C;el se if(关系表达式m)语句M;el

39、se语句N;程序举例从控制台中读入一个整数,输出其绝对值。Consol e.Writ e(请输入一个整数:);st ring st r=Consol e.Read Line();int x=convert.t ol nt 32(st r);if(x=0)Consol e.Writ eLine(该数的绝对值是:0,x);el seConsol e.Writ eLine(该数的绝对值是:0,-x);从控制台中读入某学生的分数,判断是优秀、良好、中等、及格、不及格。程序举例Consol e.Writ e(请输入分数:”);doubl e sc=Convert.t oDoubl e(Consol e.

40、ReadLine();if(sc=90)Consol e.Writ eLine(优秀)el se if(sc=80)Consol e.Writ eLine(良好)el se if(sc=70)Consol e.Writ eLine(“中等)el se if(sc=60)Consol e.Writ eLine(及格)el seConsol e.Writ eLine(不及格)cT C:WIND0WSsystem32cmd.eKe请输入分数:67.87及格请按任意键继续,.,1!xSwit ch语句Swit ch(表达式)(case常量表达式a:语句A;case常量表达式b:语句B;case常量表达

41、式m:语句M;d efaul t:语句N;)Swit ch后表达式可以是整数表达式也可能是字符串表达式。Case后只能是整数常量或字符串常量;Consol e.Writ e(请输入一个整数(1-9):);st ring st r=Consol e.ReadLine();short sx=short.Parse(st r);swit ch(sx)case 1:case 3:case 5:case 7:Consol e.Wiit eLine(输入的整数是奇数)break;case 2:case 4:case 6:case 8:Consol e.Wil t eLine(输入的整数是偶数)break;

42、defaul t:Consol e.Wiit eLine(输入的数不在范围内)break;)循环结构-whil e Int i=1;Int sum=O;Whil e(i=1000)sum=sum+i;i+;)上面代码等效于:Int i=1;Int sum=O;Dosum=sum+l;i+;whil e(i=1000);For循环使用for循环需要预先知道循环的体执行的次数,所以这 种循环一般叫做确定循环,而whil e循环被称作不确定循 环。For(初始化;关系表达式;迭代运算)语句;-如果省略初始化语句,则表明在fo r语句之前已经给用于控制循环 次数的变量赋初值。in t i=0;Fo r

43、(;i=1000;i+)sum=sum+i;-如果省略关系表达式,则表明,在fo r循环运行的过程中,不存在 对循环结束条件的判断,则循环将无限制执行下去。Fo r(in t i=0;i+)sum=sum+i;-如果省略了迭代运算,则表明,用于控制循环次数的变量将在循环体中改变其数值,以便退出循环。fo r(in t i=0;i1000;)sum=sum+I;i+;如果省略了初始化语句和迭代计算,只给出循环条件判断,则 相当于while循环。Foreach-in 语句 Fo re ach(变量类型变量in数组)语句;变量类型可以是前面介绍 的各种数值类型,也可以是引用类型,但是,这个变量类型应

44、该同数 组元素的类型相匹配。In t o dd=0,e ve n=0;ln t arr=n e win t 0,1,2,5,7,8,11,13,123,43,44);Fo re ach(in t I in arr)(if(i%2=0)e ve n+;Else o dd+;)Co n so le.W Ht e Lin e(“数组中奇数个数:0偶数个数1”,o dd,e ve n);Break语句 当break语句使用在循环体中时,其作用是能够执行循环 体时强迫终止循环,即控制程序的流程使其提前退出循环。当用于swit ch语回时,流程跳出分支选择结构,即终止 swit ch语句的执行。For(i

45、nt i=0;i=3;i+)for(int j=0;j=3;j+)if(j=2)consol e.writ eLine(i=0J=1,i,j);break;)国 C:WIND0WSsystem32cmd.exe-n xi=0,j=2i=L j=2i=2,j=2春会在熹键继续.程序举例求解一元二次方程ax2+b x+c=0的解。fl oat a,b,c;d oubl e x1,x2;d oubl e d el t;d oubl e real,imag e;Consol e.Writ eLine(Ha=H);a=Convert.ToDoubl e(Consol e.Read Line();Cons

46、ol e.Writ eLine(Hb=H);b=Convert.ToDoubl e(Consol e.Read Line();Consol e.Writ eLine(Hc=n);c=Convert.ToDoubl e(Consol e.Read Line();if(Mat h.Abs(a)1 e-6f)Consol e.Writ eLine(方程的解为:0,-c/b);el se(del t=b*b-4*a*c;if(Mat h.Abs(del t)0)x1=(-b+Mat h.Sqrt(del t)/(2*a);x2=(-b-Mat h.Sqrt(del t)/(2*a);Consol e.

47、Writ eLine(x1=0,x2=1,x1,x2);)el sereal=-b/(2*a);image=Mat h.Sqrt(Mat h.Abs(del t)/(2*a);Consol e.WHt eLine(复数根:”);Consol e.Writ eLine(x1=0+1i,real,image);Consol e.Writ eLine(x2=0-1i,real,image);)程序举例使用对分法求解方程3*x3-4x25*x+13=0的解,其 中x属于(-2,-1),收敛条件为1e-6。D o ub le x1=-2;D o ub le x2=-1;D o ub le x;W hil

48、e(Mat h.Ab s(x1-x2)1e-6)(x=(x1+x2)/2;Y1=3*x1-4*x1*x1-5*x1+13;Y2=3*x2-4*x2*x2-5*x2+13;Y=3*x-4*x*x-5*x+13;If(y*y10)x2=x;If(y*y20)x1=x;Co n so le.W rit e Lin e(ux=O),x);程序举例判断一个正整数是否为质数Int m,j,k;Consol e.writ eLine(“输入一个整数:”);M=Convert.Tol nt 32(Consol e.Read Line():K=(int)(Mat h.Sqrt(m);For(i=2;i=k+1)

49、consol e.writ eLine(“该整数是质数”);el seconsol e.writ eLine(“该整数不是质数”);程序举例 读入一个数字n(1v=n=9),在屏幕上输出 以下内容。1 12 123 1234练习题 1.从控制台读入年份,判断其是否是闰年。-提示判断规则:能被400整除的的年份是闰年;除此之 夕卜,能被100整除的年份不是闰年;除此之外,能被4 整除的年份是闰年。2.从控制台读入一系列成绩(输入为-1表示结束),统计 总分和平均分。3.求m和n的最小公倍数。4.求1/3+1/5-1/7+最后一项绝对值要求小于1 e-8.5.求斐波拉其数列前50项之和。-f(0)

50、=1,f(l)=l,f(n)=f(n-1)+f(n-2)函数 从数学角度看,函数是某种对应关系;而从程序 角度看,函数是对特定数据,实现某种处理逻辑的 代码段。系统中具有许多已经定义好的函数,如Publ ic st at ic doubl e Pow(doubl e x,doubl e y);返 回xyPubl ic st at ic doubl e Sqrt(doubl e val ue);返回平 方根 设计时使用函数便于把复杂问题分解为简单问题。求S=1/1+/(1+2)+1/(1+2+3)+1/(1+2+3+4)+.D o ub le f(in t n)I n t s=0;Fo r(i=

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 品牌综合 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服