pascal选择结果程序设计.doc_第1页
pascal选择结果程序设计.doc_第2页
pascal选择结果程序设计.doc_第3页
pascal选择结果程序设计.doc_第4页
pascal选择结果程序设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

VIP免费下载

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

文档简介

第三章 选择结果程序设计 3.IF语句的概念和应用3.1.1IF语句的概念 IF语句是用来实现选择结构。IF 语句的语法是: IF 布尔表达式 then 语句 Else 语句;语义流程图:布尔表达式布尔表达式 F F 或 语句 T T语句语句注:有两种形式:一是当布尔表达式的值位T或F时都分别执行不同的语句。二是省略F分支。布尔表达式的值应属布尔类型。即只有真或假两种可能。THEN后的语句在与ELSE之间不能加“;”。语句可以是简单语句,也可以为复合语句。3.1.2举例例一 IF ab THEN writeln(a,b) 注意此处无“;” ELSE writeln(b,a); 注意此处有“;”例二 IF a=b THEN writeln(b,a); 例三 求0 (x-a)y= (-aa/2) program function Y(input, output); var y,x,a:real; beginwriteln(input a and x:);readln(a,x);if (xa) then y:=0;if (x-a)and(xa/2)Then y:=sqrt(a*a-x*x);If (xa/2) then y:=x; Writeln (a=a,x=,x,y=,y)end.例四 输入三个整数,放在a,b,c三个变量中,然后把这三个数按由小到大的顺序放在a,b,c中。program order3(input, output);var a,b,c,t:integer; beginwriteln(input a ,b,c:);readln(a,b,c);Writeln (a=a:5,b=,b:5,c=,c:5);if ab then begin t:=a,a:=b;b:=t end;if ac Then begin t:=a;a:=c;c:=t end;If bc then begin t:=b,b:=c;c:=t end;Writeln (a:4,b:4,c:4)end . 3.2IF语句的嵌套在IF语句的语法图中,出现在THEN和ELSE之后的语句,同样可以是IF语句,这种情况称为IF语句的嵌套.3.2.1嵌套中THEN和ELSE的配对规则. 例 有一函数 +1 (x0) y = 0 (x=0)-1 (x0Then Y:=1 Else If x=0 Then y: =0 Else y: =-1; writeln(x=,x,y:=,y)End.虚线框中是内嵌的IF 语句,请注意,最后一个分号既标志内层IF语句的结束又标志整个外层IF语句的结束,这个内嵌IF语句是嵌套在外层的ELSE子句中的。其流程见下图(a),也可以改写为:If x=0 ThenIF x0 Then y:=1Else y:=0ELSE Y:=-1;内嵌的IF语句是嵌套在外层的THEN子句中,其流程见下图(b)。 (a) (b)能否将它改写为:y:=0;IF x=0 THEN IF x0 THEN y:=1ELSE Y:=-1;编写人企图用它来实现图(C)流程;然而实际上却为图(d)流程。 (c) (d)问题出在THEN和ELSE的配套关系上。PASCAL规定:ELSE与它上面的距离最近的THEN配对。它与书写程序时采用的缩进方式无关。因此在使用嵌套的IF语句时要十分小心,防止出现逻辑上的错误。上例中若要实现原意,则可在内层的IF语句的ELSE分支中加入空语句来实现。根据IF语句嵌入的真假分支的不同,可分为以下两类:3.2.2 IF语句嵌套在THEN子句中。 IF 布尔表达式1 THENIF 布尔表达式2 THEN IF 布尔表达式3 THEN 语句31 ELSE 语句32 ELSE 语句22ELSE 语句12;即在外层的THEN子句内嵌入内层IF语句。注:若内层的IF语句缺少ELSE分支时,为了避免语音逻辑上的混乱,常用以下两种解决方法:.将内层的IF语句用BEGINELSE括起来:THENBEGINIF 布尔表达式2,THEN 语句21END ELSE 语句12; 可以在内层的IF语句中将ELSE关键字写出来,在ELSE分支中的语以用空语句来实现。THENIF 布尔表达式2THEN 语句21 ELSE ELSE 语句12;3.2.3IF语句嵌套在ELSE子句中IF 布尔表达式1 THEN 语句11 ELSE IF布尔表达式2 THEN 语句21 ELSE IF 布尔表达式3 THEN 语句31 ELSE 语句32例: 输入一个年号,判断它是否是闰年。判断闰年的算法是: 如果此年号能被400除尽, 则它是闰年 否则 如果它能被4除而不能被100整除, 则它是闰年, 否则它不是闰年。 程序清单如下: PROGRAM LeapYear(input,output); VAR Year:Integer; Leap:Boolean; GEGIN Write(Enter year: ); Readln(year); If year MOD 400 =0 THEN leap:=TURE ELSE IF(year MOD 4=0)AND NOT(year MOD 100=0) THEN leap:=TRUE ELSE Leap:=FALSE; IF leapTHEN Writeln(year:6, is a leap year. )ELSE Writeln(year:6, is not a leap year. ) END. 3.3CASE语句(分情况语句)3.3.1CASE语句概念IF语句可以产生两种分支情况,而CASE语句能从多种可能中选择一种。1)、书写格式为: CASE 表达式 OF :; :; : END;例: 输入月数,决定该月的天数。 CASE month of 9,4,6,11: days:=30; 2 : days:=28; 1,3,5,7,8,10,12 : days:=31 END;2)、关于CASE语句的说明 语法图中的“表达式”称“情况表达式”。它必须是顺序类型的数据,不能是实型表达式(可以是整型、字符型、布尔型等)。 “情况常量”又称为“情况标号”,它是情况表达式可能具有的值。它不必事先在说明部分说明。它应与情况表达式具有相同的类型。 同一情况常量不能在同一个CASE语句出现两次或两次以上。 情况常量出现的次序可以是任意的(不要求由小到大或由大到小顺序排列)。 每个分语句前可以有一个或多个情况常量。 CASE语句的执行情况是:先计算情况表达式的值,如果它的值等于某一个情况常量,则执行该情况常量(情况标号)后面的语句,在执行完该语句后,流程跳到CASE语句的末尾END处。 如果情况表达式的值不落在情况常量的范围内,则什么也不做,执行CASE语句后的语句。例:运输费用的计算:距离越远,每公里运价越低。S 250(公里),折扣 = 0%250s500, 折扣 = 2%500s1000, 折扣 = 5%1000s2000 折扣 = 8%2000s=3000 THEN c:=12 ELSE c:=trun

温馨提示

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

评论

0/150

提交评论