《第2章算法(1学时).ppt》由会员分享,可在线阅读,更多相关《第2章算法(1学时).ppt(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页第二章程序的灵魂算法C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页沃思公式沃思公式沃思公式:“程序数据结构算法程序数据结构算法”数据结构:数据的类型、数据的组织形式算法:即操作步骤。程序数据结构算法程序设计方法语言工程序数据结构算法程序设计方法语言工具具C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序
2、设计语言程序设计上一页上一页下一页下一页2.1 算法的概念算法:为解决一个问题而采取的方法和步骤。吃葡萄问题:先大后小?还是先小后大?百鸡百钱问题做饭问题:炒菜、炖菜、米饭、汤方法一:处理炒菜的原料、处理炖菜的原料、洗米、炒菜、煲汤、炖菜、米饭方法二:洗米、做米饭、处理炖菜的材料、炖菜、处理炒菜的材料、煲汤、炒菜。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页2.2简单算法举例例2.1求1*2*3*4*5。原始的方法:步骤1:先求1*2,得到2;步骤2:将步骤1的乘积2再乘以3,得到结果6;步骤3
3、:将6再乘以4,得到24;步骤4:将24再乘以5,得到120;提问:如果要求1 2 3 1000,需要写多少个步骤?C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页修改后的算法设定两个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积存放在被乘数中。今设p为被乘数,n为乘数。S1:使p1S2:使n2S3:使pn,乘积仍放在变量p中,可表示为pnpS4:是n的值加1,即n1 nS5:如果n不大于5,返回重新执行S3及其后的步骤S4、S5;否则,算法结束。最后得到
4、的p的值就是5!。若将步骤若将步骤5作如下改动,能否得到正确的结果?作如下改动,能否得到正确的结果?S5:如果n5NYC C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页 这类似于学习英语中的单词与句法,并正确的运用语法规则写成文章。但是光是语法规则正确的文章,并不见得准确无误的传达了作者的意思,也有可能表错了意。程序也是一样,语法规则正确的程序,却不一定正确的描述了所要解决的问题。第一步第一步:掌握语言的语法规则,包括标识符、关键掌握语言的语法规则,包括标识符、关键字、句法规则等。并能正确的运用这些语
5、法规则编字、句法规则等。并能正确的运用这些语法规则编成计算机能识别的程序。成计算机能识别的程序。学好程序设计语言的关键C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页 拿到一个需要解决的问题,在编程之前,我们首先要确定的就是解决该问题的算法,只有先得出了正确的算法,才能进一步把该算法用程序语言的形式编写出来。正确的语法正确的语法+正确的算法正确的算法=正确的程序正确的程序第二步:第二步:掌握解决问题的方法和步骤。用程序语言编程,就是用计算机看得懂的语言向计算机描述解决某个问题的方法和步骤,计算机就是按照程序的描述,一步一步执行相应操作的。所编写的程序,不但要求语法准确无误,更要求提供的步骤也准确无误,计算机才能按照要求执行出正确的结果。我们把我们把对对某一特定某一特定问题问题的求解步的求解步骤骤的一种描述的一种描述,称为该问题的称为该问题的算法算法。
限制150内