高级语言程序设计:chap01 引言

上传人:新** 文档编号:569483522 上传时间:2024-07-29 格式:PPT 页数:38 大小:611KB
返回 下载 相关 举报
高级语言程序设计:chap01 引言_第1页
第1页 / 共38页
高级语言程序设计:chap01 引言_第2页
第2页 / 共38页
高级语言程序设计:chap01 引言_第3页
第3页 / 共38页
高级语言程序设计:chap01 引言_第4页
第4页 / 共38页
高级语言程序设计:chap01 引言_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《高级语言程序设计:chap01 引言》由会员分享,可在线阅读,更多相关《高级语言程序设计:chap01 引言(38页珍藏版)》请在金锄头文库上搜索。

1、高级语言程序设计高级语言程序设计Chap1引引言言n一个一个C语言程序语言程序n程序与程序设计语言程序与程序设计语言nC语言的发展历史与特点语言的发展历史与特点n实现问题求解的过程实现问题求解的过程本章要点本章要点n什么是程序?程序设计语言包含哪些功能?什么是程序?程序设计语言包含哪些功能?n程序设计语言在语法上包含哪些内容?程序设计语言在语法上包含哪些内容?n结构化程序设计有哪些基本的控制结构?结构化程序设计有哪些基本的控制结构?nC语言有哪些特点?语言有哪些特点?nC语言程序的基本框架如何?语言程序的基本框架如何?n形成一个可运行的形成一个可运行的C语言程序需要经过哪些语言程序需要经过哪些

2、步骤?步骤?n如何用流程图描述简单的算法?如何用流程图描述简单的算法?1.1一个一个C语言程序语言程序例例1-1求较大的数问题。求较大的数问题。输入输入:5,9:5,9输出输出:max=9:max=9C程序由函数组成有且只有程序由函数组成有且只有一个主函数一个主函数main #include/*编译预处理命令*/intmax(intx,inty);/*函数声明*/intmain(void)/*主函数*/inta,b,c;printf(“pleaseinputtwoints:n”);/*变量定义*/scanf(“%d%d”,&a,&b);/*输入两个整数*/c=max(a,b);/*调用函数计算

3、最大值*/printf(“max=%dn”,c);return0;intmax(intx,inty)/*定义定义max函数函数*/*/intz;if(xy)z=x;elsez=y;return(z);x,yza,bmaxmainintmax(intx,inty);/*函数声明函数声明*/main()inta,b,c;printf(“pleaseinputtwoints:n”);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);intmax(intx,inty)/*定义定义max函数函数*/intz;if(xy)z=x;elsez=y;retu

4、rn(z);1.2程序与程序设计语言程序与程序设计语言n程序程序人们为人们为解决某种问题解决某种问题用计算机可以识别的代码用计算机可以识别的代码编排编排的一系列加工的一系列加工步骤步骤。程序的执行过程实际上是对程序所要处理的数程序的执行过程实际上是对程序所要处理的数据进行处理的过程。据进行处理的过程。n程序设计语言程序设计语言提供了一种提供了一种表达数据表达数据与与处理数据处理数据的功能的功能要求程序员按照要求程序员按照语言的规范语言的规范编程编程1.2程序与程序设计语言程序与程序设计语言n程序与指令程序与指令n程序设计语言的功能程序设计语言的功能n程序设计语言的语法程序设计语言的语法n程序的

