Pascal-3.选择结构的程序设计.ppt 36页

  • 13
  • 0
  • 1
  • 约9.29千字
  • 2017-06-26 发布
文档工具:
    1. 1、本文档共36页,可阅读全部内容。
    2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
    3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
    4. 文档侵权举报电话:19940600175。
    Pascal-3.选择结构的程序设计

    例3.8 输入三角形的三边,判断它是否直角三角形,若是则输出“yes”,否则输出“no”,若根本形成不了三解形则输出“not a triangle”。 【分析】 首先判断用户输入的数据是否能够构成三角形,然后再判断它是不是直角三角形。 Program ex3_8; Var a,b,c : integer; begin readln(a,b,c); if (a+b>c) and (b+c>a) and (c+a>b) 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 days<>0 then writeln(days); end. 运行结果: 输入:10 输出:31 例3.11 期未来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓

    文档评论(0)

    • 内容提供方:yaocen
    • 审核时间:2017-06-26
    • 审核编号:5240020024001033

    相似文档