信息学竞赛Pascal语言选择结构程序设计(三) 标签:信息学
<p><strong>优学合肥奥数网讯:</strong>青少年信息学竞赛辅导资料Pascal语言:选择结构程序设计</p><p><strong>选择结构程序设计</strong></p><p><strong>IF语句</strong></p><p>条件语句用于响应一个条件的两个方面。</p><p>例如:今天如果下雨,我们就在家;否则(不下雨)我们就去旅游。</p><p>又如:如果已经搜索得到结果,就打印出答案;否则(还没得到结果)就继续搜索。</p><p>IF语句的一般格式是:</p><p>IF条件</p><p>THEN语句1{条件为真时的响应、处理}</p><p>ELSE语句2;{条件为假时的响应、处理}</p><p>使用条件语句时要注意:</p><p>1、条件语句是一个语句。IF、THEN、ELSE都是语句的一个部分。所以它只能有一个“;”作为分隔符,放在句子的结束,特别要注意不能放在ELSE之前。</p><p>2、如果我们的程序只需对条件为真的情况作出处理,不需要处理条件为假的情况,则IF语句省略ELSE分句,格式变成:</p><p>IF条件</p><p>THEN语句1;{条件为真时的响应、处理}</p><p>如:如果数a大于等于0则输出它的平方根。</p><p>ifa>=0thenwriteln(sqrt(a));</p><p>对以上的例子,条件为假时不需处理,于是我们干脆省去ELSE分句。</p><p>3、if语句可以多层嵌套。嵌套时为了避免误解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:</p><p>IF条件</p><p>THENBEGIN</p><p>if条件1then……else……;</p><p>END</p><p>ELSEBEGIN</p><p>if条件2then……else……;</p><p>end;</p><p>例1、输入两个数a,b,输出较大的数。</p><p>programtt;</p><p>vara,b:integer;</p><p>begin</p><p>write('pleaseinputa,b:');</p><p>readln(a,b);</p><p>ifa>bthenwriteln(a)</p><p>elsewriteln(b);</p><p>end.</p><p><strong>下一页阅读</strong>:<strong>CASE语句</strong><strong></strong></p><p><strong>CASE语句</strong></p><p>分情况语句适用于对一个条件的多种情况的响应。</p><p>格式:</p><p>case表达式of</p><p>标号1:语句1;</p><p>标号2:语句2;</p><p>……</p><p>标号n:语句n;</p><p>else语句n+1</p><p>end;</p><p>case语句在使用时有几点要注意:</p><p>1.end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。</p><p>2.标号必须是一常量,其类型与表达式的类型一致</p><p>例2:某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。</p><p>programpcase1;</p><p>var</p><p>oil,help:char;</p><p>kg,total:real;</p><p>begin</p><p>write('Entertheamountinkilograms(kg):');readln(kg);</p><p>write('Whichtypeofthegasoline(a,b,c):');readln(oil);</p><p>wirte('Whichtypeforservice(f,m,e):');readln(help);</p><p>caseoilof</p><p>'a':total:=1.50*kg;</p><p>'b':total:=1.35*kg;</p><p>'c':total:=1.18*kg;</p><p>elsewriteln('InputError!')</p><p>end;</p><p>{——————处理汽油的类型}</p><p>casehelpof</p><p>'f':;</p><p>'m':total:=total*(1-0.05);</p><p>'e':total:=total*(1-0.10);</p><p>elsewriteln('InputError!')</p><p>end;</p><p>{——————处理服务类型}</p><p>writeln;</p><p>writeln('Totalis',total:10:2);</p><p>end.</p><p>3.可以多个标号对应同一条语句</p><p>4.语句可以是多个语句,但必须用语句括号(begin……end)括起</p><p>5.case语句也可以嵌套</p><p>例3:从键盘上读入年和月,输出该月有多少天。</p><p>programpcase2;</p><p>var</p><p>year,month,day:integer;</p><p>runnian:boolean;</p><p>begin</p><p>write('Enteryearandmonth:');readln(year,month);</p><p>casemonthof</p><p>1,3,5,7,8,10,12:day:=31;</p><p>4,6,9,11:day:=30;{————以上处理31天和30天的情况}</p><p>2:begin</p><p>runnian:=(yearmod400=0)or((yearmod4=0)and(yearmod100<>0));</p><p>caserunnianof</p><p>true:day:=28;</p><p>false:day:=29;</p><p>end;</p><p>end;{————以上处理2月的情况:闰年28天,平年29天}</p><p>end;</p><p>end.</p><p><strong>下一页阅读</strong>:<strong>思考与练习</strong><strong></strong></p><p><strong>思考与练习:</strong></p><p>1、从键盘上读入长方形的边长a,b,计算它的面积和周长,输出。</p><p>2、输入一个时、分、秒,把它转换为一个秒数。</p><p>3、从键盘读入一个数,判断它的正负。是正数,则输出"+",是负数,则输出"-"。</p><p>4、输入两个数a,b,输出较大数的平方值。</p><p>5、铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。</p><p>6、某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。</p><p>7、输入a,b,c三个不同的数,将它们按由小到大的顺序输出。13、当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。编一程序完成分数的自动转换工作。转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。(提示:可以利用DIV运算来使程序更简明)</p><p>8、打印某年某月有多少天。(提示:A、闰年的计算方法:年数能被4整除,并且不能被100整除;或者能被400整除的整数年份。B、利用MOD运算可以判断一个数能否被另一个数整除)</p><p>9、编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:剪刀剪布,石头砸剪刀,布包石头。游戏者分别把自己的选择输入,计算机给出结果。</p><p><strong>最新两期阅读</strong>:信息学竞赛辅导资料Pascal语言基础知识(一)</p><p>信息学竞赛Pascal语言顺序结构程序设计(二)</p><p>更多内容,请参加优学合肥奥数网“<strong>杯赛竞赛</strong>”频道。</p><p>》》“<strong>信息学竞赛</strong>”延伸阅读</p><p> 青少年信息学竞赛语言教程一:简单程序 </p><p>信息学编程语言教程二:顺序结构程序与基本数据类型</p><p>信息学奥赛语言教程PASCAL函数表</p><p>安徽省合肥市青少年信息学竞赛注意事项</p>
页:
[1]