欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机基础程序结构.ppt

    • 资源ID:480011       资源大小:537.50KB        全文页数:77页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机基础程序结构.ppt

    第四章第四章 结构化程序设计结构化程序设计和控制结构和控制结构结构化程序设计结构化程序设计 上个世纪六十年代末,结构化程序设计,软件发上个世纪六十年代末,结构化程序设计,软件发展的一个重要的里程碑。展的一个重要的里程碑。结构化程序设计的思路结构化程序设计的思路 将一个描述复杂的问题,系统地分解成足够小的和可管理将一个描述复杂的问题,系统地分解成足够小的和可管理的单元的单元/模块,从而最终可以编写成可以正确执行的程序。模块,从而最终可以编写成可以正确执行的程序。因为该机制是将一个大规模的工作,系统地分解因为该机制是将一个大规模的工作,系统地分解为更小的单元为更小的单元/模块,因此也被称为模块,因此也被称为“系统分解系统分解”。4-2系统分解系统分解 系统分解实际上是执行任务的过程,即:对于一系统分解实际上是执行任务的过程,即:对于一个工作单元,将它分解成一组更小的单元,而这个工作单元,将它分解成一组更小的单元,而这组单元可以执行与大单元相同的任务。组单元可以执行与大单元相同的任务。这种思想实际就是:从一个大的、复杂的任务开这种思想实际就是:从一个大的、复杂的任务开始,逐步将之分解到非常小的单元,对于这些小始,逐步将之分解到非常小的单元,对于这些小单元来说,是很容易编写出程序来执行的。单元来说,是很容易编写出程序来执行的。既然该过程是一步一步被应用,而每一步都是将既然该过程是一步一步被应用,而每一步都是将一个相对复杂的任务精炼成一组更简单的子任务一个相对复杂的任务精炼成一组更简单的子任务,那么这种过程也可以称为,那么这种过程也可以称为“逐步求精逐步求精”。4-3三种结构:顺序,条件,重复三种结构:顺序,条件,重复 系统分解思想使用三种基本的控制结构来分解一系统分解思想使用三种基本的控制结构来分解一个大规模的任务,这三种基本结构是:顺序,条个大规模的任务,这三种基本结构是:顺序,条件和重复。件和重复。4-4顺序结构顺序结构 顺序结构,就是将一个指定的任务分解成两个子顺序结构,就是将一个指定的任务分解成两个子任务,一个接着一个。也就是说,当执行完第一任务,一个接着一个。也就是说,当执行完第一个子任务之后再继续执行下一个子任务个子任务之后再继续执行下一个子任务而从而从第二个子任务返回第一个子任务的情况永远不会第二个子任务返回第一个子任务的情况永远不会发生。发生。长度单位换算的问题长度单位换算的问题4-5执 行 第 1部分(b)顺序执 行 第 2部分条件结构条件结构 条件结构,又称判定结构,根据条件的不同每次条件结构,又称判定结构,根据条件的不同每次只执行两个子任务中的其中一个。只执行两个子任务中的其中一个。当条件为真时,执行某一个子任务,若为假则执行另一个当条件为真时,执行某一个子任务,若为假则执行另一个。任何一个子任务都可以为空,也就是说,它可以任何一个子任务都可以为空,也就是说,它可以“什么都什么都不做不做”。但不管结果如何,当正确的子任务执行完后,程但不管结果如何,当正确的子任务执行完后,程序始终向前行进,永远不会回头去再次测试条件序始终向前行进,永远不会回头去再次测试条件。4-6子任务1(c)条件子任务2测试条件真假重复结构重复结构 重复结构,又称循环结构,只要条件为真就需要重复结构,又称循环结构,只要条件为真就需要将某一个子任务多次执行时就将使用这种程序结将某一个子任务多次执行时就将使用这种程序结构。构。当条件为真,执行这一子任务;子任务执行结束当条件为真,执行这一子任务;子任务执行结束后,回头再次检测条件是否为真。后,回头再次检测条件是否为真。只要被测试的条件为真,程序就会继续执行这一只要被测试的条件为真,程序就会继续执行这一相同子任务。一旦条件不为真,程序就向前行进相同子任务。一旦条件不为真,程序就向前行进。4-7子任务(d)重复测试条件真假4-8控制结构控制结构条件条件ifif-elseswitch重复重复whilefordo-while4-9ifif(condition)action;conditionactionTFCondition,一个C表达式,TRUE(non-zero)或 FALSE(zero).Action,一条C语句,简单语句或复合语句.4-10示例示例if(x=10)y=x*x+5;if(x=10)y=x*x+5;z=(2*y)/3;if(x=10)y=x*x+5;z=(2*y)/3;复合语句;如果 x=10,都执行如果x=10,执行第一条;第二条语句总会执行换行和缩进风格换行和缩进风格 if语句通行的换行和缩进风格。语句通行的换行和缩进风格。这样的编程风格使得阅读该段代码的人能够很快这样的编程风格使得阅读该段代码的人能够很快的识别出如果条件成立将被执行的部分。请记住的识别出如果条件成立将被执行的部分。请记住,风格只是增强了代码的可读性,并不影响程序,风格只是增强了代码的可读性,并不影响程序的执行。的执行。4-114-12更多示例更多示例if(temperature=0)printf(At or below freezing point.n);if(key=K)numK+;if(month=4|month=6|month=9|month=11)printf(The month has 30 daysn);4-13常见错误常见错误if(18=age=25)/*此条件总是为真此条件总是为真*/num+;if(x=2)/*此条件总是为真此条件总是为真*/y=3;/*变量变量y总会被赋值为总会被赋值为3*/4-14if嵌套嵌套if(x=3)if(y!=6)z=z+1;w=w+2;if(x=3)&(y!=6)z=z+1;w=w+2;等价于等价于4-15if-elseif(condition)action_if;else action_else;conditionaction_ifaction_elseTF示例示例if(temperature=0)printf(At or below freeing point.n);elseprintf(Above freezing.n);等价于等价于if(temperature0)printf(Above freeing.n);4-16示例示例if(x)y+;z-;else y-;z+;4-17成绩等级换算成绩等级换算级联的级联的if-else#include int main()char grade;/*成绩等级成绩等级*/*获得输入值获得输入值*/printf(“Enter the grade:”);scanf(%c,&grade);/*执行换算执行换算*/if(grade=A)printf(90100n);else if(grade=B)printf(8089n);else if(grade=C)printf(7079n);else if(grade=D)printf(6069n);else if(grade=E)printf(3)z=z/2;else z=z*2;if(x!=10)if(y 3)z=z/2;else z=z*2;等价于if(x!=10)if(y 3)z=z/2;else z=z*2;不同于 使用大括号结合语句使用大括号结合语句 条件表达式:条件表达式:x?y:z4-20if-else:错误检查:错误检查#include int main()int dividend;int divisor;int result;printf(Enter the dividend:);scanf(%d,&dividend);printf(Enter the divisor:);scanf(%d,&divisor);if(divisor!=0)result=dividend/divisor;printf(The result of the division is%d.n,result);elseprintf(A divisor of zero is not allowed.n);4-214-22whilewhile(test)loop_body;testloop_bodyTF在条件为真的情况下重复执行一个语句。在在条件为真的情况下重复执行一个语句。在每次重复执行这个语句之前,都要先检查条每次重复执行这个语句之前,都要先检查条件。如果条件的值为逻辑真(非零),语句件。如果条件的值为逻辑真(非零),语句将被再次执行。将被再次执行。示例示例#include int main()int i=0;while(i10)printf(%d,i);i=i+1;while语句适用于使用语句适用于使用标志控制标志控制的循环。的循环。事先并不知道重复的次数,只知道循环需要继续直到某个事先并不知道重复的次数,只知道循环需要继续直到某个事件(即标志)发生。事件(即标志)发生。4-234-24无限循环无限循环#include int main()int i=0;while(i10)printf(%d,i);4-25forfor(init;end-test;re-init)statementinittestloop_bodyre-initFTfor for循环,适用于循环,适用于记数器控制记数器控制的循环。的循环。for循环是循环是while循环的一种特殊情况,它适用于事循环的一种特殊情况,它适用于事先知道重复次数的情况。先知道重复次数的情况。for循环可以使用循环可以使用while循环来构造(反之亦然)循环来构造(反之亦然)#include int main()int i;for(i=0;i10;i+)printf(%d,i);4-264-27示例示例/*-这个循环会输出什么?这个循环会输出什么?-*/for(i=0;i=10;i+)printf(“%d”,i);计算计算9的阶乘的阶乘#include int main()int i;int result=1;for(i=9;i1;i-)result=result*i;4-28常见错误常见错误result=1;for(i=9;i1;i-);result=result*i;printf(result=%dn,result);printf(i=%dn,i);4-294-30循环嵌套循环嵌套#include int main()int multiplicand;/*被乘数被乘数*/int multiplier;/*乘数乘数*/*外层循环外层循环*/for(multiplier=1;multiplier10;multiplier+)/*内部循环内部循环*/for(multiplicand=1;multiplicand=multiplier;multiplicand+)printf(%d*%d=%dt,multiplicand,multiplier,multiplicand*multiplier);printf(n);“t”,制表符,制表符4-31do-whiledo loop_body;while(test);loop_bodytestTF在循环体被执行一次之后再计算在循环体被执行一次之后再计算条件表达式的值条件表达式的值示例示例i=0;do printf(%dn,i);i=i+1;while(i 10);4-32编程风格编程风格 对于以上三种类型的重复结构,哪些情况下采用对于以上三种类型的重复结构,哪些情况下采用while,哪些情况采用,哪些情况采用for,哪些情况采用,哪些情况采用do-while?在大部分情况下,这三种结构可以互换使用。在大部分情况下,这三种结构可以互换使用。区别在于编程风格:为了提高代码的可读性,更区别在于编程风格:为了提高代码的可读性,更好的将循环的目的传达给阅读代码的人,而选择好的将循环的目的传达给阅读代码的人,而选择恰当的结构。恰当的结构。4-334-34switchswitch(expression)case const1:action1;break;case const2:action2;break;defau

    注意事项

    本文(计算机基础程序结构.ppt)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开