第一范文网 - 专业文章范例文档资料分享平台

信息学奥林匹克竞赛资料(初赛资料)

来源:用户分享 时间:2025/9/13 17:22:06 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

if 条件2 then ?? else ??; end; 〖例题分析〗

1、输入两个数a,b,输出较大的数。 program tt;

var a,b:integer; begin

write('please input a,b:'); readln(a,b);

if a>b then writeln(a) else writeln(b); end.

条件语句练习题:

1、从键盘上读入长方形的边长a,b,计算它的面积和周长,输出。

2、 从键盘读入一个数,判断它的正负。是正数,则输出\,是负数,则输出\。 3、 输入两个数a,b,输出较大数的平方值。

4、 铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。

5、 某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。 6、 输入a,b,c三个不同的数,将它们按由小到大的顺序输出。

7、 当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。编一程序完成分数的自动转换工作。转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。(提示:可以利用DIV运算来使程序更简明)

六.分情况(CASE)语句

〖语法分析〗

分情况语句适用于对一个条件的多种情况的响应。 格式:

case 表达式 of 值表1:语句1; 值表2:语句2; ??

值表n:语句n; else 语句n+1

end;

case语句在使用时有几点要注意:

1. end与case对应;值表与语句之间用“:”分隔;else与语句之间不用分隔符。 2. 表达式必须是有序类型(整型、字符型、布尔型、枚举型、子界型)

3.值表必须是一些由逗号分开的常量,其类型与表达式的类型一致

- 25 -

4. 语句可以是多个语句,但必须用语句括号(begin??end)括起 5. case语句也可以嵌套

例1: 某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。 program pcase1; var

oil,help:char; kg,total:real; begin

write('Enter the amount in kilograms(kg):'); readln(kg); write('Which type of the gasoline(a,b,c):'); readln(oil); wirte('Which type for service(f,m,e):'); readln(help); case oil of

'a': total:=1.50*kg; 'b': total:=1.35*kg; 'c': total:=1.18*kg;

else writeln('Input Error!') end;

{——————处理汽油的类型} case help of 'f':;

'm': total:=total*(1-0.05); 'e': total:=total*(1-0.10); else writeln('Input Error!') end;

{——————处理服务类型} writeln;

writeln('Total is ',total:10:2); end.

例2:从键盘上读入年和月,输出该月有多少天。 program pcase2; var

year,month,day:integer; runnian:boolean; begin

write('Enter year and month:'); readln(year,month); case month of

1,3,5,7,8,10,12: day:=31;

- 26 -

4,6,9,11: day:=30;{————以上处理31天和30天的情况} 2:begin

runnian:=(year mod 400=0) or ((year mod 4=0) and (year mod 100<>0)); case runnian of true: day:=29; false: day:=28; end;

end; {————以上处理2月的情况:闰年29天,平年28天} end; end. 练习题:

1、 编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:

剪刀剪布,石头砸剪刀,布包石头。游戏者分别把自己的选择输入,计算机给出结果。

七.各种循环语句的运用

〖语法分析〗

在PASCAL语言中,有3种循环语句。所谓循环,就是不断地重复某一段程序段。这三种语句分别是FOR,REPEAT-UNTIL,WHILE。 1、 FOR循环语句

FOR语句构成的循环有递增和递减循环两种形式: 1. 递增型FOR循环。 FOR 循环控制变量:=循环初值 TO 循环终值 DO 循环的语句(或语段) 例: FOR I:=5 TO 10 DO WRITELN (I);

输出的结果为: 5 6 7 8 9 10 即循环一共执行了6次 如果要重复多个语句,一定要用BEGIN-END形式: 例:

FOR I:=1 TO 10 DO BEGIN

WRITELN (I); WRITELN (10-I); END;

2. 递减型FOR循环 FOR 循环控制变量:=循环初值 DOWNTO 循环终值 DO 循环语句 递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。 3. FOR循环的几点注意内容:

(1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整型,字符型,枚举型,子界型,不允许是实型。

(2)不允许在循环体内再对循环控制变量赋值。 例如:

A:=10;B:=50;

FOR K:=A TO B DO BEGIN

- 27 -

K:=K+1;{这一句是错误的!!!!!!!!} WRITELN (K); END;

(3)当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量的值,但并不改变原定的循环次数。 例:

A:=1;B:=10;

FOR I:=A TO B DO BEGIN

A:=5;B:=4; END;

在上面例子中,A,B的值在循环的内部发生了变化,但并不影响循环的次数,依然是10次。

4. 多重循环 循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,

形成多重循环。

例如,以下FOR循环输出5行,每行输出10个星号(*) FOR i:=1 to 5 DO BEGIN

FOR j:=1 TO 10 DO Write('*'); END;

初学者应当特别注意,内层的循环变量不能和外层的循环变量相同。也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。 FOR循环练习题:

1、计算下列式子的值: (1)1+2+??+100 (2)1+3+5+??+97+99

2、输入一个四位数,求它各位上数字的和。

3、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。

4、宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,??,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?

2、 WHILE类型的循环

1.WHILE循环的执行形式:WHILE 布尔表达式 DO 语句 例如: k:=10;

- 28 -

信息学奥林匹克竞赛资料(初赛资料).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6gehx4x408565jb3uu0n_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top