版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章安全第一—信息安全第6章大道至简——程序设计CONTENTS目录6.1程序设计基础知识6.2程序设计语言与工具程序设计基础知识6.1程序设计基础知识程序设计语言和工具程序设计方法和实践程序设计基础知识程序设计语言现状程序设计语言与算法结构化程序设计6.1.1程序设计语言现状语言人们在长期的生产、生活中产生的语言,如汉语、英语、法语、德语、日语等。人们为完成特定的工作或任务而自行设计开发的语言,如C、C++、Java、Python等。程序设计语言现状自然语言人工语言编译型语言解释型语言结构化查询语言(SQL)C语言所有的程序编写之后通过编译才能运行的称为编译型语言。可以编写一条语句就执行一条语句,边编写,边执行,而不需要等所有的程序编写完之后才能执行。根据执行的方式不同分类根据执行的方式不同分类开源C语言闭源Java计算机识别第一代的机器语言计算机通过穿孔纸带输入、输出的,当时程序设计语言实际上就是0和1组成的序列,只有少数专家才能编写,调试也很困难。第二代的机器语言汇编语言执行效率较高,但是与通常的自然语言差距较大,掌握起来较难。第三代的机器语言人们发明了类自然语言的第三代高级语言,如C、Java等。高级语言通过类似自然语言的方式进行编写,得到了广泛应用。程序开发过程设计算法01编译和连接04编写程序源代码02调试程序05编辑源程序03运行程序06编译/汇编通过需求分析、设计、编码、编辑、编译、连接、运行、调试,类自然语言形式的源程序可逐步转化为汇编码和机器码,最终生成可执行的文件,这个过程可被称为编译、汇编。C语言可执行文件.exeJava语言可执行文件.class编译/汇编反之,通过可执行文件,也可以逐步反编译、反汇编而还原出类自然语言的源程序。6.1.2程序设计语言与算法程序开发过程数据
结构算法程序核心应用非常广泛,有固有歧义性,不同情况,不同人理解不同,在专业场合已不适用。自然语言常用工具,有其绘制规则与具体的图标,在算法分析方面应用较多。流程图对传统流程图改进后提出,呈规整的盒状,与传统意义上的流程图是等价的。NS流程图介于流程图与具体的程序之间,表述方法很多,可较为方便地转化为具体的程序实现。伪代码终极表现形式,通过自然语言、流程图/NS流程图、伪代码,算法最终转化为具体的程序。证明正确性,仍然需要通过动态运行才能得到进一步验证。程序0103020504算法表
述方法6.1.2结构化程序设计顺序选择循环结构化程序设计结构化程序设计如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。结构化程序设计本质上并不是无GO-TO语句的编程方法,而是一种使程序代码容易阅读、容易理解的编程方法。使用前向GO-TO语句(或与之等效的专用语句)结构化程序设计尽可能少用GO-TO语句的程序设计方法。最好仅在检测出错误时才使用GO-TO语句,而且应该总是使用前向GO-TO语句。DO-UNTILDO-CASE实质是受限制的前向GO-TO语句,用于转移到循环结构后面的语句。LEAVE或BREAK结构扩展的结构化程序设计除上述3种基本控制结构外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构。修正的结构化程序设计再允许使用LEAVE(或BREAK)结构。经典的结构程序设计只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构。结构化程序设计原则结构化编码自顶向下逐步细化模块化设计小结掌握程序设计语言现状、程序设计语言与算法、结构化程序设计。了解结构化程序设计的定义与原则。程序设计语言与工具6.2C语言开发工具VCBCTCrextesterCodingGroundCodeChefC语言开发工具按照现在键盘的设计,键盘最多可以容纳128个键。ASCII中字母和数字的编码都是连续的,应用较广。其他的编码格式还包括GBK、UTF-8、CJK、GB2312、Big-5等,不同的编码格式区别较大,在使用时需要注意。顺序
结构选择结构循环结构顺序结构是简单的结构化程序设计方法,是按照从上到下的顺序依次执行。顺序结构结构化程序设计6.2.1顺序结构示例示例对于三角形来说,求解三角形的面积的公式有很多,由于一个三角形的面积是确定的,也就是说,所有的三角形的面积公式都是等价的,可以相互转换。对任何一个平面三角形ΔABC而言,其顶点A、B、C对的边分别记为a、b、c,根据秦九韶-海伦公式,其面积S可以用如下公式得到:
示例于是,可以用顺序结构得到三角形面积的计算方法,直接输入三条边的长度,得到三角形的面积。图6.9计算三角形面积代码Pleaseinput3sidesoftriangle:3456.000000Pressanykeytocontinue图6.10计算三角形面积结果如果输入的三条边长度不能构成三角形,6.2.1目中三角形面积计算方法失效。如何才能判断输入的三条边是否可以构成三角形呢?6.2.2选择结构示例双分支三目条件运算符多分支选择结构双分支if语句;if-else语句;if-else-if语句。三目条件运算符条件运算符——?:exp1?exp2:exp3多分支switch语句;case;break;default。选择结构C语言中唯一的三目运算符。以求最大值为例假设输入4个数据,若要求出4个数据的最大值,需要比较4−1=3次。代码如图6.11所示,运行结果如图6.12所示:Pleaseinput4integernumber:201249549Pressanykeytocontinue图6.12求最大值结果图6.11求最大值代码输出4个整数的最小值如何实现?用其他选择语句如何实现?6.2.3循环结构示例循环结构在选择结构中,对n个数据来说,要求出最大值或者最小值,需要比较(n−1)次。比较一次,就需要执行一次if语句,如果数据量非常大,比如,成千上万,甚至更多,难道需要书写成千上万条if语句?while语句do-while语句for语句循环结构while语句while(exp)循环体语句do-while语句do循环体语句while(exp)for语句for(exp1;exp2;exp3)循环体语句循环结构while语句和for语句都可以归为当型循环类,而do-while语句则属于直到型循环。while语句和for语句是等价的,二者可以相互转换。当型循环和直到型循环的主要区别当型循环先判断循环条件是否成立,再决定是否执行;直到型循环中的循环体语句至少执行一次。当型循环直到循环直到型循环先执行一次,再判断循环条件是否成立。当型循环中的循环体语句可能一次也不执行。以求前100个正整数的和为例如果需要求前100个正整数的和,完全可以用循环结构实现。我们以while语句为例,代码如图6.13所示,运行结果如图6.14所示:5050Pressanykeytocontinue图6.13求前100个正整数的和结果图6.13求前100个正整数的和代码用do-while语句和for语句如何实现?求前10个正整数的阶乘如何实现?01顺序结构、选择结构和循环结构这3种方结构一般不是独立的,在具体的程序中,往往同时采用两种,甚至3种结构。02选择结构和循环结构可以相互嵌套,也可以自身嵌套。03对循环结构的分析是计算复杂性分析的重要内容。小结掌握顺序结构、选择结构、循环结构三种结构化程序设计。了解选择结构和循环结构的实现方法。程序设计方法和实践6.36.3.1软件工程软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的较好的技术、方法结合起来,以经济地开发出高质量的软件并有效地维护它。这就是软件工程。虽然软件工程的不同定义使用了不同词句,强调的重点也有差异,但是,人们普遍认为软件工程具有下述的本质特性:软件工程关注于大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐地合作是开发软件的关键;软件必须有效地支持它的用户;在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。自从1968年正式提出并使用了“软件工程”这个术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或“信条”。巴利·玻姆(B.W.Boehm)在1983年的一篇论文中提出了软件工程的7条基本原理。他认为这7条原理是确保软件产品质量和开发效率的原理的最小集合。这7条原理是互相独立的,其中任意6条原理的组合都不能代替另一条原理,因此,它们是缺一不可的最小集合。这7条基本原理是:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。软件工程6.3.2面向过程程序设计面向过程程序设计采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后按顺序完成每个阶段的任务。这种程序设计方法从对问题的抽象逻辑分析开始,按顺序对每个阶段进行开发。前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常使前一阶段提出的解法更进一步具体化,加了更多的实现细节。每一个阶段的开始和结束都有严格标准,对任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。在每一个阶段结束之前都必须进行正式、严格的技术审查和管理复审,从技术和管理两个方面对这个阶段的开发成果进行检查,通过之后这个阶段才算结束;如果没通过检查,则必须进行必要的返工,而且返工后还要再经过审查。审查的一条主要标准就是每个阶段都应该交出“最新式的”(即和所开发的软件完全一致的)高质量的文档资料,从而保证在软件开发工程结束时有一个完整、准确的软件配置交付使用。面向过程程序设计6.3.3面向对象程序设计(1)把对象作为融合了数据及在数据上的操作行为的统一的软件构件。(2)把所有对象都划分成类。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版网站建设与内容运营合同
- 2024年度广告发布合同:知名品牌战略合作3篇
- 2024版标准股权转让及投资咨询合同
- 二零二四年度绿化养护合同
- 2024年度建筑工程合同某市中心商业大厦施工承包合同
- 2024版国际宠物托运服务合同详解
- 二零二四年度摄影服务合同标的拍摄要求与后期处理
- 二零二四年度影视作品制作与版权购销合同
- 二零二四年度食品加工与包装服务合同
- 北京化工大学《材料专业基础实验》2021-2022学年第一学期期末试卷
- GB/T 9445-2024无损检测人员资格鉴定与认证
- 老旧住宅小区加装电梯施工组织方案
- 2023年中国人民银行清算总中心招聘考试真题
- 校园欺凌谈话记录表
- 计算机专业生涯发展展示
- 大学生职业生涯发展报告
- 露天矿开采课件
- 人工智能智慧树知到答案章节测试2023年复旦大学
- GB 31644-2018食品安全国家标准复合调味料
- 四年级语文上册课件 - 21古诗三首 凉州词 (共16张PPT) 人教部编版
- 简易呼吸气囊的使用ppt课件
评论
0/150
提交评论