5、编译与编程环境程序的编译与编程环境程序与指令程序与指令n指令:指令:计算机的一个计算机的一个最基本的功能最基本的功能如实现一次加法运算或实现一次大小的判别如实现一次加法运算或实现一次大小的判别n计算机的指令系统:计算机的指令系统:计算机所能实现的计算机所能实现的指令的集合指令的集合n程序:程序:一系列一系列计算机指令的有序组合计算机指令的有序组合程序与指令程序与指令例例1-2编写程序,分别求和与乘积编写程序,分别求和与乘积n虚拟的计算机指令系统(虚拟的计算机指令系统(7条指令条指令)指令指令1:InputX将当前输入数据存储到内存的将当前输入数据存储到内存的X单元单元指令指令2:OutputX

6、将内存将内存X单元的数据输出。单元的数据输出。指令指令3:AddXYZ将内存将内存X单元的数据与单元的数据与Y单元的数据单元的数据相加并将结果存储到相加并将结果存储到Z单元。单元。指令指令4:SubXYZ将内存将内存X单元的数据与单元的数据与Y单元的数据单元的数据相减并将结果存储到相减并将结果存储到Z单元。单元。指令指令5:BranchEqXYP比较比较X与与Y,若相等则程序跳,若相等则程序跳转到转到P处执行,否则继续执行下一条指令。处执行,否则继续执行下一条指令。指令指令6:JumpP程序跳转到程序跳转到P处执行。处执行。指令指令7:SetXY将内存将内存Y单元的值设为单元的值设为X。程序与

7、指令程序与指令n输入输入3个数个数A,B和和C,求,求A+B+C的结果的结果InputA;输入第输入第1个数据到存储单元个数据到存储单元A中中InputB;输入第输入第2个数据到存储单元个数据到存储单元B中中InputC;输入第输入第3个数据到存储单元个数据到存储单元C中中AddABD;将将A、B相加并将结果存在相加并将结果存在D中中AddCDD;将将C、D相加并将结果存在相加并将结果存在D中中OutputD;输出输出D的内容的内容程序与指令程序与指令n输入输入2个数个数A和和B,求,求A*B的结果的结果1InputA;输入第输入第1个数据到存储单元个数据到存储单元A中中2InputB;输入第

8、输入第2个数据到存储单元个数据到存储单元B中中3Set0X;将将X设为设为0,此处,此处X用以统计用以统计A累加的次数累加的次数4Set0Z;将将Z设为设为0,此处,此处Z用以存放用以存放A*B的结果的结果5BranchEqXB9;判别判别X与与B是否相等;若相等说明是否相等;若相等说明A已累加了已累加了B次,程序跳转到第次,程序跳转到第9条指令,输出结果条指令,输出结果6AddZAZ;Z=Z+A7Add1XX;X=X+18Jump5;程序跳转到第程序跳转到第5条指令,继续循环执行第条指令,继续循环执行第6条、条、7条指令条指令9OutputZ;输出输出Z的值,该值等于的值,该值等于A*B程序

9、设计语言的功能程序设计语言的功能n数据表达:表达所要处理的数据数据表达:表达所要处理的数据n流程控制:表达数据处理的流程流程控制:表达数据处理的流程数据表达数据表达n数据表达数据表达:一般将数据抽象为若干类型一般将数据抽象为若干类型n数据类型数据类型:对某些具有共同特点的数据集合对某些具有共同特点的数据集合的总称的总称代表的数据(数据类型的定义域)代表的数据(数据类型的定义域)在这些数据上做些什么(即操作或称运算)在这些数据上做些什么(即操作或称运算)例如:整数类型例如:整数类型n包含的数据:包含的数据:,-2,-1,0,1,2,n作用在整数上的运算:作用在整数上的运算:+、-、*、/等等数据

10、表达数据表达nC语言提供的数据类型语言提供的数据类型基本数据类型:程序设计语言事先定义好,供基本数据类型:程序设计语言事先定义好,供程序员直接使用,如整型、实型(浮点型)、程序员直接使用,如整型、实型(浮点型)、字符型等。字符型等。构造类型:由程序员构造,如数组、结构、文构造类型:由程序员构造,如数组、结构、文件、指针等。件、指针等。n各种数据类型的常量与变量形式各种数据类型的常量与变量形式常量(常数常量(常数)与变量与变量流程控制流程控制n结构化程序设计方法结构化程序设计方法将复杂程序划分为若干个相互独立的模块将复杂程序划分为若干个相互独立的模块模块:一条语句(模块:一条语句(Stateme

11、nt)、)、一段程序或一段程序或一个函数(子程序)等一个函数(子程序)等单入口、单出口单入口、单出口流程控制流程控制n任何程序都可以将模块通过任何程序都可以将模块通过3种基本的控制种基本的控制结构结构进行组合来实现进行组合来实现顺序结构顺序结构循环结构循环结构分支结构分支结构流程控制流程控制n语句级控制:语句级控制:3种基本的控制结构种基本的控制结构顺序顺序控制结构控制结构:自然顺序执行自然顺序执行分支分支控制结构控制结构(选择结构):根据不同的条件来选择选择结构):根据不同的条件来选择所要执行的模块所要执行的模块循环循环控制结构控制结构:重复执行某个模块重复执行某个模块n单位级控制:函数的定

12、义与调用单位级控制:函数的定义与调用处理复杂问题时处理复杂问题时,将程序分为若干个相对独立的子程序将程序分为若干个相对独立的子程序(函数)(函数)程序设计语言的语法程序设计语言的语法n用程序设计语言所写的程序必须符合相应用程序设计语言所写的程序必须符合相应语言的语法语言的语法源程序源程序(源代码)是一个(源代码)是一个字符序列字符序列,这些字符,这些字符序列按顺序组成了一系列序列按顺序组成了一系列“单词单词”,“单词单词”的组合就形成了语言有意义的的组合就形成了语言有意义的语法单位语法单位,一些,一些简单语法单位的组合又形成了更复杂的语法单简单语法单位的组合又形成了更复杂的语法单位,最后一系列

13、语法单位组合成位,最后一系列语法单位组合成程序程序。程序设计语言的语法程序设计语言的语法nC语言的主要语言的主要“单词单词”(1)标识符标识符:C语言的标识符规定由字母、数字以及下划语言的标识符规定由字母、数字以及下划线组成,且第一个字符必须是字母或下划线。线组成,且第一个字符必须是字母或下划线。(2)保留字保留字(关键字关键字):它们是它们是C语言规定的、赋予它们以语言规定的、赋予它们以特定含义、有专门用途的标识符。特定含义、有专门用途的标识符。(3)自定义标识符自定义标识符:包括在程序中定义的变量名、数据类包括在程序中定义的变量名、数据类型名、函数名以及符号常量名。型名、函数名以及符号常量

14、名。有意义的英文单词有意义的英文单词(4)常量常量:常量是有数据类型的,如,常量是有数据类型的,如,123、12.34(5)运算符运算符。代表对各种数据类型实际数据对象的运算。代表对各种数据类型实际数据对象的运算。如,如,+(加)、(加)、-(减)、(减)、*(乘)、(乘)、/(除)、(除)、%(求余)、(求余)、(大于)(大于)程序设计语言的语法程序设计语言的语法nC语言的主要语法单位语言的主要语法单位(1)表达式)表达式:运算符与运算对象组合就形成了表运算符与运算对象组合就形成了表达式。如,达式。如,2+3*4(2)变量定义)变量定义:变量也有数据类型,所以在定义变量也有数据类型,所以在定

