PascalCASE语句的使用
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分析:程序分为:输入月份,计算该月的天数,输出天数。通过分析我们这 道题的重点放在对month的判断上,我们想道了用CASE语句来实现; 源程序如下: program days; var month,days:integer; begin write(‘Input month:’);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 days<>0 then writeln(‘Days=’,days);{当输入错误月份的时候我 们不输出任何结果} end.
08年上学期 基础班讲稿
进一步思考如果要求输入年和月份,要求输出该月的天数 如何实现!
08年上学期 基础班讲稿
马鞍山· 马鞍山·信息学竞赛辅导网
范例二
期未来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔 奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的 单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学), 同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方 案。 分析:对于以上的实际问题,要买尽量多的笔,易知都买4 分析:对于以上的实际问题,要买尽量多的笔,易知都买4元的笔肯 定可以买最多支笔。因此最多可买的笔为x 定可以买最多支笔。因此最多可买的笔为x div 4支。由于小q要把钱 4支。由于小q 用完,故我们可以按以下方法将钱用完: 若买完x 若买完x div 4支4元钱的笔,还剩1元,则4元钱的笔少买1支, 4支 元钱的笔,还剩1元,则4元钱的笔少买1 换成一支5元笔即可;若买完x 换成一支5元笔即可;若买完x div 4支4元钱的笔,还剩2元,则4元 4支 元钱的笔,还剩2元,则4 钱的笔少买1支,换成一支6元笔即可;若买完x 钱的笔少买1支,换成一支6元笔即可;若买完x div 4支4元钱的笔, 4支 还剩3元,则4元钱的笔少买2支,换成一支5元笔和一支6 还剩3元,则4元钱的笔少买2支,换成一支5元笔和一支6元笔即可。 从以上对买笔方案的调整,可以看出笔的数目都是x 从以上对买笔方案的调整,可以看出笔的数目都是x div 4,因 4,因 此该方案的确为最优方案。 由于我们可以根据 x mod 4 的情况分成0,1,2,3四种情况,用 的情况分成0,1,2,3四种情况, IF…THEN…ELSE语句嵌套比较麻烦,所有我们想到用case 语句来实 IF…THEN…ELSE语句嵌套比较麻烦,所有我们想到用case 现…
08年上学期 基础班讲稿
马鞍山· 马鞍山·信息学竞赛辅导网
case语句的使用
当多分支选择的各个条件由同一个表达式的不同结果值决定时,可以 用case语句实现。它的选择过程,很象一个多路开关,即由case语句的 选择表达式的值,决定切换至哪一语句去工作。因此在分支结构程序设 计中,它是一种强有力的手段。 (二)、情况语句的一般形式: 二 case <表达式> of <情况标号表1>:语句1; <情况标号表2>:语句2; : <情况标号表n>:语句n else 语句{可省略} end; 其中case、of、end是Pascal的保留字, 表达式的值必须是顺序类 型(是整型、布尔型及以后学习的字符型、枚举型和子界型 )。 如果情况表达式的值不落在情况常的范围内,则认为本case语句无 如果情况表达式的值不落在情况常的范围内,则认为本case语句无 执行case语句的下一个语句 语句的下一个语句。 pascal中增加了一个 否则" 中增加了一个" 效,执行case语句的下一个语句。turbo pascal中增加了一个"否则"的 情况,即增加一个else子句 但也是可省的。 子句, 情况,即增加一个else子句,但也是可省的。
08年上学期 基础班讲稿
case语句的执行过程 先计算表达式(称为情况表 达式)的值,如果它的值等于某 一个常量(称为情况常量,也称 情况标号),则执行该情况常量 后面的语句,在执行完语句后, 跳到case语句的末尾end处。
马鞍山· 马鞍山·信息学竞赛辅导网
例一 判断1995年,每个月份的天数。
08年上学期 基础班讲稿
马鞍山· 马鞍山·信息学竞赛辅导网
马鞍山· 马鞍山·信息学竞赛辅导网
思考题
例2 根据x的值,求函数Y的值:
分析:利用case语句进行程序设计, 关键在于巧妙地构造 情况表达式。本例中三种情况可用一个表达式区分出来: Trunc(x/100)。因为x在(0~100)之间时表达式值为0;x 在[100,200)时表达式值为1 ;其余部分可用else子句表 示
08年上学期 基础班讲稿
分析: 分析:应为涉及到四种情况所以我 们使用CASE语句来实现该程序; CASE语句来实现该程序 们使用CASE语句来实现该程序; 参考程序如下: 参考程序如下:
program pen; var a,b,c:integer;{a,b,c分别表示在买笔方案中,6元、5元和4 元钱笔的数目} x,y:integer;{x,y分别表示剩余班费和买完最多的4元笔后剩 的钱} begin write('x=');readln(x){输入x} c:=x div 4;{4元笔最多买的数目} y:=x mod 4;{求买完c支4元笔后剩余的钱数y} case y of 0 : begin a:=0;b:=0; end; 1 : begin a:=0;b:=1;c:=c-1; end; 2 : begin a:=1;b:=0; c:=c-1;end; 3 : begin a:=1;b:=1; c:=c-2;end; end; writeln('a=',a,'b=',b,'c=',c); end.
马鞍山· 马鞍山·信息学竞赛辅导网
第二讲 CASE语句的使用 CASE语句的使用
─程序设设马鞍山· 马鞍山·信息学竞赛辅导网
导入
上面我们知道可以用嵌套的if语句实现多分 上面我们知道可以用嵌套的if语句实现多分 if 支的选择结构。但是如果分支越来越多时, 支的选择结构。但是如果分支越来越多时,用嵌 套的if语句实现多分支就显得繁杂。 if语句实现多分支就显得繁杂 套的if语句实现多分支就显得繁杂。当多分支选 择的各个条件由同一个表达式的不同结果值决定 可以用case语句实现。它的选择过程, case语句实现 时,可以用case语句实现。它的选择过程,很象 一个多路开关,即由case语句的选择表达式的值, case语句的选择表达式的值 一个多路开关,即由case语句的选择表达式的值, 决定切换至哪一语句去工作。 决定切换至哪一语句去工作。因此在分支结构程 序设计中,它是一种强有力的手段。 序设计中,它是一种强有力的手段。在实现多路 径分支控制时, case对某些问题的处理和设计 对某些问题的处理和设计, 径分支控制时,用case对某些问题的处理和设计, 比用if语句写程序具有更简洁、清晰之感。 if语句写程序具有更简洁 比用if语句写程序具有更简洁、清晰之感。
08年上学期 基础班讲稿
进一步思考如果要求输入年和月份,要求输出该月的天数 如何实现!
08年上学期 基础班讲稿
马鞍山· 马鞍山·信息学竞赛辅导网
范例二
期未来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔 奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的 单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学), 同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方 案。 分析:对于以上的实际问题,要买尽量多的笔,易知都买4 分析:对于以上的实际问题,要买尽量多的笔,易知都买4元的笔肯 定可以买最多支笔。因此最多可买的笔为x 定可以买最多支笔。因此最多可买的笔为x div 4支。由于小q要把钱 4支。由于小q 用完,故我们可以按以下方法将钱用完: 若买完x 若买完x div 4支4元钱的笔,还剩1元,则4元钱的笔少买1支, 4支 元钱的笔,还剩1元,则4元钱的笔少买1 换成一支5元笔即可;若买完x 换成一支5元笔即可;若买完x div 4支4元钱的笔,还剩2元,则4元 4支 元钱的笔,还剩2元,则4 钱的笔少买1支,换成一支6元笔即可;若买完x 钱的笔少买1支,换成一支6元笔即可;若买完x div 4支4元钱的笔, 4支 还剩3元,则4元钱的笔少买2支,换成一支5元笔和一支6 还剩3元,则4元钱的笔少买2支,换成一支5元笔和一支6元笔即可。 从以上对买笔方案的调整,可以看出笔的数目都是x 从以上对买笔方案的调整,可以看出笔的数目都是x div 4,因 4,因 此该方案的确为最优方案。 由于我们可以根据 x mod 4 的情况分成0,1,2,3四种情况,用 的情况分成0,1,2,3四种情况, IF…THEN…ELSE语句嵌套比较麻烦,所有我们想到用case 语句来实 IF…THEN…ELSE语句嵌套比较麻烦,所有我们想到用case 现…
08年上学期 基础班讲稿
马鞍山· 马鞍山·信息学竞赛辅导网
case语句的使用
当多分支选择的各个条件由同一个表达式的不同结果值决定时,可以 用case语句实现。它的选择过程,很象一个多路开关,即由case语句的 选择表达式的值,决定切换至哪一语句去工作。因此在分支结构程序设 计中,它是一种强有力的手段。 (二)、情况语句的一般形式: 二 case <表达式> of <情况标号表1>:语句1; <情况标号表2>:语句2; : <情况标号表n>:语句n else 语句{可省略} end; 其中case、of、end是Pascal的保留字, 表达式的值必须是顺序类 型(是整型、布尔型及以后学习的字符型、枚举型和子界型 )。 如果情况表达式的值不落在情况常的范围内,则认为本case语句无 如果情况表达式的值不落在情况常的范围内,则认为本case语句无 执行case语句的下一个语句 语句的下一个语句。 pascal中增加了一个 否则" 中增加了一个" 效,执行case语句的下一个语句。turbo pascal中增加了一个"否则"的 情况,即增加一个else子句 但也是可省的。 子句, 情况,即增加一个else子句,但也是可省的。
08年上学期 基础班讲稿
case语句的执行过程 先计算表达式(称为情况表 达式)的值,如果它的值等于某 一个常量(称为情况常量,也称 情况标号),则执行该情况常量 后面的语句,在执行完语句后, 跳到case语句的末尾end处。
马鞍山· 马鞍山·信息学竞赛辅导网
例一 判断1995年,每个月份的天数。
08年上学期 基础班讲稿
马鞍山· 马鞍山·信息学竞赛辅导网
马鞍山· 马鞍山·信息学竞赛辅导网
思考题
例2 根据x的值,求函数Y的值:
分析:利用case语句进行程序设计, 关键在于巧妙地构造 情况表达式。本例中三种情况可用一个表达式区分出来: Trunc(x/100)。因为x在(0~100)之间时表达式值为0;x 在[100,200)时表达式值为1 ;其余部分可用else子句表 示
08年上学期 基础班讲稿
分析: 分析:应为涉及到四种情况所以我 们使用CASE语句来实现该程序; CASE语句来实现该程序 们使用CASE语句来实现该程序; 参考程序如下: 参考程序如下:
program pen; var a,b,c:integer;{a,b,c分别表示在买笔方案中,6元、5元和4 元钱笔的数目} x,y:integer;{x,y分别表示剩余班费和买完最多的4元笔后剩 的钱} begin write('x=');readln(x){输入x} c:=x div 4;{4元笔最多买的数目} y:=x mod 4;{求买完c支4元笔后剩余的钱数y} case y of 0 : begin a:=0;b:=0; end; 1 : begin a:=0;b:=1;c:=c-1; end; 2 : begin a:=1;b:=0; c:=c-1;end; 3 : begin a:=1;b:=1; c:=c-2;end; end; writeln('a=',a,'b=',b,'c=',c); end.
马鞍山· 马鞍山·信息学竞赛辅导网
第二讲 CASE语句的使用 CASE语句的使用
─程序设设马鞍山· 马鞍山·信息学竞赛辅导网
导入
上面我们知道可以用嵌套的if语句实现多分 上面我们知道可以用嵌套的if语句实现多分 if 支的选择结构。但是如果分支越来越多时, 支的选择结构。但是如果分支越来越多时,用嵌 套的if语句实现多分支就显得繁杂。 if语句实现多分支就显得繁杂 套的if语句实现多分支就显得繁杂。当多分支选 择的各个条件由同一个表达式的不同结果值决定 可以用case语句实现。它的选择过程, case语句实现 时,可以用case语句实现。它的选择过程,很象 一个多路开关,即由case语句的选择表达式的值, case语句的选择表达式的值 一个多路开关,即由case语句的选择表达式的值, 决定切换至哪一语句去工作。 决定切换至哪一语句去工作。因此在分支结构程 序设计中,它是一种强有力的手段。 序设计中,它是一种强有力的手段。在实现多路 径分支控制时, case对某些问题的处理和设计 对某些问题的处理和设计, 径分支控制时,用case对某些问题的处理和设计, 比用if语句写程序具有更简洁、清晰之感。 if语句写程序具有更简洁 比用if语句写程序具有更简洁、清晰之感。