好文档 - 专业文书写作范文服务资料分享网站

广东省汕头市金山中学高中信息技术 pascal教程04 第四课 基本语句(二)教案

天下 分享 时间: 加入收藏 我要投稿 点赞

第四课 基本语句(二)

§4.1 IF语句

If语句是一种分支结构,当条件成立时,执行A,否则执行B。 流程图表示: 是 条件 A B 否 是 A N-S图表示:

条件 B 否

1.IF-THEN形式

IF <条件> THEN <语句>

当IF后面的条件为真时,执行THEN后面的语句;当条件为假时,不执行THEN后面的语句,而顺序执行下一条语句。THEN后面的语句若多于一条,必须使用复合语句处理(用begin和end括起)。 【例】: 输入a ,b ,c三个数,打印出最大者。

program findmax; var a,b,c,max:real ; begin write (‘Please enter three number:’); readln (a,b,c); if a>b then max:=a {设a为最大} else max:=b; if c>max then max:=c;{比较之后保留最大数} writeln (‘The max num is:’,max:10:3) end. 按Ctrl+F9,执行后:

Please enter three number: 45 78 56 { 输入后按回车 } 按Alt+F5 查看输出:

The max num is: 78.000

2. IF-THEN-ELSE形式

x、y、result是实型变量; max:10:3是表示在10格的区域内靠右输出max的值,并保留3位小数点

IF <条件> THEN <语句1> ELSE <语句2>

当条件为真时,执行THEN后面的语句1;当条件为假时,执行ELSE后面的语句2。 【例】输入一个实数,若是负数输出x<0,若为正数输出x>0,否则输出x=0。 program sample; var x :real; begin

write(‘ x = ’); readln(x); if x < 0

then writeln(‘x<0’) else if x > 0

then writeln(‘x>0’) else write(‘x=0’); end.

显然IF-THEN语句是IF-THEN-ELSE语句的特殊情况。在这个例题中,还出现了IF-THEN-ELSE嵌套语句,在这种情况下,ELSE到底与哪一个THEN配对呢?

Pascal语言中规定ELSE总是与最接近的一个还没配对的THEN配对。因此,当使用时与这个规定有冲突的话,可以用begin和end括起来。 ★ 常见错误:

1.在THEN和ELSE之间多加了一个分号,例如把语句: if x>5 then y := 3*x+5 else y := 2*x+3;

错写成: if x>5 then y := 3*x+5; else y := 2*x+3;

因为加了分号以后,IF语句已经结束,而ELSE又不能作为另一个语句的开头,造成语法错误。 2.另一个常见错误是在THEN或ELSE包括几个语句时,未加begin与end构成复合语

句的形式,例如把语句

if x>0

错写成: then begin

if x>0 y := sqrt(1+x*x);

then y :=sqrt(1+x*x); z := sin(2*x);

z := sin(2*x); end; 它们的效果是不同的。

前者当x>0时,要执行两个语句,计算y和z;当x≤0时,什么都不执行。

后者当x>0时,执行计算y的语句;当x≤0时,不执行计算y的语句,当是无论x为何值,均要执行计算z的语句。 §4.2 CASE语句

这种语句是一种派生的多分支结构,适用于不同情况不同处理的多择一的情况

CASE <表达式> OF

<情况标号1> :<语句1>; <情况标号2> :<语句2>; ┇ ┇

<情况标号n-1> :<语句n-1>;

[ ELSE <语句n> ]; { [ ] 括起来表示可选项 } END;

其流程图如图所示:

表达式=情况标号 标号1 标号2 else 标号n-1 语句n-1 语句n true 语句1 语句2 …… 下一条语句 N-S图表示: 表达式 情况标号1 语句1 情况标号2 情况标号3 语句2 语句3 …… …… else 语句n 其中表达式的值必须是整型、字符型、布尔型及后面将介绍的枚举型和子界型,它的类型必须与情况标号的类型一致。情况标号表是一串用逗号隔开的常量。

当表达式的值等于某个情况标号时,就执行该情况标号后面所对应的语句;若表达式的值不等于任何一个情况标号,就执行ELSE语句,若没有ELSE语句就执行CASE语句的下一条语句。 ★ 常见错误:

1、情况标号写成逻辑判断式: case x of x<10 : …… x>20 : ……

……

2、缺了与case对应的end; 【例】 读下面的程序,试着理解程序。

