《C语言第1讲-C语言概述.ppt》由会员分享,可在线阅读,更多相关《C语言第1讲-C语言概述.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C C C C语言程序设计语言程序设计语言程序设计语言程序设计-概述概述概述概述 课程教学说明课程教学说明l精讲多练精讲多练讲授讲授4040学时,上机学时,上机2020学时学时l作业作业书面作业书面作业上机作业上机作业l成绩:成绩:平时:平时:20%(20%(其中上机其中上机15%15%)考试:考试:80%80%引引 言言l计算机能做什么呢?计算机能做什么呢?l如何利用计算机求解现实问题?如何利用计算机求解现实问题?l计计算算机机可可以以做做任任何何事事情情;只只要要能能把把实实际际问题抽象、制作成计算机可求解的程序。问题抽象、制作成计算机可求解的程序。l计算机求解问题的步骤:计算机求解问题的
2、步骤:实际实际 问题问题 求解求解 编制编制 问题问题问题问题 模型模型 算法算法 程序程序 实现实现计算机能做什么?计算机能做什么?分析分析抽象抽象模型模型求解求解命令命令编程编程调试调试程序程序问题模型l结构分析结构分析 线性方程组线性方程组l人口预报人口预报 微分方程微分方程l优化问题优化问题 线性规划、非线性规划线性规划、非线性规划l震动问题震动问题 矩阵分析;特征值、特征向量矩阵分析;特征值、特征向量l信息管理信息管理 二维数据表二维数据表l下棋下棋 树型结构遍历树型结构遍历l交通管理交通管理 图型结构遍历图型结构遍历下棋问题下棋问题“深蓝深蓝”与卡斯帕罗夫与卡斯帕罗夫l国际象棋棋盘
3、有国际象棋棋盘有64格,每方有格,每方有16个子。棋手在思考下个子。棋手在思考下一步棋时大约有一步棋时大约有35种合法选择。种合法选择。l目前最好的国际象棋程序可以分析到七八个回合,若目前最好的国际象棋程序可以分析到七八个回合,若要求电脑能思考到第七个回合,即要求电脑能思考到第七个回合,即14步棋,则需要有步棋,则需要有3514种可能的结局。种可能的结局。l下棋程序靠的是基本的行棋知识和强大无比的检索演下棋程序靠的是基本的行棋知识和强大无比的检索演算能力。这种信息检索选择方式好比一棵树;共有算能力。这种信息检索选择方式好比一棵树;共有35个枝干,每个枝干有个枝干,每个枝干有35个树杈,个树杈,
4、最终到树叶,即,最终到树叶,即可供选择的结果。越好的程序,所派生的树枝树杈就可供选择的结果。越好的程序,所派生的树枝树杈就越多。越多。l一般来讲,电脑每下一步棋,仍需有一般来讲,电脑每下一步棋,仍需有500亿或亿或600亿亿种选择。种选择。算法基础算法基础l如何设计程序?如何设计程序?lN.Wirth 认为:程序认为:程序=数据结构数据结构+算法算法数据结构:用于描述数据数据结构:用于描述数据算法:用于描述操作的,即解决怎么做。算法:用于描述操作的,即解决怎么做。l算法就是解题的方法和步骤。算法就是解题的方法和步骤。理论上讲,人理论上讲,人们可以通过笔和纸按照描述的操作在有穷步内完成们可以通过
5、笔和纸按照描述的操作在有穷步内完成相应的运算。相应的运算。l 软件:刻画现实世界,解决现实世界中的问题软件:刻画现实世界,解决现实世界中的问题l 语言:实现的工具语言:实现的工具l 算法:解的描述(例如魔方)算法:解的描述(例如魔方)l 数据结构:现实世界的数据模型数据结构:现实世界的数据模型l 程序程序=算法算法+数据结构数据结构 程序程序=算法算法+数据结构数据结构 算法的特征算法的特征l五大特征:五大特征:有穷性:描述的操作可以在有穷的时间内完成;有穷性:描述的操作可以在有穷的时间内完成;确定性:描述的每一种操作都是确定的,没有任何确定性:描述的每一种操作都是确定的,没有任何歧义性歧义性
6、有有0个或多个输入个或多个输入至少有一个输出至少有一个输出有效性:操作的每一步都是可行的,例如,不能有有效性:操作的每一步都是可行的,例如,不能有 n/0(即一个数被零除)的问题。(即一个数被零除)的问题。举例举例l计算计算5!=1*2*3*4*5l可以描述如下:可以描述如下:Step1:计算计算 1*2=2Step2:计算计算 2*3=6Step3:计算计算 6*4=24Step4:计算计算 24*5=120l问题:对于任意正整数问题:对于任意正整数 N,如何计算,如何计算 N!?(这需要有形式化的描述这需要有形式化的描述/由算法实现由算法实现)计算计算 N!的算法的算法Step1:输入正整
7、数输入正整数 N;Step2:1=M;Step3:1=P;Step4:M*P=M;Step5:P+1=P;Step6:if P M;Step3:1=P;Step4:M*P=M;Step5:P+1=P;Step6:if PN?输出M结束输入NNY计算计算 N!的算法的的算法的N-S图图 N-S图图-用省去的带箭头流程线的框图表示算法。用省去的带箭头流程线的框图表示算法。输出M 直到 PN P=P+1 M=M*P M=1,P=1 输入N开始M=1,P=1M=M*PP=P+1PN?输出M结束输入NNY图图2-N-S2-N-S图图图图1-1-流程图流程图用伪码表示算法用伪码表示算法l所谓伪码,就是自然
8、语言与程序设计语所谓伪码,就是自然语言与程序设计语言的联合运用。写法不唯一,但意义是言的联合运用。写法不唯一,但意义是唯一的。唯一的。用程序设计语言表示算法用程序设计语言表示算法l直接用程序表示直接用程序表示l直接用程序的一部分表示直接用程序的一部分表示结构化程序设计结构化程序设计l基本策略:自顶向下,逐步求精,模块基本策略:自顶向下,逐步求精,模块化设计,程序的编码采取缩进的方式。化设计,程序的编码采取缩进的方式。l结构化程序设计的思想起因,软件危机结构化程序设计的思想起因,软件危机的结果。尽量避免使用的结果。尽量避免使用 Goto 语句,使语句,使书写的程序清晰可读。书写的程序清晰可读。自
9、顶向下与逐步求精自顶向下与逐步求精l基本思想:将一个大的问题划分成若干个较基本思想:将一个大的问题划分成若干个较小的问题,将每个较小的问题再划分成更小小的问题,将每个较小的问题再划分成更小的子问题,直至每个子问题都容易求解的子问题,直至每个子问题都容易求解l例子:对例子:对N名学生的成绩按从高到低的顺序名学生的成绩按从高到低的顺序排名排名成绩排名输入成绩排序输出结果说说 明明l“纸上谈兵纸上谈兵”学不出程序设计本领;学不出程序设计本领;只有大量上机、编程、调试,才能掌只有大量上机、编程、调试,才能掌握。握。l学好程序设计语言的唯一途径是上机。学好程序设计语言的唯一途径是上机。l你的编程能力和你
10、在机器上投入的时你的编程能力和你在机器上投入的时间成正比。间成正比。C语言程序设计要点语言程序设计要点1、熟悉基本概念、熟悉基本语句的使用格式和说明;、熟悉基本概念、熟悉基本语句的使用格式和说明;2、各种语句的执行过程;、各种语句的执行过程;3、会读程序、会分析程序的功能;、会读程序、会分析程序的功能;4、掌握程序设计的基本算法和常用算法;、掌握程序设计的基本算法和常用算法;5、能根据要求独立编程以及对所编程序上机调试;、能根据要求独立编程以及对所编程序上机调试;6、完善程序。、完善程序。C语言程序的结构语言程序的结构-以该程序只含有一个主函数为例以该程序只含有一个主函数为例main()函数体
11、函数体(由(由C语言语语言语句组成。)句组成。)函数体内部结构:函数体内部结构:main()inta,b,c;scanf(“%d,%d”,&a,&b);if(ab)c=a;else c=b;printf(n max=%d n,c);定义所有变量定义所有变量的数据类型;的数据类型;为已知变量为已知变量提供数据;提供数据;算法编程或算法编程或公式引用;公式引用;输出待求变输出待求变量的值;量的值;1、一个、一个C语言程序是由一个或多个函数构成,其中语言程序是由一个或多个函数构成,其中只能有且只有一个函数名为只能有且只有一个函数名为main的函数;的函数;2、函数体总是以、函数体总是以“”开始,以开
12、始,以“”结束;结束;3、一行可写多个语句,反之一个语句也可分成多行、一行可写多个语句,反之一个语句也可分成多行写;写;4、每个语句之末必须有一个分号、每个语句之末必须有一个分号“;”;5、一般采用小写字母,特殊量可用大写字母:大小、一般采用小写字母,特殊量可用大写字母:大小写不等价!写不等价!6、程序中随处都可以用、程序中随处都可以用*加于注释说明。加于注释说明。程序中的注释只是用来提高程序的可读性,并程序中的注释只是用来提高程序的可读性,并不代表任何计算机的运算和处理。不代表任何计算机的运算和处理。特点特点C语言编程思路1、理解题意、提出问题;、理解题意、提出问题;2、建立数学模型;、建立
13、数学模型;3、寻找解决问题的有效算法或直接公式;、寻找解决问题的有效算法或直接公式;4、根据、根据C语言程序结构编程;语言程序结构编程;5、上机调试。若结果正确,结束。否则返回第、上机调试。若结果正确,结束。否则返回第四步检查编程,再进行调试,依次类推,直到正四步检查编程,再进行调试,依次类推,直到正确为止。确为止。注:编译、链接及执行的每一步都可能发现程序的不同性质的错误。注:编译、链接及执行的每一步都可能发现程序的不同性质的错误。程序的上机执行过程程序的上机执行过程(5)运行:)运行:可执行程序,按程序的要求逐步执行,当执行到输可执行程序,按程序的要求逐步执行,当执行到输 入语句时就等待入
14、语句时就等待键入数据键入数据键入数据键入数据;当执行到输出语句时,则按要;当执行到输出语句时,则按要 求输出(求输出(显示显示)结果结果结果结果!()()手工编程:审题、分析、设计、画框图写算法、写程序清手工编程:审题、分析、设计、画框图写算法、写程序清单(单(源程序源程序源程序源程序)。)。()编辑()编辑(上机调试的第一关上机调试的第一关上机调试的第一关上机调试的第一关):录入或修改源程序,以文件):录入或修改源程序,以文件形式存于盘中!形式存于盘中!()()编译:将录入或修改好的源程序进行编译:将录入或修改好的源程序进行语法语法语法语法查错,并产生目查错,并产生目标程序。标程序。()链接
15、:将已进行语法查错过是正确的目标程序,与系统中()链接:将已进行语法查错过是正确的目标程序,与系统中库函数库函数库函数库函数(已编译过的目标模块已编译过的目标模块已编译过的目标模块已编译过的目标模块)链接在一起,构成一个完)链接在一起,构成一个完整、独立、可执行的程序(整、独立、可执行的程序(可执行文件可执行文件可执行文件可执行文件)。)。产生产生.产生产生读读.OBJ.EXE读读装入装入内存内存结果结果产生产生产生产生语法语法结果结果模块模块如何进行上机 TC是美国Bland公司的产品,是一个将编辑、编译、链接及运行集成于一体的语言集成开发软件。Turbo C的上机过程:(2)编辑:录入程序录入程序;(3)编译、链接、执行:Ctrl+F9;(4)看结果:Alt+F5;(5)退出 Turbo C 集成开发环境:Alt+X;或通过菜单。(1)启动、进入 Turbo C 集成开发环境,进入TC编辑界面;TC编辑界面菜单简介File、Edit、Run、Compile、Project、Options、Debug/watch文件编辑工程项目选项设置环境工作环境运行F10编译F9查错逐步调试