首页 PASCAL教学 PASCAL教程 PASCAL练习题 基础知识 常用算法 阶段测试 初赛试题 复赛题库 FP错误代码 留言板
第一章 简单程序
第一节 程序结构和基本语句
第二节 顺序结构程序与基本数据类型
第二章 分支程序
第一节 条件语句与复合语句
第二节 情况语句与算术标准函数
第三章 循环程序
第一节 程序结构和基本语句
第二节 Repeat 循环
第三节 While 循环
第四章 函数与过程
第一节 函数
第二节 自定义过程
第五章 自定义数据类型
第一节 数组与子界类型
第二节 二维数组与枚举类型
第三节 集合类型
第四节 记录类型和文件类型
第五节 指针类型与动态数据结构
第六章 程序设计与基本算法
第一节 递推与递归算法
第二节 回溯算法
第七章 数据结构及其应用
第一节 线性表
第二节 队列
第三节 栈
第四节 数组
第八章 搜索
第一节 深度优先搜索
第二节 广度优先搜索
第九章 其他常用知识和算法
第一节 图论及其基本算法
第二节 动态规划
 
   

第二节  情况语句与算术标准函数

 

如果有多种(两种或两种以上)选择,常用情况语句编程。

将前面[2.1]改成用如下方法来处理。根据题意,付款计算可分为两种情况:

        Y=50*X    (X100)

        Y=80*X    (X=100)

显然,情况①与②的选择取决于X值。假设用N表示“情况值”,暂且先让N2

如果X100N=1;(此题中N的值只是12,且取决于X值)

Pascal 程序:

Program Exam21_1

Var XYN: integer

Begin

  Write('X=') readln(x) n:=2     { 先让n=2 }

  if X100 then n:=1                {如果X100 n=1 }

  Case n  of                         { 关于情况处理 }

    1: Y:=50*X

    2: Y:=80*X

  end

  Writeln('Y='Y)

  Readln

End.

程序中的 Caseend 语句为情况语句,是多路分支控制,一般格式为:

   Case 表达式 of

     情况常量表1: 语句1

     情况常量表2: 语句2

        :        :

     情况常量表n: 语句n

    end

 

执行情况语句时,先计算Case后面表达式的值,然后根据该值在情况常量表中的“对应安排”,选择其对应的语句执行,执行完所选择语句后就结束Case语句;如果常量表中没有一个与表达式值对应的语句,则什么也不做就结束本Case语句。

 

Case 语句的另一种应用格式为:

     Case 表达式 of

        情况常量表1: 语句1

        情况常量表2: 语句2

           :        :

        情况常量表n: 语句n

        else  语句 n+1

     end

这种格式的前面部分是相同的,所不同的是:如果常量表中没有一个与表达式值对应的语句,则执行与else对应的语句,然后结束Case语句。

[2.2] 对某产品征收税金,在产值1万元以上征收税5%;在1万元以下但在5000

以上的征收税3%;在5000元以下但在1000元以上征收税2%1000元以下的免收税。编程计算该产品的收税金额。

:x为产值,tax为税金,用P表示情况常量各值,以题意中每1000元为情况分界:

       P=0:                 tax=0        (x<1000 )

       P=1234:        tax=x*0.02    (1000<=x<5000 )

       P=56789:     tax=x*0.03    (5000<X<=10000 )

       P=10:                tax=x*0.05    (x> 10000 )

    这里的P是“情况”值,用产值x除以1000的整数值作为P,如果P>10也归入P=10的情况。Pascal语言用P=trunc(x/1000)取整计算,

Pascal程序:

Program Exam22

Var  xp :  integer

    Tax  : real

Begin

  Write('Number=') readln(x)

  P:=trunc(x/1000)  

if P9 then P:=10

  Case  P  of

     0                   :  tax:=0

     1,2,3,4           :  tax:=x*0.02

     5,6,7,8,9        :  tax:=x*0.03

     10                 :  tax:=x*0.05

  end

  Writeln('tt='tt:5:2)

  Readln

End.

情况表达式的计算必须考虑到“全部”情况,不要有遗漏。如果情况常量表的“值”在某范围内是连续的,可将常量表写成:

                         n1.. n2:语句;

因此,上面程序中的情况常量表可以写成如下程序中表示形式:

Program Exam22_1

Var x,p: integer

   tax: real

Begin

  Write('Number=') readln(x)

  P:=trunc(x/1000)  

if P9 then P:=10

  Case  P  of

    0       : tax:=0

    1..4   : tax:=x*0.02  { 14作为同一情况处理 }

    5..9   : tax:=x*0.03  { 59作为同一情况处理 }

    10     : tax:=x*0.05

  end

  Writeln('tt='tt:5:2)

  Readln

End.

程序中的trunc(x)为取整函数,是Pascal的算术标准函数之一。Pascal常用的算术标准函数有19:

    (1) abs(x) x的绝对值(|x|)

    (2) exp(x) ex的值; e为无理数2.71828…)

    (3) frac(x)x的小数部分;

    (4) int(x) x的整数部分(不舍入,函数值为实型)

    (5) ln(x)  求以e为底的x的对数(log ex  )

    (6) odd(x) 判断x的奇偶数(x为奇数时odd(x)值为true,否则为false)

    (7) ord(x) x的序号,结果为整型(x为有序类型量)

    (8) pi    π值(3.1415926535897932)

    (9) pred (x) x(有序类型)的前趋值;

    (10) succ(x) x(有序类型)的后继值;

    (11) random 随机函数,产生01的随机值;

    (12) random(n)产生0n的随机数(nword类型,先执行randomize 才能得到随机整数)

    (13) round(x) x的四舍五入整数;

    (14) trunc(x) x的整数部分(截掉小数部分,结果为整型)

    (15) sqr(x) x的平方值(x2 )

    (16) sqrt(x) x的开平方根值(         )

(17) sin(x) x的正弦函数(x为弧度)

(18) cox(x) x的余弦函数(x为弧度)

(19) arctan(x) 正切的反三角函数(x为数值)

 

习题2.2

1.运输公司计算运费时,距离(S)越长,每公里运费越低,标准如下:

      如果S250公里;运费为标准运价的100%               

      如果250公里<=S500公里,运费为标准运价的98%    

      如果500公里<=S1000公里,运费为标准运价的95%   

      如果1000公里<=S2000公里,运费为标准运价的92%  

      如果2000公里<=S3000公里,运费为标准运价的90%  

      如果S=>3000公里,运费为标准运价的85%;。请编计算运费的程序。

2. 输入考试成绩,如果获85分以上为 A等,获60分~84分为B等,60分以下为C等,编程输出考试等级。

3. 某车间按工人加工零件的数量发放奖金,奖金分为五个等级:每月加工零件数N < 100者奖金为10元;100 < = N < 110者奖金为30元;110 < = N <120 者奖金为50元;120 < = N <130 者奖金为70元;N > 130者为80元。

请编程,由键盘输入加工零件数量,显示应发奖金数。


 
 

© 版权所有 桐乡市高级中学计算机组 王建献 2005-
制作与维护:
桐高计算机组 王建献 邮箱:omnislash2000@163.com
建议使用:800*600分辨率,IE5.0以上版本浏览器