C++程序设计教程2_第1页
C++程序设计教程2_第2页
C++程序设计教程2_第3页
C++程序设计教程2_第4页
C++程序设计教程2_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

22 01 55 1 C 程序设计教程 第二版 第二章基本编程语句Chapter2BasicProgrammingStatements 清华大学出版社钱能 22 01 55 2 第二章内容 说明语句 DeclarativeStatements 条件语句 ConditionStatements 循环语句 LoopStatements 循环设计 LoopDesigns 输入输出语句 Input OutputStatements 转移语句 MoveStatements 再做循环设计 MoreLoopDesigns 22 01 55 3 1 说明语句 DeclarativeStatements 数据说明 求解问题所使用的数据是什么性质 进行什么运算 表达范围如何 必须预先说明说明方式 既要指明其名字 也要指明其是什么类型 还可以顺便初始化 如 inta doubled 3 5 说明数据的另一个目的是创建一个所需大小的实体空间给该名字 以便存储所用的数据值若数据名字没有说明 使用其便是非法的 22 01 55 4 过程 函数 说明 求解中需要通过函数调用来实施求解时 便要对函数的性质进行说明 说明其返回类型 参数类型 参数个数函数说明分函数声明和函数定义两种 函数声明是说明函数的名字 函数的返回类型 以及函数的参数和个数 如 doublearea doublera 函数定义是在函数声明的基础上 对整个实现过程进行详细定义 如 doublearea doublera returnra ra 3 14 22 01 55 5 调用函数就是使用函数名字 使用名字前必须清楚名字的性质 所以必须先对函数进行声明 运行程序中 会涉及到被调用函数的执行 所以凡是被调用的函数都必须有函数定义 不管该定义在程序的什么位置 如 doublesphere 声明intmain doubleresult sphere 调用cout r returnr r 3 14 22 01 55 6 条件语句 ConditionStatements if语句的两种形态 语句1 条件 语句1 条件 语句2 是 是 否 否 22 01 55 7 对应语句 if a b cout a endl if a b cout a endl elsecout b endl 22 01 55 8 错综复杂时 必须注意两义性 if x 0 if x 50 cout xisok n elsecout xisnotok n 正解 else从属于紧挨的ifif x 0 if x 50 cout OK n elsecout NOTOK n 误解 else从属于外面的ifif x 0 if x 50 cout OK n elsecout NOTOK n 22 01 55 9 条件表达式 对于if x a 327981 elseb 327981 可表示为 x a 327981 b 327981 如果a和b为同类型 则还可以 x a b 327981 22 01 55 10 switch多分支语句 switch 整数表达式 casevalue1 语句1 break casevalue2 语句2 break default 语句n 等价于 if 整数表达式 value1 语句1 elseif 整数表达式 value2 语句2 else语句n 22 01 55 11 虽然switch有等价的复合if表示 而且 分支判断值只能是整数 显得应用范围狭窄 但是switch在使用上的直观和灵活形式 使得其仍具有编程价值 如 break可选 甚至case可以重叠 casevalue1 语句1 casevalue2 语句2 casev1 casev2 casev3 语句 22 01 55 12 3 循环语句 LoopStatements for循环结构 22 01 55 13 对应语句为 for inti 1 i 10 i cout hello n 循环初始状态 条件判断 状态修正 循环体 22 01 55 14 每次循环体执行 都改变循环状态 直到条件不满足而终止 如 设置求和的初始值 交给循环计算 完成循环后 输出求和结果 intsum 0 for inti 1 i 100 i sum sum i cout sum endl 循环开始 循环结束 22 01 55 15 因为并不是所有循环都有明显的循环初始状态和状态修正的 所以 while循环是一种for循环的简洁形式 如 同样的求和 intsum 0 i 1 while i 100 sum i cout sum endl 循环开始 循环结束 22 01 55 16 4 循环设计 LoopDesigns 1 简单字符图形的双重循环MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 22 01 55 17 分析方法 该图形一共10行 每一行增加一个字符 所以 应循环10次 每次输出一行 其循环模式为 for inti 1 i 10 i 输出第i行 循环 换行 行iM个数111222333444 101010 22 01 55 18 for inti 1 i 10 i for intj 1 j i j cout M cout endl 22 01 55 19 2 判断素数 利用数学定律 m i j假定i j 则i2 i j m j2即i2 m j2即i m jboolisPrime intm doublesqm sqrt m 1 0 for inti 2 i sqm i if m i 0 returnfalse returntrue 22 01 55 20 5 输入输出语句 Input OutputStatements 标准输出流 可以控制输出格式cout3 3 0falsecout fixed 12345 678 12345 678000cout scientific 123456 678 1 234568e 05 22 01 55 21 控制宽度和填充字符的操作是带参数的 注意width n 为一次性操作 即第二次显示时将不再有效 默认为width 0 表示仅显示数值 例如 cout width 5 cout fill S cout cout setw 6 setfill 27 endl 输出 27 22 01 55 22 文件流的输入出操作与标准输入出基本相同 只是需要以一定方式打开和关闭如 将文件a in打开 逐行读入字符 输出到文件a out ifstreamin a in ofstreamout a out for strings getline in s out s endl 其中文件流读入操作总是伴随着状态返回 判断状态就可以确定文件是否正常读入 如getline in s 当读到文件尾时 便返回false 以使循环结束 22 01 55 23 转移语句 MoveStatements break除了用在switch之外 主要的是用在终结本次循环for inti for if i 1 break a 1 break跳到此处 22 01 55 24 continue一般是用条件判断执行的 通过反条件 可以免去continue的使用 所以 它用来构筑良好的程序风格for intn 100 n 200 n if n 3 0 continue cout n endl 免去continue的情形 for intn 100 n 200 n if n 3 0 cout n endl 22 01 55 25 goto的程序段除了系统跟踪和架构困难外 阅读也相对复杂 inta gotoInit Forward a a 1 Print cout a endl gotoDown Init a 1 gotoPrint Down if a 100 gotoForward 等价于 for inti 1 i 100 i cout i n 22 01 55 26 break语句的可取之处 用break语句的代码段boolflag false 用于做退出记号for inti 1 i 100 i for intj 1 j 100 j if i j 651 flag true break else if flag break goto语句的代码段for inti 1 i 100 i for intj 1 j 100 j if i j 651 gotoEnd End 22 01 55 27 7 再做循环设计 MoreLoopDesigns 逻辑判断类的语句控制结构 for 所有可能情况 可为多重循环if 条件1不满足 continue if 条件2不满足 continue if 条件n不满足 continue 输出所要的结果 22 01 55 28 百鸡问题的例子 for intc 1 c 13 c for inth 1 h 18 h for ints 1 s 96 s if 7 c 5 h s 3 100 continue if c h s 100 continue if s 3 continue cout Cock c Hens h Chicks 100 c h endl 22 01 55 29 级数逼近问题前后项之差与0的邻域 精度要求 的

温馨提示

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

评论

0/150

提交评论