C 第1+2章_概述与算法

上传人:laiq****ong 文档编号:243072005 上传时间:2024-09-15 格式:PPT 页数:35 大小:154KB
返回 下载 相关 举报
C 第1+2章_概述与算法_第1页
第1页 / 共35页
C 第1+2章_概述与算法_第2页
第2页 / 共35页
C 第1+2章_概述与算法_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一章,C,语言概述,1.1 C,语言出现的历史背景,(1),广泛流行,写系统软件,写应用软件,ALGOL60-,面向问题,CPL(combined programming language)(63),BCPL-67(,剑桥,Matin,Richard),B,语言,-70,(贝尔实验室,Ken Thompson),C,语言,-7273,(,Dennis.M.Ritchie),73,,用,C,语言把,UNIX,改写(,5,),,75 UNIX(6),引起注意,1.1 C,语言出现的历史背景,(2),78,以后,移植到大、中、小、微型机,78,发表,The C Programming Language(Brian W. Kernighan,和,Dennis M. Ritchie),83,美国国家标准局 (,ANSI,)称为,ANSI C,87,(,ANSI,),公布了新标准称,87 ANSI C,90,国际标准组织(,ISO,),ISO C,的,标准,ISO9899-1990,Borland,公司的,Turbo C,和,Borland C/C+,微软的,Microsoft C,和,Visual C/C+,Unix,和,Linux,,,C,语言是其标准系统开发语言,1.2 C,语言的特点(,1,),C,语言的主要特点如下:,语言表达能力强,运算符丰富,表达式类型多样化,2.,结构化好,while,语句结构化语句等,函数为单位,3.,具有较强的数据类型构造能力,4.,语言精练,i+=2; (i=i+2); if (e) s ;,FORTRAN,BASIC,C,Do 10 i=0,99,1i=0,for(i,=0;i100;i+),DO WHILE iy) z=x; else z=y,;,return(z ),;,程序运行情况:,Please input two integers:,8,5,max=8,通过以上例子可以看出:,1.C,程序是由函数构成的。每个程序由一个或多个函数组成,其中必须,有且仅有一个,主函数,main( ),。,函数容易实现程序的模块化,.,2.,一个可执行的,C,语言程序,总是从,main,函数开始执行,,而不论其在整个程序中的位置如何。,3.,每条语句或数据定义的最后必须有一个分号“,;,”。,说明:,在以下三种情况下不允许有分号:,a.,在右花括号,“,”,后面不使用分号,;,b.,所定义的函数的名称后面不使用分号,;,大括号之后,while(total,=2000),limit+;,total=total+limit;,;,函数定义语句之后,int max( ),;, ,c.,预处理语句后面不使用分号。,4.C,对输入输出实行函数化。,5.C,程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。,6.,可用,/*,*/,对,C,程序中的任何部分作注释,注释可以写在程序的任何位置上,,“,/*,”,与,“,*,/,”,也可不在同一行上。,7.,也可用,“,/,”,。 本行中、,“,/,”,之后的文字都视为注释。,8.,在,C,语言中,大小写字母是有,区别,的。(,C,语言习惯用小写字母,),导入库函数语句之后,#include “,stdio.h,”,;,1.4 C,程序的上机步骤,1.,编辑:选择适当的编辑程序,将,C,语言源程序通过键盘输入到计算机中,并以文件的形式存入到磁盘中(,.C,),2.,编译:即将源程序翻译成机器语言程序的过程。编译出来的程序称为目标程序(,.OBJ,),3.,连接:编译后生成的目标文件经过连接后生成最终的可执行程序(,.EXE,),编 辑,编 译,出 错,?,连 接,出 错,?,执 行,结果正确?,.C,源程序,.OBJ,目标程序,.EXE,可执行,程序,开始,结束,Y,Y,N,Y,N,N,库函数和其它目标程序,main( ),printf,(,“,* n”);,printf(“n,”);,printf,(“ Very good!n”);,printf,(“ n”);,printf,(“* n”);,运行 结果:,*,Very good!,*,main( ), int a,b,c,max;,printf(“input,number a,b,c: n”);,scanf(“%d,%d,%d”,&a,&b,&c,);,max=a;,if(maxb) max=b; /,if(e,) s;,if(max0) num1=num1+1;,else num2=num2+1;,scanf(%d,&x,);,printf,( Num of positive is: %dn,num1);,printf,( Num of negative is: %dn,num2);,2 3 4 5 10 89 20 66 0,请,读出该程序的功能,main(), int num1=0,num2=0;,printf(input,num);,scanf(%d,&x,);,while(x!=0),if(x0) num1=num1+1;,else num2=num2+1;,scanf(%d,&x,);,printf(Positive,num is: %dn,num1);,printf(Negative,num is: %dn,num2);,x,程序有错吗?,第二章 算法简介及程序的基本结构,本章要点:,了解算法的基本概念,掌握程序的基本结构,程序,=,数据结构,+,算法,+,程序设计方法,+,编程语言,对特定问题求解步骤的一种描述,(,algorithm),计算机算法:,数值算法,有模型,比较成熟,数学程序库,非数值算法,种类繁多,难以规范,2.1,算法的概念,例,2.1,有,50,个学生 ,要求将他们之中成绩在,80,分以上者打印出来。用,n,1,代表第一个学生学号,,n,i,代表第,i,个学生学号。用,g,i,代表第,i,个学生成绩,算法可表示如下:,S1,:,1,i,S2,:,如果,g,i,80,,则,打印,n,i,和,g,i,,,否则不打印,S3,:,i+1,i,S4,:,如果,i 50,返回,S2,,,继续执行; 否则,算法结束。,2.2,简单算法举例,(,用自然语言描述法),例,2.2,将,120,名学生百分成绩按分数段分级的程序。,该算法的核心部分是对输入的每一个数进行比较判断,以确定所属的级别。第一种算法描述如下:,S1,:,1,i,S2,:,a60,a70,a80,a90,不及格,中等,良好,优秀,及格,Y,N,Y,N,Y,N,Y,N,S3,:,输出所属级别;,i+1,i,;,S4,:,如果,i 120,返回,S2,;,否则,算法结束。,转S3,转S3,转S3,转S3,转S3,分数,059,6069,7079,8089,9099,比例,0.05,0.15,0.4,0.3,0.10,不及格,Y,a90,a80,a70,ai,i50,输出,gi,和,n,i,i+1=i,i50,结束,Y,N,N,输入,n,i,和,g,i,i+1=i,gi,=80,N,1=i,Y,2.4.3,程序的三种基本结构和改进的流程图(,N-S,结构流程图),一、顺序结构,(Sequence Structure),B,A,(a),A,B,(b),先,执行,A,操作,再执行,B,操作,两者是顺序执行关系。,N-S,结构流程图,二、选择结构,(Selection Structure),当,P,条件为真时,执行,A,模块,否则执行,B,模块。,A,P,B,真,假,(a),P,真,假,A,B,(b),三、循环结构,当,P,条件成立时,反复执行,A,直到,P,为假。,1,.,当型循环结构,(While Loop),P,A,假,真,(a),当,P,为真,A,(b),当,P,为真,2.,直到型循环结构(,Until Loop),先,执行,A,操作,再判断,P,是否为假,若,P,为假,再执行,A,,,直到,P,为真为止。,A,P,假,真,(a),A,直到,P,为真,(b),1=i,输入,n,i,和,g,i,i+1=i,直到,i50,1=i,g,i,=80,真,假,输出,n,i,和,g,i,i+1=i,直到,i50,开始,1=i,i50,输出,gi,和,n,i,i+1=i,i50,结束,Y,N,N,输入,n,i,和,g,i,i+1=i,gi,=80,N,1=i,Y,2.4.5,用伪代码表示算法:用介于自然语言和计算机语言之间的文字和符号来描述算法(,pseudo code,),BEGIN,1,=i,while(i,50), input,n,i,和,g,i,i+1=i ,1,=i,while(i,50), if (,g,i,=80) print,n,i,和,g,i,i+1=i ,END,2.4.6,用计算机语言表示算法,例,2.5,求,1-1/2 + 1/3 1/4 + 1/99 1/100,。,S1:,1,sign,S2: 2 deno,S3: 1 sum,S4: (-1)*sign sign,S5: sign*(1/deno) term,S6: sum+term sum,S7: deno+1 deno,S8:,若,deno,100,返回,S4,;,否则算法结束。,main(),int sign=1;,float deno=2.0 , sum=1.0, term;,while (deno=100), sign= -sign;,term=sign/deno;,sum=,sum+term,;,deno=deno+1;,printf(“%f”,sum,);,2.4,结构化程序设计方法,自顶向下,Vs,自下而上,逐步积累,2.,逐步细化,3.,模块化设计,分而治之,4.,结构化编码,用高级语言正确地实现三种基本结构,第,1,次作业,在下面,2,题中任选一题:,1,)编写一个,C,程序,输入,a,,,b,,,c3,个值,输出其中的最小值。,2,)依次输入,10,个数,将其中最小值输出。,2.,求,1+3+5+7+,+99,。,要求事先画出流程图,编制程序,然后上机运行,提示,各题需要在,main(),前输入,#include,,使用,库函数,的需要输入,#include,2.4(6),可以使用,int,X=,fmod(m,n,),/,求,m/n,的余数赋给整数,X,。,2.4(8),需要使用库函数,float X=,sqrt(y,),/,求,y,的平方根赋给实数,X,。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!