15、义变量时要说明相应变量的类型。如变量时要说明相应变量的类型。如:inti;(3)语句语句:语句是程序最基本的执行单位,程序语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。的功能就是通过对一系列语句的执行来实现的。(4)函数定义与调用)函数定义与调用程序设计语言的语法程序设计语言的语法其中,其中,(3)语句:语句:表达式语句表达式语句:表达式加分号:表达式加分号“;”分支语句分支语句:实现分支控制过程:实现分支控制过程if(ab)x=a;elsex=b;循环语句循环语句:实现循环控制的过程:实现循环控制的过程sum=0;/*初始化初始化sum和和i*/i=1;while

16、(i=100)/*while循环语句循环语句*/sum=sum+i;i=i+1;复合语句复合语句:用一对用一对“”,将若干语句顺序组合在一起,将若干语句顺序组合在一起就形成了一个程序段。就形成了一个程序段。ib?x=a;x=b;YN程序设计语言的语法程序设计语言的语法其中,(其中,(4)函数定义与调用)函数定义与调用函数是函数是完成特定任务完成特定任务的的独立模块独立模块,函数的使用最,函数的使用最主要涉及到函数的定义与调用。主要涉及到函数的定义与调用。输入输出:输入输出:C语言没有输入输出语句,用语言没有输入输出语句,用库函数库函数scanf、printf等实现。等实现。程序的编译与编程环境

17、程序的编译与编程环境n程序的编译程序的编译编译器编译器程序程序计算机直接能理解的指令计算机直接能理解的指令序列序列编译器:对源程序进行词法分析、语法与语编译器:对源程序进行词法分析、语法与语义分析,生成可执行的代码。义分析,生成可执行的代码。直接指出程序中的语法错误直接指出程序中的语法错误n编程环境编程环境包括编辑程序(包括编辑程序(Edit)、)、编译(编译(Compile)、)、调试调试(Debug)等过程。等过程。C语言上机过程语言上机过程源程序源程序test.cpptest.obj可执行代码可执行代码test.exe编译编译连接连接 运行运行1.3C语言的发展历史与特点语言的发展历史与

