函数和控制结构.ppt_第1页
函数和控制结构.ppt_第2页
函数和控制结构.ppt_第3页
函数和控制结构.ppt_第4页
函数和控制结构.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章讨论了变量、函数和控制结构、机制的局限性。只能说明从基础数据开始的简单计算。只能说明特定的计算。描述更复杂的计算过程,程序具有通用性,可以解决一个茄子问题,徐璐需要更多的节目机制来完成对其他数据的类似计算。3.1语句和复合结构,语句是程序的基本单位。语法:语句的格式必须符合语言要求。意义:形式合法的语句表达了某种意义(程序执行时的效果),这称为语句的意义。函数调用是“基本”语句。还有其他基本门(如下所述)。为了说明复杂的计算,语言提供了组合简单语句的结构,以便控制执行过程。复合结构(复合语句),语法:一对包含零个或多个语句的大括号。含义:按顺序执行每个语句。空复合结构中没有语句,执行立即

2、结束。以前简单的c程序的主要部分:int main () printf(Good morning!n);return 0;3.2变量的概念、定义和使用以及硬件中数据存储的概念是内存设备和地址,变量是高级语言中的反映。变量:存储数据的命名对象。变量名使您可以使用变量中存储的数据。变量名是标识符。基本动作:配置值并采用值。变量可以存储值。指定变量的值后,每次使用都将获得牙齿值,直到下次指定值。您可以在节目执行期间变更变数值。变量具有固定类型。只能保存牙齿类型的值。整数变量(存储int值的变量)、双精度变量(存储双精度值)、文字变量等,变量定义:必须先定义和使用变量。定义所需的信息(变量名和类型)。

3、变量定义:int m;双弹x;可以同时定义同一类型的多个变量。int k、n、sum、count长双精度y,z;关键字不能用作变量名。提倡采用有意义的名字。您可以在复合结构中定义局部变量。1)内部使用2)变量定义必须出现在所有语句之前。不能在一个变量定义序列语句序列的复合结构中定义多个同名变量。执行复合结构:首先定义变量,然后按顺序执行每个语句。变量值和分配值:在计算中找到变量,并在计算中使用其值。x sin(3.2 * y)-pow(x,2),表达式中有变量,计算结果取决于变量值。printf(“% dn”,n * 2);分配:由分配运算符(=,分配编号)表示。x=5.0左侧是分配目标,右侧

4、是表达式。赋值操作的主要效果是将表达式的值赋给左侧变量。赋值运算符的优先级较低。例如:x=2 3 * y,赋值语句:赋值表达式后面的加分(语法)牙齿最基本的语句,用于完成程序中最重要的任务。在程序中,赋值语句通常用于说明分配行为。分配表达式可以独立存在(稍后介绍)。范例:重新撰写程式,以取得3面3、5、7上的三角形面积。在计算中多次使用半周长,并将牙齿值另存为定义变量,以避免重复计算。# include # include intmain()doubles;S=(3 .5.7.)/2 .Printf (area :% fn,sqrt(s *(s-3)*(s-5)。)* (s-7 .);retu

