顺序结构程序.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 顺序结构程序 顺序结构前面的简单程序已体现出处理问题步骤、思路的顺序关系,这就是顺序结构程序。 [例1.]交换两个变量的值:由键盘输入两个正整数A和B,编程交换这两个变量的值。 解:交换两个变量的值,可以想象成交换两盒录音带(称为A和B)的内容,可以按以下步骤处理: 步骤:拿一盒空白录音带C为过渡,先将A翻录至C; 步骤:再将B翻录至A; 步骤:最后将C翻录至B。 这样操作,可达到题目要求。 Pascal程序: Program Exam1; Var a,b,c?? : integer; Begin ? Write(‘A,B=’); ? Readln(a,b); ? C:= A; ?????????????? {等价于步骤1} ? A := B;??????????????? {等价于步骤2} ? B := C;??????????????? {等价于步骤3} ? Writeln(A,B); End. [例1.] 分钱游戏。甲、乙、丙三人共有24元钱,先由甲分钱给乙、丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。 求原先各人的钱数分别是多少? 解:设甲、乙、丙三人的钱数分别为A,B,C。用倒推(逆序)算法, 从最后结果入手,按反相顺序,分步骤推算出每次各人当时的钱数:(在每个步骤中,各人钱数分别存在A、B、C中) ? 步骤: A=8 B=8 C=8????? ? {这是最后结果的钱数,三人都一样多 } ? 步骤: A=A/2 (=4)???? B=B/2 (=4)???? C=A+B+C(=16)???? { A,B未得到丙分给的钱时,只有结果数的一半;C应包含给A,B及本身数三者之和 } ? 步骤: A=A/2 (=2)???? C=C/2 (=8)???? B=A+B+C(=14)????? {A,C未得到乙分给的钱时,只有巳有数的一半;B应包含给A,C及本身数三者之和 } ? 步骤: B=B/2 (=7)???? C=C/2 (=4)???? A=A+B+C(=13)???? ?C未得到甲分给的钱时,只有巳有数的一半;A应包含给B,C及本身数三者之和 } ? 步骤: 输出A(=13)B(=7)C(=4){此时的A,B,C 就是三人原先的钱数 } Pascal程序: Program Exam1; Var a,b,c: integer; Begin ? a:=8; b:=8; c:=8;??????????????????????????{对应于步骤} a:=a div 2; b:=b div 2; c:=a+b+c;????????? {对应于步骤} ? a:=a div 2; c:=c div 2; b:=a+b+c;????????? {对应于步骤} ? b:=b div 2; c:=c div 2; a:=a+b+c;????????? {对应于步骤} ? Writeln(a=,a,? : 4,b=,b,? : 4,c=,c) ;  {输出} ? Readln End. 细心观察,会发现本程序语句的顺序很关键。此例用反推顺序(逆序),按步骤正确推算出各变量的值。当然,有的问题可按正序步骤编程,这类程序都称为顺序程序。 本程序Writeln语句的输出项含有(? ? :? 4 ),这里的冒号用来指定该项显示所占宽度,此处是输出4个空格即(空格项占4格)。 ? [例1.] 有鸡兔同笼,头30,脚 90,究竟笼中的鸡和兔各有多少只? 解:设鸡为J只,兔为T只,头为H,脚为F,则: ??????? J+T=30???????????? 2*J+4*T=90???? ② 解此题暂不必采用数学上直接解方程的办法,可采用“假设条件与逻辑推理”的办法: ?假设笼中30 个头全都是兔,那么都按每头4只脚计算,总脚数为(4*H),与实际脚数 ( F )之差为(4*H—F),如果这个差=0,则笼中全是兔(即鸡为0只);如果这个差值 0,说明多计算了脚数,凡是鸡都多给算了两只脚,用它除以2就能得到鸡的只数,处理步骤为: ? ? J=(4*H—F)/2?????? {先用脚数差值除以2算出鸡的只数} ? ? T=H—J??????????????? {再用总头数减鸡数算出免的只数} 按此方法,这两步运算必须注意先后顺序才会符合运算逻辑。 Pascal程序: Program Exam1; Const H=30;???????????????? {常量说明 } ???? F=90; Var J,T: byte;??????????? {为字节类型的整数 } Begin ??J:=(4*H-F) div 2;??? {整除运算 } ?

文档评论(0)

kaku + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8124126005000000

1亿VIP精品文档

相关文档