信息学竞赛Pascal语言:循环结构程序设计。 For语句 1.递增型FOR循环。 FOR循环控制变量:=循环初值TO循环终值DO循环的语句(或语段) 例:FORI:=5TO10DOWRITELN(I); 输出的结果为:2023910即循环一共执行了6次 如果要重复多个语句,一定要用BEGIN-END形式: 例: FORI:=1TO10DO BEGIN WRITELN(I); WRITELN(10-I); END; 2.递减型FOR循环 FOR循环控制变量:=循环初值DOWNTO循环终值DO循环语句 递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。 3.FOR循环的几点注意内容: (1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整型,字符型,枚举型,子界型,不允许是实型。 (2)不允许在循环体内再对循环控制变量赋值。 例如: A:=10;B:=50; FORK:=ATOBDO BEGIN K:=K+1;{这一句是错误的!!!!!!!!} WRITELN(K); END; (3)当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量的值,但并不改变原定的循环次数。 例: A:=1;B:=10; FORI:=ATOBDO BEGIN A:=5;B:=4; END; 在上面例子中,A,B的值在循环的内部发生了变化,但并不影响循环的次数,依然是10次。 4.多重循环循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。 例如,以下FOR循环输出5行,每行输出10个星号(*) FORi:=1to5DO BEGIN FORj:=1TO10DO Write('*'); END; 初学者应当特别注意,内层的循环变量不能和外层的循环变量相同。也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。 下一页阅读:While语句 While语句 1.WHILE循环的执行形式WHILE布尔表达式DO语句 例如: k:=10; WHILEk>0DO BEGIN Writeln(k); k:=k-1 END; 其中 (1)WHIlE和DO是PASCAL保留关键字,是WHILE循环语句的组成部分。 (2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循环体中需要包含多个语句则应该如上例所示,采用一条复合语句。 2.WHILE循环的执行功能当执行到WHILE语句时 (1)求出布尔表达式的值 (2)若布尔表达式的值为真,则执行循环体内的语句;若为“假”,执行步骤4 (3)重复步骤1和2 (4)循环结束,执行循环后面的语句。 下一页阅读 :Repeat-Until语句 Repeat-Until语句 1.REPEAT-UNTIL类型的循环的执行形式 REPEAT 语句1 语句2 …… 语句n UNTIL布尔表达式 例如:以下循环求n=1+2+3+……+100 n:=0;t:=i; REPEAT n:=n+t;t:=t+1; UNTILt>100; 其中 (1)REPEAT和UNTIL是PASCAL保留关键字。 (2)在REPEAT和UNTIL之间的语句构成循环。在它们之间可以有任意多个语句,这一点和FOR,WHILE循环不同,FOR,WHILE循环体在语法上只允许一条语句。 2.REPEAT-UNTIL循环的执行功能 (1)遇到REPEAT语句后,即进入循环体,顺序执行循环体内的语句。 (2)遇到UNTIL语句后,求布尔表达式的值。若值为假,则返回步骤1;若为“真”,执行步骤3 (3)循环结束,执行UNTIL后面的下一条语句。 下一页阅读:思考与练习 思考与练习: 1、计算下列式子的值: (1)1+2+……+100 (2)1+3+5+……+97+99 2、输入一个四位数,求它各位上数字的和。 3、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。 4、宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么? 5、打印下列图案:(输入N值来控制图案的规模,下列图案均以N=3为例) 6、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。)7、求两个数的最小公倍数和最大公约数。(提示:公约数一定小于等于两数中的小数,且能整除两数中的大数。公倍数一定大于等于两数中的大数,且是大数的倍数,又能给两数中的小数整除。) 8、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,……,26代替字母Z,如遇空格则打印一个星号‘*’,英文句子以‘.‘结束。 9、“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?与之相似,有"鸡兔同笼"问题。 10、输入一个正整数N,把它分解成质因子相乘的形式。 如:36=1X2X2X3X3;19=1X19 (提示:设因子为I,从2开始到N,让N重复被I除,如果能整除,则用商取代N,I为一个因子;如果不能整除,再将I增大,继续以上操作,直到I等于N。)
|