5、rn 0;变量的主要用途之一:存储计算的中间结果。与分配运算符中的值相结合,分配操作也具有值,即右侧表达式中的值。赋值表达式中的值通常不使用。可以使用赋值表达式中的值。范例(不提倡):y=(x=5)8;人们有时使用相同的表达式向多个变量赋值。y=(z=(x=1.0);赋值运算符从右到左组合。上述语句可以简化(也称为多分配)。y=z=x=1.0、分配和类型分配变量具有类型(由变量定义确定)。赋值编号右侧表达式中的值具有类型。provisioning:如果表达式的值与指定的变量类型不同,则首先将值转换为变量类型的值,然后指定值。在前面的节目示例中,赋值语句重写为s=(3 5 7)/2。运行时发现程

6、序的结果无效。,# include # include intmain()doubles=(3 . 5 . 7)。)/2 .Printf (area :% fn,sqrt(s *(s-3)*(s-5)。)* (s-7 .);return 0;在定义变量初始化时指定初始值。可以使用数字或数值表达式初始化相应类型的变量。初始化一次只能有一个变量。赋值表达式具有值。以下是有效语句:x=2.0y=(x=3.0)x;运行后,y的值是什么?分配与数学中的“等于”完全不同。例如:x=x 1;“x=x 1”是数学内部的矛盾。商业是合法的。牙齿问题没有回答,第二句不正确。c语言没有规定两个操作数加法的计算顺序。

7、牙齿表达式的结果未定义.,程序的注释注释注释:用作注释的说明性文本,旨在帮助您阅读/理解节目。注释不影响程序意义(执行)。(所有语言都允许写注释)格式:/*所有字符的序列*/程序的注释等于一个空格。添加程序所需的注释是一个好的编程习惯。对于复杂的大型程序,注释的意义更大。简单计算节目,#include */int main () /*使用数学函数时定义多个变量(和可能的初始化)*/*多个计算和赋值语句*/,程序的基本形式# include intmain()Printf(radius :% f,area :% fn,3.24,3.24 * 3.24 * 3.1416) Printf()/*实际

8、程序不能有省略号*/。麻烦容易出错,上面的程序有错误。如果您有参数计算磁碟面积的函数:double c_area(double)程式,您可以简化它。第一个语句可以写为printf (radius :% f,area :% fn,3.24,c _ area (3.24)。如果您有打印磁盘面积的函数pc_area,则只需写入pc_area(3.24)。PC _ area(2.13);可以把函数程序缩短,易于写/理解/修改,可以看作是函数C语言基本功能的扩展。函数是特定计算过程的抽象,具有通用性牙齿,允许根据法规方式(参数数量/类型)使用特定数据。示例:标准函数sin,类型属性:双精度(double

9、 sin),标准函数限制,需求无限计算机编程有函数定义要求。函数定义将计算定义为函数和命名。定义函数c_area的片段:double c _ area(double r)return r * r * 3.1416;定义后,可以通过名称调用它,并在需要的任何地方使用。半径为3.24高度为2.4的圆锥体积:2.4 * c_area(3.24)/3.0外部半径为5.3,内部半径为3.07,高度为4.2的空心圆柱:(c _ area (5.3)-cPrintf (radius :% f,area :% fn,0.865,c _ area(0.865);Printf (radius :% f,area

10、:% fn,3.746,c _ area(3.746);Printf (radius :% f,area :% fn,12.3364,c _ area(12.3364);Printf (radius :% f,area :% fn,8.421,c _ area(8.421);return 0;函数定义、函数头描述函数名称和类型属性。包含:函数返回值类型、函数名称和参数表。参数表声明参数数和每个参数类型。参数命名是为了在函数内使用实际参数值。由C_area定义的函数头是double c_area (double r),函数体:复合结构。此处定义的变量是本函数本地变量。参数也被视为本地变量。格式:

11、函数头函数主体,函数主体中的特殊语句:return/返回语句:return表达式;Return函数结束:首先计算将该值用作函数返回值的表达式。函数调用函数名称(物理表)区分多个参数逗号。执行函数:函数主体中的复合语句在参数时有特定的实际参数值时开始执行。在多个参数函数表中创建多对类型/参数,区分逗号。示例:定义已知三角形三边长度的面积的函数。T_area,三个双参数返回双精度。类型特征:double t _ area (double,double,double),函数定义要写入double t _ area (double a,double b,double),没有返回值的函数定义函数不需要返

12、回值时没有返回值的函数定义。格式:将void写入返回值类型。当执行到达函数身体末端时,函数结束。表达式中不能使用没有返回值的函数。示例:根据半径计算和输出磁盘面积的函数:void PC _ area(double r)printf(radius 3360% f,area 3360% fn,r,3.1416 *)PC _ area(2.13);PC _ area(0.865);PC _ area(3.746);PC _ area(12.3364);PC _ area(8.421);return 0;函数和节目以及整个程序必须具有名为main的函数(主函数)。Int main()函数main表示节

13、目运行进程。程序从main的主体开始,在复合结构退出(执行语句或退出)之前,不会在没有其他函数调用的情况下运行。Main在节目启动时自动调用(运行系统调用)。程序无法调用main。函数和类型以及返回语句中的表达式值必须可以转换为函数返回值类型,语句在执行时将计算结果(转换后)用作返回值。示例:int fun(int m)return 3.2 * m 5;定义时的类型问题:头定义返回值类型可能与返回语句中的表达式类型不匹配。调用时的类型问题:实际参数数必须满足函数定义要求,并且每个实际参数必须能够转换为相应的格式参数类型。如果实际参数类型与造型参数类型不同,则首先将其转换为所需类型的值,然后将其

14、发送给造型参数。int fun(int m)return 3.2 * m 5;门:x=fun(2.5 6);将x设置为double variable variable。执行语句时有多少个转换?类型转换的各种情况:计算中可能发生类型转换分配。可能发生类型转换参数传播。类型转换生成函数返回值时可能发生类型转换。了解函数调用。包含一个或多个函数定义节目模式:#include /*函数定义记录在此处。*/int main () /*注,3.4关系表达式例如,返回两个参数中较大值的函数:double dmax (double,double)、数据大小比较(判断)根据判断结果做什么(处理情况)、牙齿部分主

15、要说明如何解释逻辑判断,以及如何确定判断结果。关系运算符/关系表达式,关系运算符共6个:=大于/大于等于/小于等于/小于=!=等于/不等于;关系运算符可用于算术类型。如果比较的对象类型不同,则根据算术运算规则进行转换,然后进行判断。关系是否成立(真/假):3.2=2.9 y!=x 1,优先级低于二进制算术运算符,高于分配。=,=低于其他4个运算符。从左到右合并不会指定计算对象的顺序。关系表达式计算结果C语言没有具体表示关系计算结果的类型。关系运算的结果为int,成立/成立值分别为1/0。(3.24=2.98)值为int类型的0。(5!=3 1)的值为int类型的1。关系的结果是不成立/不成立,逻辑上是真/假。c语言中的任何基本类型值都可以用作逻辑值。值为0表示逻辑值“false”将非零牙齿值用作逻辑值“true”,通常不是连续写关系运算符格式(容易误解)的牙齿(例如5=3=2,条件运算符“? 。条件表达式的语法格式:表达式1?表达式2 :表达式3,语义(特殊计算方法):先计算表达式1(条件)。如果条件为真,则计算表达式2,将结果作为条件表达式的值条件不成立表达式3,并使用该值作为条件表达式的值。注意:如果条件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论