- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 算法和基本程序设计 算法举例 算法的特性 算法的表示 3.2 结构化程序设计方法 3.4 顺序结构程序设计 3.5 数据的输入输出 1. putchar 函数(字符输出函数) 2. printf函数(格式输出函数) 3. getchar函数(字符输入函数) 6.scanf函数 (格式输入函数) * * 主要内容:算法的表示方法、C程序的基本结构和输入输出。 3.1 算法 算法:是解决问题的一系列操作步骤的集合。 科学家沃思(Nikiklaus Wirth)提出一个公式: 数据结构 + 算法 = 程序 数据结构:对数据(操作对象)的描述。 算法: 对操作步骤的描述。 编写程序的本质: 对哪些数据进行什么样的一系列加工就可以达到目标。 例:依次读入30个学生成绩,输出平均成绩及最高成绩 算法:s1:0=i, 0=sum, 0=max s2:读入一个学生成绩存入score s3:i+1=i s4;sum+score=sum s5:如果score大于max,则score= max s6:如果i小于30,转移至s2 s7:sum/30=average s8:打印average,max s2,s3,s4,s5,s6这些步骤会被重复执行30次, 变量i用于统计已处理的学生人数 当i值小于30时,流程转至s2读下一个学生成绩 当i值等于30时,所有学生成绩处理完毕,按顺序到s7计算平均成绩,再到s8输出结果。 算法是解决问题逻辑思路的表述,同一问题有不同的解题方法和步骤,设计出不同的算法。 正确的算法应该具备以下特性。 有穷性:包含有限的操作步骤,不能无限制地执行下去。 确定性:算法中所描述的每个步骤都应该是明确的 有0 — n个输入数据: 输入是指在算法执行过程中需要用户输入的信息。 有1 — n个输出数据: 一般地,算法都有一个或多个输出数据,因为设计算法的目的就是进行数值运算或进行某种数据处理,给用户输出处理结果是必然的要求。 有效性: 在一个算法中,要求每个步骤都能被有效地执行 算法可用自然语言将其表述,但自然语言不严格,容易出现“二义性”。当算法包含多个分支和循环时,自然语言表述就更为困难。可采用更规范化的方法表示,常用的有:流程图、N-S图、伪代码、PAD图等。流程图是最常用的一种方法。它用图形符号配合文字表示流程和操作,形象直观,易于理解。 起止框 I/O框 判断框 处理框 流程线 连接点 例:求三个整数的和 流程图 开始 输出sum的值 结束 输入x,y,z sum=x+y+z main( ) { float x,y,z,sum; scanf(“%f%f%f\n”,x,y,z); sum=x+y+z; printf(“sum=%f\n”,sum); } 例2:求三个数中最小数 流程图 开始 输出min的值 输入a,b,c ab N min=a min=b Y 结束 cmin min=c Y N #include stdio.h main() { int a,b,c,min; scanf(%d%d%d,a,b,c); if(ab) min=a; else min=b; if(cmin) min=c; printf(min=%d,min); } 例:求三个数中最小数。 流程图 开始 输出min的值 输入a,b,c ab N min=a min=b Y 结束 cmin min=c Y N N-S图 min=b min=a ab Y N min=c cmin Y N 输入a,b,c 输出min的值 结构化程序设计方法的基本思想是:把一个复杂问题的求解过程分步进行,后一步在前一步的基础上细化,这样每步所考虑的子问题都相对易于理解和处理,每步都只用三种基本结构, 进行复合和嵌套。也可以概括为:自顶向下,逐步求精的方法。 3.3 程序基本结构 从结构化程序设计角度出发, 程序有三种基本结构: 只要用这三种基本结构, 经过有限次复合和嵌套就可以解决程序设计的全部问题。程序结构清晰可读性好, 易维护。 顺序结构、选择结构、循环结构 1. 顺序结构 先执行A, 再执行B. A B 2. 选择结构 A B P Y N 若P为真,则执 行A,否则执行B。 A P N Y 若P为真,则执 行A,否则跳过A。 3. 循环结构 (1) 当型循环 当P为真,反复执行A, P为假时出循环。 (2) 直到型循环 先执行A, 再判断,
文档评论(0)