18、特点n历史历史1972年:贝尔实验室的年:贝尔实验室的DennisRitchie在在B语语言的基础上设计并实现了言的基础上设计并实现了C语言。语言。1978年:年:B.W.Kernighan和和D.Ritchie(简称简称K&R)合著的合著的TheCProgrammingLanguage是各种是各种C语言版本的基础,称之为语言版本的基础,称之为旧标准旧标准C语言。语言。1983年:美国国家标准化协会(年:美国国家标准化协会(ANSI)制定了制定了新的新的C语言标准,称语言标准,称ANSIC。C语言的特点语言的特点1C语言是一种结构化语言语言是一种结构化语言2C语言语句简洁、紧凑,使用方便、灵活

19、语言语句简洁、紧凑,使用方便、灵活32个关键字个关键字,9种控制语句,程序书写形式自由。种控制语句,程序书写形式自由。3C语言程序易于移植语言程序易于移植C语言将语言将与硬件有关与硬件有关的因素从语言主体中分离出来,的因素从语言主体中分离出来,通过库函数通过库函数或其他实用程序实现它们。或其他实用程序实现它们。a=1;b=2;a=1;b=2;C语言的特点语言的特点4C语言有强大的处理能力语言有强大的处理能力5生成的目标代码质量高,运行效率高生成的目标代码质量高,运行效率高6不具备数据越界自动检查功能,运算符不具备数据越界自动检查功能,运算符的优先级与结合性对初学者难于掌握。的优先级与结合性对初

20、学者难于掌握。C语言中语言中大小写字母大小写字母代表代表不同含义不同含义1.4实现问题求解的过程实现问题求解的过程问题:问题:求求1100间所有偶数的和。间所有偶数的和。1问题分析与算法设计问题分析与算法设计求在一定范围内(求在一定范围内(1100),满足一定条件满足一定条件(偶数偶数)的若干的若干整数的和,求整数的和,求累加和累加和。i=100?sum=sum+i;i=i+1;sum=0,i=1;YN思路思路:设置一个变量设置一个变量(sum),其初值为其初值为0,然后在,然后在1100的数中的数中(i)寻找偶数寻找偶数,将它们一个一个累加到将它们一个一个累加到sum中。中。一步累加:一步累

21、加:sum=sum+i;重复累加,用循环语句实现,在循环过程中:重复累加,用循环语句实现,在循环过程中:(1)判别判别i是不是偶数:用分支控制语句来是不是偶数:用分支控制语句来实现。实现。(2)对循环次数进行控制:通过对循环次数进行控制:通过i值的变化值的变化问题分析与算法设计问题分析与算法设计思路思路确定算法确定算法算法算法:一组明确的解决问题的步骤,它产生结一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。果并可在有限的时间内终止。算法的描述:算法的描述:n自然语言自然语言n伪代码伪代码n流程图:算法的图形表示法流程图:算法的图形表示法sum=0i=1i=100?i是偶数?是偶数

22、?i=i+1输出输出sum真真假假假假sum=sum+i真真实现问题求解的过程实现问题求解的过程2编辑程序编辑程序生成程序的源文件,生成程序的源文件,C语言源语言源文件的后缀为文件的后缀为.c/.cpp#includeintmain(void)inti,sum=0;i=1;while(i=100)if(i%2=0)sum=sum+i;i=i+1;printf(%d,sum);return0;sum=0i=1i=100?i是偶数?是偶数?i=i+1输出输出sum真真假假假假sum=sum+i真真提问提问:n求求100以内偶数和另一种方法以内偶数和另一种方法?i=100?sum=sum+i;i=i

23、+2;sum=0,i=2;YNi=100?sum=sum+i;i=i+1;sum=0,i=1;YN#includeintmain(void)inti,sum=0;i=1;while(i=100)if(i%2=0)sum=sum+i;i=i+1;printf(%d,sum);return0;#includeintmain(void)inti,sum=0;i=2;while(i=100)sum=sum+i;i=i+2;printf(%d,sum);return0;原来原来修改后修改后实现问题求解的过程实现问题求解的过程3程序编译连接程序编译连接编辑程序后,用该语言的编译程序对其进编辑程序后,用该语

24、言的编译程序对其进行编译,以生成二进制代码表示的目标行编译,以生成二进制代码表示的目标程序程序(.obj),与编程环境提供的库函数与编程环境提供的库函数进行连接(进行连接(Link)形成可执行的程序形成可执行的程序(.exe)。编译程序指出编译程序指出语法错误语法错误语法错误语法错误VS逻辑错误逻辑错误实现问题求解的过程实现问题求解的过程4运行与调试运行与调试经过编辑、编译、连接,生成执行文件后,就可经过编辑、编译、连接,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。以在编程环境或操作系统环境中运行该程序。如果程序运行所产生的结果不是你想要的结果,如果程序运行所产生的结果不是你想

25、要的结果,这是程序的这是程序的语义错误(逻辑错误)语义错误(逻辑错误)。调试:在程序中查找错误并修改错误的过程。调试:在程序中查找错误并修改错误的过程。调试的方法调试的方法n设置断点设置断点n单步跟踪单步跟踪调试是一个需要耐心和经验的工作,也是程序调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。设计最基本的技能之一。开始开始结果结果语法语法错误错误源程序源程序.c/.cpp目标程序目标程序.obj可执行程序可执行程序.exe编辑编辑编译编译连接连接运行运行连接连接错误错误运行运行错误错误C语言程序的调试、运行步骤语言程序的调试、运行步骤上机作业上机作业:1.实验实验#12.邮箱邮箱:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号