《C语言第1章程序设计概述(课件).ppt》由会员分享,可在线阅读,更多相关《C语言第1章程序设计概述(课件).ppt(20页珍藏版)》请在三一办公上搜索。
1、程序设计概述,第一章,计算机语言 算法基础,1.1 计算机语言及程序设计,一.计算机语言的发展,汇编语言将机器指令映射为一些可以被人读懂的助记符。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。,由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。,CPU指令系统,由0、1序列构成的指令码组成,例如:0 0 1 0 0 0 1 11 1 1 0 1 1 0 11 1 0 0 0 0 1 00 1
2、 1 1 0 1 1 0,用助记符号描述的指令系统,例如:MOV AX,30HMOV BX,20HADD BX,AXMOV 2100H,BX,高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。,高级语言源程序(C)main()int a,b,c;a=300;b=18;c=a+b;printf(“%dn”,c);,二.程序与程序设计,程序(program)用计算机语言对所要解决问题中的数据以及处理步骤做出的完整而准确的描述,而得到这个描述的过程就称为程序设计。,如何学好程序设计,学习程序设计
3、好处 深入了解软件的运作方式、设计出功能更强大的应用软件、加深对计算机的认识。,语法学习阶段,练习写较大的程序,学习并提高编程技巧,软件工程,程序设计的四个步骤,分析问题,建立数学模型。确定数据结构和算法。编制程序。调试程序。,顺序结构,选择结构,循环结构,三.结构化程序设计,3种基本结构,提供3种基本结构,定义子程序功能。,算法:解题方法步骤的精确描述。,一.算法的概念,1.2 算法,程序算法数据结构语言工具和环境,算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。,二.算法的表示,自然语言,传统的程序流程图,N-S流程图,一种结构化的流程图,计算机程序采用这种方法必须严格
4、遵守所使用的语言的语法规则,自然语言表示法,特点:简单易写,内容较长,理解可能有异。,算法:第1步:读入两个数给变量A和B;第2步:A=C;第3步:B=A;第4步:C=B;,例:读入两个数给变量A和B,之后将变量A和B交换。,流程图是用框图表示各种操作。图形标准由ANSI(American National Standard Institute)制订,开始,输入/输出,开始和结束,条件判断,陈述语句,输入和输出,陈述性语句,条件判断,程序的流程线路,举例:上例算法用流程图表示,结束,三.算法的流程图表示,C=A,A=B,B=C,开始,输入A,1.传统的程序流程图,输入B,结束,顺序结构,输出A
5、,B,特点:绘制简单,描述直观,之前广泛使用。缺点:1)程序流程图不易表示算法或程序的层次结构2)用箭头表示的控制流可能引起随意的转移控制,即结构化程序设计流程图,提供了描述三种基本逻辑结构的图形工具,与传统的程序流程图对照描述如下:,(1)顺序结构,2.N-S图,(2)选择结构(分支结构),由分支结构派生出来的多路分支结构,(3)循环结构,当条件满足,执行一遍循环体,再判断循环条件,仍满足再执行一遍循环体直到不满足条件,则退出循环,执行循环体后的下一语句,四.用N-S图表示算法举例,分析:(1)需要一个累加器变量,(如变量sum)先清零.(2)需要一个记数器变量(如变量n),共做100次,每
6、做一次n增加1,(3)每一次要累加的值正好是计数器变量n。,0,sum,1,2,3,3,6,4,10,sum=sum+n,输出sum的值,n,例2:输入10个数,求它们的平均值。,分析:(1)需要一个累加器变量,先清零;(2)需要一个记数器变量(如变量n),共做10次。(3)每一次将读入的数据都存在同一个变量中。(如变量x),0,23,sum,x,58,81,123,204,sum=sum+x。,aver=sum/10,输出aver的值,例3:输入50个学生的成绩,统计出得优秀的人数,输入一个学生成绩g,n=n+1,例4:输入两个正整数,求它们的最大公约数并输出,画出该算法的N-S图。,Eulid算法:1)读入两个数分别给m和n2)如果mn,交换m 和n的值;3)m整除n,得到余数r;(0 r n)4)如果 r=0,则算法结束,n是结果;5)否则:mn,nr,转向执行第3步。,输出n的值,r=(m/n的余数),本章习题,一.填空题:全做三.算法设计题 1;2;4;,