program calculator; var x ,y ,result :real; oper :char; begin write(‘Input x , y , oper :’); readln(x,y); write(‘Input + or – or * or / :’); readln(oper); case oper of ‘+’:result := x+y; ‘-’:result := x-y; ‘*’:result := x*y; ‘/’: result := x/y; end; {注意这有个end与case对应哦} writeln(x:6:2,oper,y:6:2,‘=’,result:8:2); end. oper是字符型变量 读入一个字符 + 、- 、* 、/ 根据oper的不同,对x和y进行不同的运算 这是一个能对2个数进行加减乘除运算的程序,先输入2个数x和y ,再输入一个运算符号,程序将根据输入运算符的不同,对x和y进行相应的运算,最后输出运算结果。 按Ctrl+F9,执行后:

Input x , y , oper :15 3 { 输入后按回车 } Input + or – or * or / : + { 输入后按回车 } 按Alt+F5 查看输出:

15.00 + 3.00 = 18.00

再按一次Ctrl+F9,执行后:

Input x , y , oper :15 3 { 输入后按回车 } Input + or – or * or / : * { 输入后按回车 } 按Alt+F5 查看输出:

15.00 * 3.00 = 45.00

课后练习四:

1、 阅读下面程序,回答问题。

输入A、B两个数,求出其中较大一个数的平方。

program ex401; var a,b,c : integer ;

begin

readln (a,b); if abs(a)>abs(b) then c:=a*a else c:=b*b; writeln (c) end.

2、阅读下面程序,回答问题。

将学生的成绩(百分制)转换成A、B、C、D四个等级:

A-90分以上(含90分); B-70分以上(含70分),90分以下; C-60分以上(含60分),70分以下; D-60分以下; 输入学生成绩,输出该成绩对应的等级。

提示:将成绩x整除10,结果只有0、1、2、……9、10这几种情况;

program ex402; (1) grade是什么类型的变量: var score :integer;

_______________ grade :char;

begin (2) 输入:92 write (‘Input the student’ ’ s score : ‘); 输出 ________ readln(score); case score div 10 of 9,10:grade := ‘A’; 7,8:grade := ‘B’; 6: grade := ‘C’; 0..5: grade := ‘D’; end; writeln(grade); end. (3) 输入:69

输出 ___________

(4)输出提示信息

“Input the ……”时,总共输 出了______个 ’

(1) a,b,c 是什么类型的变量: _______________ (2) 输入: 5 6

输出 ___________ (3) 输入: -10 5

输出 ___________

3、试试自己编写程序。

(1)输入一个时刻的时、分、秒,请换算成秒数并输出。 提示:先判断输入的时、分、秒是否符合要求

(0<=时<24,0<=分、秒<60)

(2)求一个四位整数的各位数字之和。

输入:一个整数(1000~9999) 输出:各位数字之和 提示:先判断输入的数是否符合要求(1000~9999),若不符合,则输出‘Input Error’; 提取这个数的各位数字:个位数——这个数除以10的余数;

十位数——这个数除以100的余数,再整除10; ……

(3)铁路托运行李,从A地到B地,按规定行李不超过50公斤时,每公斤的托运费为0.15

元;如超过50公斤,超过部分按每公斤0.20元计算。

编一程序自动计算托运费,输入行李重量,输出托运费。

(4)某全自动加油站有a,b,c三种汽油,单

价(元/kg)分别是1.50、1.35、1.18。加油站提供了“自动”、“协助加”、“自己加”三个服务等级,选择“协助加”可获5%的优惠,选择“自己加”可获10%的优惠。

编一个加油计费程序,输入汽油品种、汽油量、服务类型(f-自动,e-协助,m-自己),然后输出应付款。

(5)打印某年某月有几天。

输入:年、月; 输出:天数

提示: ① 每年1、3、5、7、8、10、12这几个月每月有31天

② 每年4、6、9、11这几个月每月有30天 ③ 2月分两种情况:闰年29天,否则28天

* 闰年的条件:年数能被4整除,且不能被100整除(除非可以被400整除)。

广东省汕头市金山中学高中信息技术 pascal教程04 第四课 基本语句(二)教案

第四课基本语句(二)§4.1IF语句If语句是一种分支结构,当条件成立时,执行A,否则执行B。流程图表示:是条件AB否是AN-S图表示:条件B否1.IF-THEN形式IFTHEN当IF后面的条件为真时,
推荐度:
点击下载文档文档为doc格式
1wpvx4szyu0fvqu4yw276b8ve00zsa00v5n
领取福利

微信扫码领取福利

微信扫码分享