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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四课基本语句(二)§4.1IF语句If语句是一种分支结构,当条件成立时,执行A,否则执行B。1.IF-THEN形式IF条件THEN语句当IF后面的条件为真时,执行THEN后面的语句;当条件为假时,不执行THEN后面的语句,而顺序执行下一条语句。THEN后面的语句若多于一条,必须使用复合语句处理(用begin和end括起)。【例】:输入a,b,c三个数,打印出最大者。按Ctrl+F9,执行后:Pleaseenterthreenumber:457856{输入后按回车}按Alt+F5查看输出:Themaxnumis:78.0002.IF-THEN-ELSE形式流程图表示:N-S图表示:ABA条件B是否是否条件programfindmax;vara,b,c,max:real;beginwrite(‘Pleaseenterthreenumber:’);readln(a,b,c);ifabthenmax:=a{设a为最大}elsemax:=b;ifcmaxthenmax:=c;{比较之后保留最大数}writeln(‘Themaxnumis:’,max:10:3)end.max:10:3是表示在10格的区域内靠右输出max的值,并保留3位小数点x、y、result是实型变量;IF条件THEN语句1ELSE语句2当条件为真时,执行THEN后面的语句1;当条件为假时,执行ELSE后面的语句2。【例】输入一个实数,若是负数输出x0,若为正数输出x0,否则输出x=0。programsample;varx:real;beginwrite(‘x=’);readln(x);ifx0thenwriteln(‘x0’)elseifx0thenwriteln(‘x0’)elsewrite(‘x=0’);end.显然IF-THEN语句是IF-THEN-ELSE语句的特殊情况。在这个例题中,还出现了IF-THEN-ELSE嵌套语句,在这种情况下,ELSE到底与哪一个THEN配对呢?Pascal语言中规定ELSE总是与最接近的一个还没配对的THEN配对。因此,当使用时与这个规定有冲突的话,可以用begin和end括起来。★常见错误:1.在THEN和ELSE之间多加了一个分号,例如把语句:ifx5theny:=3*x+5elsey:=2*x+3;错写成:ifx5theny:=3*x+5;elsey:=2*x+3;因为加了分号以后,IF语句已经结束,而ELSE又不能作为另一个语句的开头,造成语法错误。2.另一个常见错误是在THEN或ELSE包括几个语句时,未加begin与end构成复合语句的形式,例如把语句ifx0thenbeginy:=sqrt(1+x*x);z:=sin(2*x);end;它们的效果是不同的。前者当x0时,要执行两个语句,计算y和z;当x≤0时,什么都不执行。后者当x0时,执行计算y的语句;当x≤0时,不执行计算y的语句,当是无论x为何值,均要执行计算z的语句。§4.2CASE语句错写成:ifx0theny:=sqrt(1+x*x);z:=sin(2*x);这种语句是一种派生的多分支结构,适用于不同情况不同处理的多择一的情况CASE表达式OF情况标号1:语句1;情况标号2:语句2;┇┇情况标号n-1:语句n-1;[ELSE语句n];{[]括起来表示可选项}END;其流程图如图所示:N-S图表示:表达式情况标号1情况标号2情况标号3……else语句1语句2语句3……语句n其中表达式的值必须是整型、字符型、布尔型及后面将介绍的枚举型和子界型,它的类型必须与情况标号的类型一致。情况标号表是一串用逗号隔开的常量。当表达式的值等于某个情况标号时,就执行该情况标号后面所对应的语句;若表达式的值不等于任何一个情况标号,就执行ELSE语句,若没有ELSE语句就执行CASE语句的下一条语句。★常见错误:1、情况标号写成逻辑判断式:casexofx10:……x20:…………2、缺了与case对应的end;【例】读下面的程序,试着理解程序。下一条语句语句n-1表达式=情况标号语句1语句2语句n标号1标号2标号n-1elsetrue……这是一个能对2个数进行加减乘除运算的程序,先输入2个数x和y,再输入一个运算符号,程序将根据输入运算符的不同,对x和y进行相应的运算,最后输出运算结果。按Ctrl+F9,执行后:Inputx,y,oper:153{输入后按回车}Input+or–or*or/:+{输入后按回车}按Alt+F5查看输出:15.00+3.00=18.00再按一次Ctrl+F9,执行后:Inputx,y,oper:153{输入后按回车}Input+or–or*or/:*{输入后按回车}按Alt+F5查看输出:15.00*3.00=45.00programcalculator;varx,y,result:real;oper:char;beginwrite(‘Inputx,y,oper:’);readln(x,y);write(‘Input+or–or*or/:’);readln(oper);caseoperof‘+’: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的不同,对x和y进行不同的运算oper是字符型变量课后练习四:1、阅读下面程序,回答问题。输入A、B两个数,求出其中较大一个数的平方。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这几种情况;(4)输出提示信息“Inputthe……”时,总共输出了______个’programex401;vara,b,c:integer;beginreadln(a,b);ifabs(a)abs(b)thenc:=a*aelsec:=b*b;writeln(c)end.(1)a,b,c是什么类型的变量:_______________(2)输入:56输出___________(3)输入:-105输出___________(1)grade是什么类型的变量:_______________(2)输入:92输出________(3)输入:69输出___________programex402;varscore:integer;grade:char;beginwrite(‘Inputthestudent’’sscore:‘);readln(score);casescorediv10of9,10:grade:=‘A’;7,8:grade:=‘B’;6:grade:=‘C’;0..5:grade:=‘D’;end;writeln(grade);end.3、试试自己编写程序。(1)输入一个时刻的时、分、秒,请换算成秒数并输出。提示:先判断输入的时、分、秒是否符合要求(0=时24,0=分、秒60)(2)求一个四位整数的各位数字之和。输入:一个整数(1000~9999)输出:各位数字之和提示:先判断输入的数是否符合要求(1000~9999),若不符合,则输出‘InputError’;提取这个数的各位数字:个位数——这个数除以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整除)。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功