网站大量收购闲置独家精品文档,联系QQ:2885784924

pascal-3.选择结构程序设计.pptVIP

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pascal-3.选择结构程序设计

例3.8 输入三角形的三边,判断它是否直角三角形,若是则输出“yes”,否则输出“no”,若根本形成不了三解形则输出“not a triangle”。 【分析】 首先判断用户输入的数据是否能够构成三角形,然后再判断它是不是直角三角形。 Program ex3_8; Var a,b,c : integer; begin readln(a,b,c); if (a+bc) and (b+ca) and (c+ab) then if (a*a+b*b=c*c) or (b*b*+c*c=a*a) or (c*c+a*a=b*b) then writeln(yes) else writeln(no) else writeln(not a triangle.) end. 第三节 情况语句(CASE语句) 上面我们知道可以用嵌套的if语句实现多分支的选择结构。但是如果分支越来越多时,用嵌套的if语句实现多分支就显得繁杂。当多分支选择的各个条件由同一个表达式的不同结果值决定时,可以用case语句实现。它的选择过程,很象一个多路开关,即由case语句的选择表达式的值,决定切换至哪一语句去工作。因此在分支结构程序设计中,它是一种强有力的手段。在实现多路径分支控制时,用case对某些问题的处理和设计,比用if语句写程序具有更简洁、清晰之感。 情况语句的一般形式: case 表达式 of 情况标号表1:语句1; 情况标号表2:语句2; : 情况标号表n:语句n; else 语句n+1; end; 其中case、of、end是Pascal的保留字, 表达式的值必须是顺序类型,它可以是整型、布尔型及以后学习的字符型、枚举型和子界型。情况标号表是一串用逗号隔开的与表达式类型一致的常量序列。语句可以是任何语句,包括复合语句和空语句。 case语句的执行过程 先计算表达式(称为情况表达式)的值,如果它的值等于某一个常量(称为情况常量,也称情况标号),则执行该情况常量后面的语句,在执行完语句后,跳到case语句的末尾end处。 说明   ①情况表达式必须是顺序类型的;   ②情况常量是情况表达式可能具有的值,因而应与情况表达式具有相同的类型;   ③情况常量出现的次序可以是任意的;   ④同一情况常量不能在同一个case语句中出现两次或两次以上;   ⑤每个分语句前可以有一个或若干个用逗号隔开的情况常量;   ⑥如果情况表达式的值不落在情况常量的范围内,则认为本case语句无效,执行case语句的下一个语句。Free pascal中增加了一个“否则”的情况,即增加一个else子句,但也是可省的。 ⑦每个常量后面只能是一个语句或一个复合语句,以分号结束。 例3.9 根据x的值,求函数Y的值: 【分析】利用case语句进行程序设计, 关键在于巧妙地构造情况表达式。本例中三种情况可用一个表达式区分出来:Trunc(x/100)。因为x在(0,100)之间时表达式值为0;x在[100,200)时表达式值为1 ;其余部分可用else子句表示。源程序如下: program ex3_9; var x,y:real; begin write(Input x:);readln(x); case trunc(x/100) of 0:y:=x+1; 1:y:=x-1; else y:=-1; end; //end of case,每个case对应一个end writeln(x=,x:8:2,y=,y:8:2); end. 例3.10 判断2006年,每个月份的天数。 【分析】 程序分为:输入月份,计算该月的天 数,输出天数。程序如下: Program ex3_10; Var month,days : integer; begin readln(month); case month of   1,3,5,7,8,10,12 : days : =31;   4,6,9,11 : days : =30;   2 : days : =28;   else days : =0; end; if days0 then writeln(days); end. 运行结果: 输入:10 输出:31 例3.11 期未来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程

文档评论(0)

celkhn0303 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档