欢迎来到天天文库
浏览记录
ID:36199467
大小:470.05 KB
页数:39页
时间:2019-05-07
《c语言课件王曙燕chp3算法和基本程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章算法和基本程序设计算法结构化程序设计的方法程序的基本结构顺序结构程序设计数据的输入与输出C程序的上机步骤C语言程序设计第三章算法和基本程序设计§3.1算法概念:算法是解决问题的策略、规则和方法。数据结构+算法=程序C语言程序设计第三章算法和基本程序设计特性有穷性:一个算法必须在执行有限个操作步骤后终止;确定性:算法中每一步的含义必须是确切的,不可出现任何二义性;可行性:算法中的每一步操作都应该能有效执行。例如,一个数被0除的操作就是无效的,应当避免这种操作。有输入:输入是指在算法开始之前所需要的初始数据。这些输入的
2、多少取决于特定的问题。输出:在一个完整的算法中至少会有一个输出。评价标准正确性:合法输入有正确输出可读性:易懂健壮性:容错高效率和低存储量需求程序的灵魂——算法程序及算法用程序设计语言来描述问题的求解过程,以及对其中参与运算的数据进行合理地组织和安排,就叫做程序设计。分析问题确定算法编写程序运行调试总结过程基本步骤程序设计一般步骤(1)分析问题,建立数学模型A.确定问题是什么,解决问题的步骤是什么;B.针对问题,找出已知的数据和条件,确定所需的输入、处理及输出对象;C.归纳解题过程为一系列的数学表达式,建立各种量之间的
3、关系.(即建立起解决问题的数学模型)程序及算法程序设计一般步骤(2)确定数据结构和算法A.根据建立的数学模型,对指定的输入数据和预期的输出结果,确定存放数据的数据结构;B.针对所建立的数学模型和确定的数据结构,选择合适的算法加以实现;这里所说的“算法”指解决某一问题的方法和步骤,而不仅仅是指"计算"。程序及算法程序设计一般步骤(3)编制程序根据确定的数据结构和算法,用程序语言严格地描述解决方案。(即编写程序代码)(4)调试程序在计算机上用实际的输入数据对程序进行调试,分析所得到的运行结果,进行程序的测试和调整,直至获得
4、预期的结果。程序及算法程序及算法算法的一般定义指解决问题的方法和有限的步骤。计算机算法数值运算(对问题求数值解,例如对微分方程求解、对函数的定积分求解、对高次方程求解等)非数值运算(如资料检索、事务管理、数据处理等)是针对提出的可行方案确定解决问题、完成任务的每一个细节步骤。程序及算法问题:有黑和蓝两个墨水瓶,但却错把黑墨水装在了蓝墨水瓶子里,而蓝墨水错装在黑墨水瓶子里,要求将其互换。例1-1算法分析:这是一个非数值运算问题。因为两个瓶子的墨水不能直接交换,所以,解决这一问题的关键是需要引入第三个墨水瓶。
5、程序及算法设第三个墨水瓶为白色,其交换步骤如下:①将黑瓶中的蓝墨水装入白瓶中; ②将蓝瓶中的黑墨水装入黑瓶中; ③将白瓶中的蓝墨水装入蓝瓶中; ④交换结束。一般步骤例1-2问题:给定两个正整数m和n(m≥n),求它们的最大公约数。算法分析:一个数值运算问题,它有成熟的算法,在我国古代的《算书九章》一书中曾记载了这个算法。求最大公约数一般用辗转相除法(也称欧几里德算法)求解。程序及算法辗转相除法设m=35,n=15,r表示余数。求法如下:(1)35/15(m/n)商2余5(r=5);(2)以n(=15)作
6、m,以r(=5)作n,继续相除;15/5(m/n)商3余数为0(r=0).(3)当余数(r)为0时,此时,n即为两数的最大公约数。35和15的最大公约数为5。程序及算法①两个正整数分别存放到m和n中; ②求余数:计算m除以n,将所得余数存到变量r中; ③判断r是否为0:若r为0,则执行第⑤步,否则执行第④步; ④更新被除数和余数:将n值存放到m中,将r的值存放到n中,并转第②步继续循环执行; ⑤输出n的当前值,算法结束。算法描述程序及算法C语言程序设计第三章算法和基本程序设计算法的表示可用自然语
7、言、数学方法、某种计算机语言描述规范的方法:流程图、结构图、伪代码、PAD图流程图C语言程序设计第三章算法和基本程序设计例1:求三个整数的和C语言程序设计第三章算法和基本程序设计例2:求三个数中最小的那个数main(){floata,b,c,min;scanf(“%f,%f,%f”,&a,&b,&c);if(ac)min=c;printf(“min=%f”,min);}C语言程序设计第三章算法和基本程序设计N-S结构流程图:完全去掉流程线,由一些基本框组成一个大
8、的框基本元素框C语言程序设计第三章算法和基本程序设计例1:求三个整数的和流程图N-S结构流程图C语言程序设计第三章算法和基本程序设计例2:求三个数中最小的那个数流程图N-S结构流程图背景软件危机1968年,荷兰学者E.W.Dijkstra提出GOTO语句的三大危害采用结构化程序设计方法应遵循的原则自顶向下模块化功能模
此文档下载收益归作者所有