版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章程序设计和C语言程序和程序语言C语言简介一个简单的C程序程序开发过程问题与程序设计主要内容理解什么是程序,什么是程序设计语言通过简单的实例了解C语言程序的基本情况和相关概念掌握C程序的编译和运行过程使用VisualC++6.0(CodeBlocks)创建C程序程序设计中遇到的问题重点和难点程序日常生活中的程序:通常指完成某些事务的一种既定活动方式和过程。1.1程序和程序语言1,起床2,刷牙3,洗脸4,吃饭5,早自习银行带上存折去银行
3.将存折和取款单递给银行职员
2.填写取款单并到相应窗口排队4.银行职员办理取款事宜
5.拿到钱并离开银行
电话邀请C君……回复信函……发送传真……打电话2.信函_____________________________________________________3.传真指令被逐条执行程序员老板秘书程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。要执行的一组指令程序计算机中的程序程序设计描述(编制)计算机程序的工作称为程序设计或编程,其产品是程序。程序设计语言可供人编程用的语言就是程序设计语言,也常被称为编程语言。程序设计语言的发展机器语言汇编语言高级语言机器语言是机器指令形成的语言;形式为二进制编码,机器可直接执行;机器语言00000001000000001000 00000001000100001010 00000101000000000001 00000001000100001100 00000100000000000001 00000010000000001110 特点:难写难读,使用不方便,程序开发效率极低。数据装入寄存器0数据装入寄存器1寄存器0与1的数据乘数据装入寄存器1寄存器0与1的数据加保存寄存器0里的数据d=a*b+c
汇编语言:采用助记符形式,有利于人阅读和使用。汇编语言汇编语言的特点:每条指令的意义容易理解;程序粒度太小,细节太多;程序无结构,缺乏组织手段;写大程序仍然很困难;d=a*b+c
load0aload1bmult01load1cadd01save0d将单元a的数据装入寄存器0将单元b的数据装入寄存器1寄存器0与1的数据乘将单元c的数据装入寄存器1寄存器0与1的数据加将寄存器0里的数据存入单元d计算机无法直接执行汇编语言程序,执行前需要把汇编语言程序翻译为机器指令程序。最早时通过手工翻译为机器指令。后来人们开发出称为“汇编系统”的程序,让计算机去完成程序翻译工作。
d=a*b+c;高级语言高级语言的优点:编程工作的效率大大提高;程序更容易理解和阅读;更容易思考和把握复杂程序的意义;使编程发展成为一种职业和谋生方式。d=a*b+c
高级语言的特点:具有类似文字的表现形式,更接近人们的描述形式,更容易使用。用类似数学的表达式形式描述基本计算。用变量等概念取代低级的存储概念,使人摆脱各种繁琐低级的工作,例如存储的安排。提供高级操作流程控制手段和程序组织手段。高级语言的编译和执行高级编程语言中的指令哎呀…我理解不了编译程序/解释程序可以…我现在可以理解了高级语言由编译/解释程序转换为机器代码这种机器代码计算机可以理解计算机硬件高级语言程序
编译程序/解释程序(编译器/解释器)
机器代码1954年到1957年:高级语言Fortran诞生;至1960年代中,开发了Algol60,COBOL,BASIC等。还有函数式语言LISP等;1970年代开始:Pascal和C语言逐渐分别为教学科研和软件开发用的主要语言;1980年代:逻辑程序语言Prolog,面向对象语言Smalltalk和后来的C++,另有ML等;1995年左右的Java;高级语言的简单历史(略~)5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加
10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象
C语言的发展史
C语言的特点
C语言的发展和标准化1.2C语言简介UNIX由BellLab的KenThompson和DennisRitchie最先在1969年开发的O.S.(它的前身是MIT和AE开发的Multies)1970年,V1,V2版在PDP-7机上用汇编语言实现1971年V3PDP11/23;1972年V4PDP11/451972年,DennisRitchie开发出新语言C。1973年,Ritchie和Thompson用C改写了UNIX核心(90%)即V5ALGOL60语言
CPL语言
1963年,剑桥大学CombinedProgrammingLanguageBCPL语言
1967年,剑桥大学的MatinRichards对CPL语言进行了简化B语言
C语言
1970年,美国贝尔实验室的KenThompson将BCPL进行了修改1973年,B语言也给人“煮”了一下,美国贝尔实验室的DennisRitchie在B语言的基础上最终设计出了一种新的语言C语言的产生与UNIX操作系统是密不可分的:一、C语言发展史C–DennisRitchie(1972-1973年)
B–KenThompson
(1970年)BCPL–MartinRichards(1967年)
DennisM.Ritchie(丹尼斯·里奇)生于1941年9月9日,哈佛大学数学博士。现在,DennisM.Ritchie担任朗讯科技公司贝尔实验室(原AT&T实验室)下属的计算机科学研究中心系统软件研究部的主任一职。/who/dmr/和Unix的设计者KenThompson
接受美国国家技术勋章肯·汤普逊(左)和丹尼斯·里奇(右)
1983年,两人获得计算机领域最高奖——图灵奖。图灵奖(A.M.TuringAward,又译“杜林奖”),由美国计算机协会(ACM)于1966年设立,又叫“A.M.图灵奖”,专门奖励那些对计算机事业作出重要贡献的个人。其名称取自计算机科学的先驱、英国科学家阿兰·麦席森·图灵。由于图灵奖对获奖条件要求极高,评奖程序又是极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名合作者或在同一方向作出贡献的科学家共享此奖。因此它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。姚期智(AndrewChi-ChihYao),世界著名计算机学家,2000年图灵奖得主,美国科学院院士,美国科学与艺术学院院士,中国科学院外籍院士,清华大学高等研究中心教授。C语言历史(续)C语言的发展经历三个阶段:第一阶段:78年以前,C称为UNIXC,即C被看成UNIX的一部分。
成为UNIX的标准开发语言,随UNIX流行而被广泛接受。第二阶段:78年BrianKernighan和DennisRitchie的《TheCProgrammingLanguage》出版到88年ANSIC(标准C)标准出现。此C又称为K&RC。
被搬到各种机器的许多操作系统上,逐渐成为一种开发系统程序和复杂软件的通用语言。第三阶段:88年ANSIC标准(89年3月批准)和99年ISOC99。
成为使用最广泛的系统开发语言。人们用C开发各种程序,从简单应用到极其复杂的大型软件。各种计算机都有可用的C语言系统。二、标准化本课程以ANSIC新标准来讲解C语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准(1989年再次做了修订)。
后被ISO和各国接受,也采纳为中国国家标准(GB/T15272-94)。新标准C99已经通过。C语言比较简单,入门容易,很快就可以开始编程有丰富的程序机制、数据机制、函数定义机制,能满足复杂程序的需要。许多常用功能通过库实现。提供接近硬件的低级操作,广泛用于开发效率要求高的程序。被用于代替汇编语言开发底层软件。一般只比汇编程序生成的目标代码效率低10~20%。提供了预处理命令,支持软件系统的分块开发。从而支持大规模复杂软件开发,三、C语言的特点C语言inta,b;if(表达式)语句;VB语言DimaAsIntegerDimbAsIntegerif(表达式)then语句
EndifC语言缺点算符太多,优先级多,不便记忆。相对来说,C语言类型转换随便,安全性较差(如指针)一、最简单的C程序。/*ThisisthefirstCprogram*/#include<stdio.h>intmain(){
printf(“Goodmorning!\n");return0;}注释信息预处理命令有返回值无参数、有返回值的主函数主函数名函数开始内部函数名参数回车换行符函数调用函数体语句结束标志函数结束运行结果:
Goodmorning!
在C程序中,注释由“/*”开始,由“*/”结束,可以实现多行注释
。在C++程序中也可使用“//”进行单行注释。例如://注释信息C语言的预处理命令都是以“#”号开头。stdio.h是一个头文件
。#include指令的作用是指示编译器将该指令所指出的另一个源文件嵌入#include指令所在的程序中,文件应使用双引号或尖括号括起来。为了程序的易读性,
C程序中允许插入若干行空行,它不影响程序的功能,同注释一样。
main是主函数名,一个C语言程序有且仅有一个main函数。C程序执行时就是从main函数开始,具体讲就是从“{”开始,到“}”结束。
printf是C语言的内部函数名,因为它后面跟着(),其功能是将“Goodmorning!\n”显示在计算机的屏幕上(双引号和\n不显示)
C语言规定:语句以分号结束
1.3一个简单的C程序头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration)。头文件就像是一本书中的目录,读者(用户程序)通过目录,可以很方便就查阅其需要的内容(函数库)。
int
max(intx,inty){
intz;if(x>y)z=x;elsez=y;returnz;}你会分析这个子程序的结构吗?二、C语言程序格式C语言是“自由格式”语言C语言是自由格式语言,可随意安排格式(换行/加空格等),格式变化不影响程序意义。程序除了正确、高效之外,还要易读程序格式的要求有很多,不是硬性规定,因人而宜标识符命名应含有含义鲜明的文字(最好英文而非拼音ceshitest)适当的注解格式应很好体现层次结构,反映内在关系。规则:适当加入空行,分隔不同部分同层对齐,下层退格(加空格/制表符)写简单程序时就应注意养成好习惯。附:C语言编码规范.pdf编译:编译程序处理源程序,生成机器语言目标模块(目标文件)。目标模块不能执行,缺少必要的C程序运行系统和库功能。连接:连接程序把目标模块与运行系统、库模块组合起来,构成完整的可执行程序。三、C程序的加工和执行
源程序----用C语言写出的程序称为源程序,不能直接执行。将源程序转换为可执行程序,通常分为编译和连接两个步骤C程序的执行C程序的加工给出可执行程序的结果C源程序目标文件可执行程序C语言函数库编译连接源程序:是用户创建的文件,以“.c”为文件扩展名保存
目标文件:是编译器的输出结果。这类文件的常见扩展名为“.o”或“.obj”
可执行文件:是连接器的输出结果。可执行文件的扩展名为“.exe”。
C程序的加工过程集成开发环境(IDE,IntegratedDevelopmentEnvironment)是支持软件开发过程的软件系统。IDE把编程所需软件集成起来统一管理和使用。采用窗口菜单技术,提供编程用编辑环境,通过菜单提供编译、连接、执行程序等命令。四、集成开发环境
C语言常用的编译软件有MicrosoftVisualC++、BorlandC++、BorlandC++Builder、WatcomC++、GNUDJGPPC++、Lccwin32C、MicrosoftC、TurboC、HighC等等。
Windows下集成开发环境(IDE,IntegratedDevelopmentEnvironment
)免费TurboCWinTCDevC++CodeBlocksEclipseCDT付费MicrosoftVisualC++6.0BorlandC++Builder为什么不用TurboC?TurboC(Win-TC)太老了,界面还是DOS界面,库也是DOS的库,没有网络开发包、没有Windows界面开发包。TC只能用来学C的基础,要进行实际开发必须使用先进一点的工具。为什么不用更高版本的VC?我们不使用高版本的VC主要是如下考虑:VC6和高版本的VC没有本质区别。VC6是1998年的东西,大部分人、公司还是用VC6,市面上的书也都是用VC6;VC6的操作方式和VC2008非常相似,用熟了VC6再学高版本的VC只用半小时而已;高版本的VC体积太大,要五六百兆,而上面给出的VC6只有100MB。1.4程序开发过程分析问题编制程序编译连接调试运行完成一、C程序的开发过程分析问题编制程序编译连接调试运行完成编译中发现错误,转回修改源程序连接中发现错误,转回修改源程序调试运行中发现问题,表明分析本身有错误,重新分析问题调试过程中发现程序编写有错误,修改源程序二、程序调试和排错程序中存在的错误静态错误包括编译错误和连接错误(例:缺分号,main()等)(书写形式不符合语言要求)动态运行错误程序执行中出现的错误违反系统环境基本要求死循环除0类错误逻辑错误,例排序语言系统查出错误时,将产生一些“错误信息”行,指明发现位置和错误类型,供人参考。注意:应仔细阅读系统报错信息,检查所指位置附近的源程序,找到实际错误并予以排除。基本原则:集中精力排除系统发现的第一个错误。两个问题:1)实际错误可能出现在指定错误位置前面很远处。2)一个实际错误有时会导致许多出错信息行。应注意警告信息(WARNING)。警告常表示隐藏较深的错误,必须认真弄清原因。调试程序(Debug)调试(Debug):定位并解决问题(2000万美元的bug)调试方法:简单:使用打印语句(printf);高级:使用编程环境所带的调试工具;调试方式:设置/删除断点(togglebreakpoint,Insert/RemoveBreakpoint)断点是调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。查看变量(Watch)单步执行(StepInto)执行到光标处(RuntoCursor)1.5问题与程序设计用计算机解决问题的步骤分析问题,设计一种解决问题方案;用某种程序语言严格描述这一解决方案;在计算机上试用程序,看它能否解决问题。分析问题的能力,特别是从计算和程序的角度。掌握所用语言,熟悉语言的各种规定,形式和意义。学会写程序。解决同样问题,写的程序是否较简单?是否采用了合适的结构?是否清楚、易于阅读和理解?一些条件改变时,程序是否容易修改,以满足新要求?等等。检查程序错误的能力。确认实际错误,弄清楚应当如何改正,这永远是编程序的人的事。熟悉所使用的工具和环境。本课程学习中应注意的问题演示演示:使用VisualC++6.0编辑和运行程序的过程VisualC++6.0是目前国内比较流行的一种C++语言源程序的编译系统,使用该系统也可以编辑和运行C语言的源程序。使用MicrosoftVisualC++可以创建控制台应用程序也可以创建Windows应用程序。用
VisualC++创建的C程序被存储为一个独立工程。1、编辑方法一:先创建C源程序方法二:先创建空工程2、编译和链接组建|编译C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度知识产权许可使用合同(含专利技术使用范围和许可期限)
- 2024年度国际贸易信用贷款合同
- 2024年度租赁期满续租合同租赁物描述5篇
- 急腹症护理健康宣教
- 2024年度甲方授权乙方使用其商标的授权合同
- 2024版盾构隧道施工质量保修合同
- 二零二四年度山塘生态建设承包合同
- 2024年度实验室设备采购与安装合同
- 二零二四年度草牧场保险服务合同
- 二零二四年度北京环保监测技术服务合同
- DB50-T 771-2017 地下管线探测技术规范
- 2024-2025学年高中政治上学期《新时代的劳动者》教学设计
- 幼儿园故事绘本《卖火柴的小女孩儿》课件
- 10以内口算题每页50道
- 2024入团积极分子入团考试题库(含答案)
- 大学生生涯发展展示 (第二版)
- 护理领导力培养护士的领导潜能培训课件
- Linux操作系统应用(麒麟系统)PPT完整全套教学课件
- 印刷业管理条例-2020
- 比亚迪产业介绍ppt课件
- 植物生长记录-蒜苗篇
评论
0/150
提交评论