meili 发表于 2022-10-21 20:47:18

信息学竞赛Pascal语言:循环结构程序设计(四) 标签:信息学

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