您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > C语言程序设计PPT--第一章--基本知识
C程序设计第一章基本知识主讲:高利军第1C程序设计学时72/20周一(1,2)1C506周二(5,6)1C407周五(1,2)1C407C程序设计第六章数组主讲:高利军第2概述本课程重点重点:讲述程序设计方法上进行程序设计方法及算法的训练力求体现“结构化程序设计”思想培养和训练良好的程序设计风格课程介绍课程组成本章主要内容程序设计语言高级语言程序的执行过程C简况算法概念流程图C程序设计第六章数组主讲:高利军第3C程序设计第六章数组主讲:高利军第41.1程序设计语言计算机系统的工作是由事先设计好的程序来控制的。程序:是一个指令序列。程序设计:为计算机编排程序的过程。程序设计语言:用于编写、描述计算机程序的语言。程序设计语言分成三类:机器语言、汇编语言、高级语言。C程序设计第六章数组主讲:高利军第5机器语言机器语言由能被计算机直接执行的机器指令组成,每条机器指令是一串二进制代码。例如计算:Y≥若 XX-15若 X<YX+15Y我们用Pentium机器语言编程序。C程序设计第六章数组主讲:高利军第610101001000101100000000100111100000110000000000101111100000001010010110100010101000000001110101000000011000001010001010100000000101000110001100000000001…………………00000000000000000000000000000000缺点:容易出错、调试极为困难、程序极不好读。设:程序从100号单元开始;X、Y分别占用116、118号单元用Pentium机器语言可编出如下程序片段:C程序设计第六章数组主讲:高利军第7汇编语言符号化了的机器语言。完成同样计算的Pentium汇编语言程序片段如下:MOVAX,XCMPAX,YJLS1SUBAX,15JMPS2S1:ADDAX,15S2:MOVY,AX………………XDW?YDW?优点:与机器语言比较,它易写,易读,易检查,易修改。缺点:仍然十分烦琐,依赖于具体的计算机,程序不便于移植。Y≥若 XX-15若 X<YX+15YC程序设计第六章数组主讲:高利军第8高级语言不依赖于具体计算机,比较接近于自然语言或专业语言的方式描述操作。使用C语言完成同样的计算,可用如下语句:if(XY)Y=X+15;elseY=X-15;优点:十分好读,编码简单,有通用性,便于移植。缺点:执行效率相对较低Y≥若 XX-15若 X<YX+15YC程序设计第六章数组主讲:高利军第9程序的执行尽管汇编语言和高级语言编写程序比机器语言方便得多。但是不幸的是计算机只认识二进制代码(机器语言)。必须把用汇编语言或高级语言写的程序(称源程序)翻译成等价的机器语言程序(称目标程序)。翻译器也是一个程序,并且称汇编语言的翻译器为汇编程序,高级语言的翻译器为编译程序。C程序设计第六章数组主讲:高利军第10汇编语言或高级语言编程序解题的过程用汇编语言或高级语言编出程序将源程序录入计算机由翻译器(汇编程序或编译程序)将源程序翻译成机器语言程序由连接程序将机器语言程序连接生成计算机可执行的程序将可执行程序送入计算机并启动计算机执行得到最后结果C程序设计第六章数组主讲:高利军第11ALGOL是计算机发展史上首批产生的高级语言,Algol60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。Algol60:1960年1月,图灵奖获得者:艾伦.佩利(AlanJ.Perlis)在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了“算法语言Algol60报告”,确定了程序设计语言Algol60。1962年,艾伦.佩利又对Algol60进行了修正。C语言的原型ALGOL60语言。(也称为A语言)1963年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言。1967年,剑桥大学的MatinRichards对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的KenThompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。并且他用B语言写了第一个UNIX操作系统。而在1973年,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX操作系统推广,1977年DennisM.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。即是著名的ANSIC。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准协会(AmericanNationalStandardsInstitute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSIC。1988年,随着微型计算机的日益普及,C语言出现了许多版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准C语言的主要特点。C语言发展迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASEⅢPLUS、DBASEⅣ都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,象PC-DOS、WORDSTAR等就是用这种方法编写的。“图灵机”“仿真系统”“自动程序设计概念”“人工智能”“图灵测试”C程序设计第六章数组主讲:高利军第12C的优点语言简洁、紧凑,使用方便、灵活;C本身是模块式,便于集体分工合作开发大型程序;运算符丰富;数据结构丰富;具有结构化控制结构;与计算机硬件联系紧密,可以直接访问计算机内存,具有位操作;生成目标代码质量高。C程序设计第六章数组主讲:高利军第13简单的C程序例1main(){printf(“*******\n”);/*字串照原样输出*/printf(“*BBI*\n”);printf(“*******\n”);}运行结果:********BBI********例2main(){inta,b,c,sum;a=10;b=20;c=30;sum=a+b+c;printf(“sum=%d\n”,sum);/*%d是指按十进}制整数格式输出*/运行结果:sum=60执行过程?C程序由一个main函数组成,{---函数体开始}---函数体结束;---语句结束printf---函数名\n---换行符/*--*/---注释C程序设计第六章数组主讲:高利军第14如下是一个完整的C程序,该程序由两个编译单元组成,每个编译单元保存在一个源程序文件中。文件hello.c的内容:文件startup.c的内容:#includestdio.hvoidhello(void){printf(“Hello!\n”);}externvoidhello(void)intmain(void){hello();return0}C程序设计第六章数组主讲:高利军第15运行该程序的过程是:使用C编译程序分别编译两个C源程序文件“hello.c”和“startup.c”,生成两个目标代码模块文件:“hello.obj”和“startup.obj”使用连接程序进行连接,把“hello.obj”和“startup.obj”以及需要的库函数连接到一起,生成可执行的机器语言程序:“startup.exe”;执行“startup.exe”,得到的运行结果是在屏幕上显示字符串HelloC程序设计第六章数组主讲:高利军第16程序的构成一个程序应包含以下两方面内容:对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(datastructure)。对操作的描述。即操作步骤,也就是算法(algorithm)。程序=算法+数据结构程序=算法+数据结构+程序设计方法+语言工具和环境。C程序设计第六章数组主讲:高利军第17算法算法是一个计算过程,具体指明应该进行的操作,描述解决问题的方法和途径,它是程序设计的基础和精髓。计算机算法:计算机能够执行的算法。计算机算法可分为两大类:数值运算算法:求解数值,目前对各种数值运算都有比较成熟的算法可供选用;非数值运算算法:主要用于事务管理领域。C程序设计第六章数组主讲:高利军第18算法的特点一个有效的算法具有如下特点有穷性:一般情况下一个算法应该在有限的时间内终止,不应该是无限的(当然也有例外,比如操作系统)。有穷性往往指在合理的时间范围内。确定性:算法中的每一个步骤都应该是确定的,含义是唯一的,不应该是模糊的、模棱两可的。有效性:算法中的每一个步骤都应该是有效的,都能够被有效的执行并得到确定的结果,不应该存在无效的操作。有零个或多个输入:输入可有可无。一个或多个输出:算法的目的是为了求解,没有输出,算法是没有意义。C程序设计第六章数组主讲:高利军第19设计好算法的目标可读性:算法主要是为了人的阅读与交流,其次才是机器执行。健壮性:当输入数据非法时,算法也能适当的作出反应或进行处理,不会产生莫名其妙的错误。效率与低存储量需求:效率指的是算法执行的时间,对于同一个问题如果有多个算法可以解决,执行时间短的算法效率高。正确性:算法应当满足具体问题的需求。“正确”含义,分为四个层次:程序不含语法错误;程序对于几组输入数据能够得出满足规格说明的结果;程序对于精选的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;程序对一切合法的数据数据都能产生满足规格说明要求的结果;C程序设计第六章数组主讲:高利军第20算法的表示方法自然语言法对于简单的问题可以用自然语言法,一般都不使用自然语言法。自然语言是有二义性问题;例子:张先生对李先生说他的孩子考上大学了。(二义性)对于分支和循环的算法,自然语言描述不方便。流程图法传统流程图N—S流程图PAD图伪代码程序语言C程序设计第六章数组主讲:高利军第21算法——自然语言例子例:求5!算法一:最原始的方法进行S1:先求1*2,得到2;S2:将S1得到的乘积2再乘以3,得到结果6;S3:再将S2得到的乘积6乘以4,得24;S4:最后将S3得到的乘积24再乘5,得120,即最后的结果。C程序设计第六章数组主讲:高利军第22用伪代码表示算法求1*2*3*4*5算法二:设置两个变量,一个变量代表被乘数,一个变量代表乘数。不必设变量存放乘积结果,而直接将每一个步骤的乘积放到被乘数变量中。用循环算法来求结果。S1:使p=1S2:使i=2S3:使p*i,乘积仍放在变量p中,可表示为p*i=pS4:使i的值加1,即i+1=iS5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则算法结束,最后p中的值就是5!的值C程序设计第六章数组主讲:高利军第23算法的基本操作1.表达式以及给变量赋值2.读(输入)3.写(输出)基本的控制结构包括:4.顺序控制结构5.分支控制结构6.循环控制结构7.函数调用8.函数返回C程序设计第六章数组主讲:高利军第24用图框表示各种操作,用图形表示算法。直观形象,易于理解。美国国家标准化协会ANSI规定了一些常用的流程图符号用流程图表示算法起止框输入输出框判断框处理框流程线连接点x=0打印x打印-xYN2131323C程序设计第六章数组主讲:高利军第25例2.1:求1*2*3*4
本文标题:C语言程序设计PPT--第一章--基本知识
链接地址:https://www.777doc.com/doc-3357792 .html