结构化程序设计基础和C语言的控制结构fbPPT课件_第1页
结构化程序设计基础和C语言的控制结构fbPPT课件_第2页
结构化程序设计基础和C语言的控制结构fbPPT课件_第3页
结构化程序设计基础和C语言的控制结构fbPPT课件_第4页
结构化程序设计基础和C语言的控制结构fbPPT课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

结构化程序设计基础和C语言的控制结构 C程序控制结构中的条件表示分支程序结构循环程序结构C语言的其他简单控制结构C语言控制结构应用举例 如何表示控制结构中的条件 对于控制结构中的条件如何判断成立与否 在C言中通常用关系运算和逻辑运算来实现对程序控制结构中条件的描述和处理 2 1C程序控制结构中的条件表示 结构化程序的表述 结构化程序概述顺序结构选择结构循环结构 2 1 1关系运算符和关系表达式 运算符 用于比较两个运算对象间的某种关系是否成立 优先级 如上图所示 且关系运算符的结合性为左结合 例如 c a b等价于c a b 表达式 用关系运算符将两个表达式连接起来的式子称为关系表达式 例如 a 1 b c a 3 b 5 a b 例2 1关系运算示例 表达式的值在C语言中没有逻辑数据类型 所以在进行关系运算时 用数值 1 或非0表示逻辑 真 用数值 0 表示逻辑 假 例如 5 5 结果为1 10 10 结果为1 5 5 结果为0 5 3 结果为1 3 5 结果为0 2 1 1关系运算符和关系表达式 2 1 2逻辑运算符和逻辑表达式 逻辑运算的作用用于组合和处理用逻辑表达式来描述的多个条件 以便确定程序的执行方向 逻辑运算符它是对关系表达式或者逻辑量进行的一种运算 共有3种 逻辑与 逻辑或 逻辑非 逻辑运算结果数值 1 表示逻辑 真 用数值 0 表示逻辑 假 判断一个数据对象的真假时 若数据对象为数值 0 则判定为假 若数据对象为数值非 0 则判定为真 2 1 2逻辑运算符和逻辑表达式 例如 设有定义inta 8 b 0 则 a b 结果为1 a b 结果为0 a 结果为0 b 结果为1 2 1 2逻辑运算符和逻辑表达式 两个逻辑对象a和b的逻辑运算真值表 逻辑表达式用逻辑运算符将算术表达式 关系表达式或逻辑量连接起来的式子称为逻辑表达式 例如 a b x y 2 1 2逻辑运算符和逻辑表达式 优先级 同时考虑关系运算符 非 高 算术运算符关系运算符 b x y 可写成 a b x y a b x y 可写成 a b x y a a b 可写成 a a b 求逻辑表达式值的过程 从左到右扫描求逻辑表达式的解 在求解过程中 只要逻辑表达式的值已经确定 求解过程将不再进行 例如有定义 inta 1 b 2 c 0 则逻辑表达式 a b c 计算值为 1其中 a 2 b 2 原值 c 0 原值 2 1 2逻辑运算符和逻辑表达式 例2 3关系表达式运算和逻辑表达式运算示例 例2 2逻辑表达式运算示例 在条件不变的情况下 逻辑表达式 a b c 相应计算结果为 1其中 a 2 b 3 c 0 原值 2 1 2逻辑运算符和逻辑表达式 2 2分支程序结构 分支结构可以解决的问题确定某件事情做与不做 确定在两件相关事情中选择哪一件来做 确定在若干件相关事情中选择哪一件来做 分支结构的概念用所给条件来控制 选择 程序应执行哪种操作 这种程序的结构叫做分支结构 也称为选择结构 在选择结构中需要对多种条件进行综合判断 2 2 1if语句与程序的单分支结构 单分支if语句的结构形式if expression sentence 其中 expression 条件表达式sentence 执行的语句 注意 if后面没有分号 sentenct后面有分号 只能有一条语句 if语句的执行过程 先计算条件表达式的值 再进行逻辑判断 若表达式的值为真 非0 则应先执行结构中的sentence语句 然后执行if结构的后续语句 若表达式的值为假 0 则跳过语句sentence部分语句 去执行if结构的后续语句 2 2 1if语句与程序的单分支结构 使用单分支结构的注意事项条件表达式通常由关系表达式或逻辑表达式构成 由于C99标准前没有逻辑量 故只要能求出0或非0值的表达式都可作条件表达式 if结构后的语句可为C语言的任何合法语句 如复合语句等 例2 4编程序实现功能 从键盘上输入一个整数 若该输入数据是奇数则将其输出 2 2 1if语句与程序的单分支结构 将例2 4中的单分支if语句改为下面的形式而程序的功能不变 if x 2 0 printf disoddnumber n x 2 2 1if语句与程序的单分支结构 2 2 2复合语句及其在程序中的使用 为满足在语法结构上只能有一条语句 而功能实现中又需要多条语句的要求 C语言支持复合语句的语句块 用以实现实现较复杂功能的描述 复合语句的形式复合语句是用一对花括号 将若干条C语句括起来形成的语句序列 其基本形式如下 sentence1 sentencei sentencen 注意 复合语句后不需要分号 结尾 若程序中有如下格式的语句格式的语句 实为复合语句后跟了一个空语句 语句序列 最后的分号是空语句 2 2 2复合语句及其在程序中的使用 例2 5从键盘上输入三角形的三边的边长 若它们能构成一个三角形 则输出其面积 分析 根据数学知识 若三直边a b c构成三角形 则必须满足条件 任意两边的之和大于第三边 a b c且a c b且b c a 计算三角形的面积的公式为 2 2 2复合语句及其在程序中的使用 若将上例中复合语句改为如下形式 if a b c则运行结果会相关甚远 2 2 2复合语句及其在程序中的使用 2 2 3if else语句与程序的双分支结构 双分支结构的形式 if expression sentence1 elsesentence2 注意 判断条件可以是能求出0或非0值的任意表达式 if结构或else结构后可为C中任意合法语句 含复合语句 语句的执行过程先判断表达式的值 若值为真 非0值 则执行语句1 然后执行if结构的后续语句 若值为假 0值 则执行语句2 然后执行if结构的后续语句 2 2 3if else语句与程序的双分支结构 例2 6求任意输入的3个整数中的最大数 2 2 3if else语句与程序的双分支结构 分析 先找出两个数中较大者 并放入max变量中 再找第3个数与max进行比较 从而得到最大值 2 2 4条件运算符与条件表达式 条件运行符的作用 C语言中 若if else语句结构中语句满足下列两个条件 无论条件表达式为何值 真或假 语句部分都只有一个简单的赋值语句 两条赋值语句都为同一变量赋值 则可使用C语言提供的条件运算符来代替这种if else结构 exp1 exp2 exp3 条件运算符的表达式 惟一的三目运算 条件表达式的执行过程 先计算表达式exp1值 若exp1值为非0 真 则将表达式exp2的值作为整个条件表达式的值 若exp1的值为0 假 则将表达式exp3的值作为整个条件表达式的值 2 2 4条件运算符与条件表达式 条件运算符的优先级高于赋值运算符 低于关系运算符和算术运算符 条件运算符的结合方向 为右结合 如 a b a c d c d 例2 7从键盘上输入一个英文字母 若其是大写字母则转换为小写字母输出 否则转换为大写字母输出 其中 ch A 2 2 4条件运算符与条件表达式 2 2 5if语句的嵌套与程序的多分支结构 if结构或者else结构的语句部分又属于另外一个if结构 不妨把这种语句的结构简称为if语句的嵌套 如 if exp1 if exp2 sentence1 elsesentence2 elseif exp3 sentence3 elsesentence4 例2 8公司按照销售人员收到的订单金额评定等级 订单总额超过一万为A等 5000 9999为B等 2500 4999为C等 2500以下为D等 编制程序对输入订单总额数判定等级 2 2 5if语句的嵌套与程序的多分支结构 所有if结构均被嵌套在else语句部分时 就形成了else if的多分支选择结构 它是if else的多重嵌套变形 其一般形式为 if exp1 sentence1 elseif exp2 sentence2 elseif exp3 sentence3 elseif expN sentenceN elsesentenceN 1 2 2 5if语句的嵌套与程序的多分支结构 多分支选择的执行过程 参见图2 6 执行时先从exp1开始判断 一旦某个表达式为真 就执行与之匹配的语句 然后退出整个选择结构 若所有条件均为假 则执行语句sentenceN 1后退出选择结构 当所有条件均为假且不需要任何操作时 sentenceN 1语句应缺省 在这种特殊的else if结构中 条件表达式是相互排斥的 2 2 5if语句的嵌套与程序的多分支结构 例2 9编写程序求如下所示多分支方程的解 程序中变量x的取值区间为 DBL MIN 1 1 10 10 DBL MAX 其中DBL MIN和DBL MAX分别表示双精度实型数据所能取得的最小值和最大值 2 2 5if语句的嵌套与程序的多分支结构 在包含了if语句嵌套结构的程序中 else子句与if的配对原则非常重要 按不同的方法配对可得到不同的程序结构 C规定 程序中的else子句应与它前面距离最近且尚未匹配的if配对 请看如下两个用于比较的程序段 2 2 5if语句的嵌套与程序的多分支结构 例2 10和例2 11描述了两种情况下程序的执行情况 其中 例2 10程序执行的结果为 a 1 b 10例2 11程序执行的结果为 a 1 b 11 例2 10else与if配对原则示例 例2 11else与if配对原则示例 使用复合语句改变程序结构 2 2 5if语句的嵌套与程序的多分支结构 通常使用switch结构来实现多分支选择结构的特殊情况 2 2 6switch语句与程序的多分支结构 2 2 6switch语句与程序的多分支结构 执行过程 首先 求条件表达式 expression 的值 其次 在花括号内从上至下查找所有的case分支 若找到与条件表达式值相匹配的case 可将其作为控制流程执行的入口 并从此处开始执行相应语句段 直到遇到break语句或者是switch语句结构的右花括号 为止 switch number case1 statement1 case2 statement2 case3 statement3 default statement4 statement5 2 2 2 6switch语句与程序的多分支结构 条件表达式expression的值必须有序 只能是整型 字符型 枚举型三者之一 语句段sentences可以是单条语句 也可以是多条语句 但这多条语句并不是复合语句 不需要使用花括号 语句段sentences中的语句可以是任意合法的C语句 结构中的常数值应与条件表达式的值相对应 且各常数的值不能相同 结构中break语句和default可根据需要选用 注意事项 2 2 6switch语句与程序的多分支结构 例2 12从键盘上输入一个字符 判断它是数字 空格还是其它键 若是数字 还要求显示出是哪一个数字 其中 包含了switch语句的嵌套 对于内嵌的switch结构处理方法与单层switch结构处理方法相同 注意 从内嵌switch结构中退出 遇到内嵌swithc结构中的break语句或结束内嵌switch语句体花括号 时 不会退出整个switch结构 例2 13swithc结构的嵌套示例 2 2 6switch语句与程序的多分支结构 if和switch的比较 多分支结构中 if语句结构的嵌套可以解决任何条件下的多分支问题 switch语句结构 选择条件是在某个范围内的离散值 描述为 与什么相匹配 就做什么 总之 在实际的程序设计过程中 能用switch结构解决的问题 也可用if语句结构的嵌套来解决 但用if语句结构嵌套能解决的问题 不一定用switch结构能解决 2 2 6switch语句与程序的多分支结构 2 3循环程序结构 循环结构是构成各种复杂程序的基本单元 3种基本结构之一 程序设计中 被重复执行的一组语句称之为循环体 每执行完一次循环后都必须按给定条件进行判断 以决定循环是否继续 判定是否循环的条件称之为循环条件 这种由循环体和循环条件构成的程序结构就称为循环结构 C语言提供了三种用以实现循环结构的语句 while语句 do while语句 for语句 2 3 1while型循环结构 while型循环控制结构 while exp Loop Body 执行过程 先计算判断条件表达式exp的值 若表达式的值非0 真 则执行一次循环体Loop Body 然后再一次计算条件表达式exp的值 若计算结果仍为非0 真 再执行循环体 重复上述过程 直到条件表达式值为0 假 时 退出循环 控制流程转到该循环结构之后的语句 注意事项 由于执行循环体的过程是先判断 后执行 故循环体有可能一次都不执行 在循环结构控制部分中 若表示条件的表达式是一个非0值 则会构成死循环 例如 while 1 Loop BodyC程序设计中 如果不是有意造成死循环 则在while循环结构的循环体内必须有能够改变循环控制条件的语句存在 循环结构的循环体可以是一条语句 一个复合语句 空语句等任意合法语句 2 3 1while型循环结构 例2 14使用while循环控制结构求的值 2 3 1while型循环结构 分析 流程见右图 在上例中 循环变量n从初值1开始 在循环结构的执行中通过语句 n 可修改n的值 使其逐渐趋于100 其循环体由两条C语句组成 需用复合语句构成 当然也可用语句组合使得循环体由一条 语句构成 如 while n 100 sum i 程序中还需注意变量sum的初值 由于变量sum用于存放和数 故初值必须从某一固定值开始 一般意义下 用于存放和数 计数等目的变量初始均应置0 2 3 1while型循环结构 2 3 2do while型循环结构 do while控制结构的形式 do Loop Body while exp 执行过程 先执行一次循环体Loop Body 然后计算判断条件exp的值并判断 若值为非0 真 再执行一次循环体 执行完后再计算表达式exp的值 若计算结果仍为非0 真 继续执行循环体 重复上述过程 直到条件表达式值为0 假 后退出循环 控制流程转到该循环结构之后的语句 2 3 2do while型循环结构 注意事项 由于是先执行 后判断 故循环体至少被执行一次 在循环结构的控制部分中 若条件表达式为非0值常量表达式 则会构成死循环 如 do Loop Body while 1 若不是有意造成死循环 在循环体内应有改变循环变量的语句 循环体中可为任意合法C语句 2 3 2do while型循环结构 例2 15使用do while循环控制结构求的值 例2 16编程序实现功能 将一个整数的各位数字颠倒后输出 分析 流程图见右 2 3 3for型循环结构 for循环是C语言中使用最灵活 应用最广泛的基本结构 它不仅适用于循环次数确定的情况 还能用于循环次数不确定但具有结束循环的条件 for循环结构的一般形式为 for exp1 exp2 exp3 Loop Body 其中 括号内的三个表达式为循环控制表达式 常用exp1为循环变量或其他数据对象赋初值 用exp2作为控制循环执行的条件 用exp3修改循环变量值 三个表达式之间用分号分隔 2 3 3for型循环结构 for循环的执行过程 先计算exp1的值 初始化循环控制变量 或循环体中其他数据对象 其次 计算循环控制条件exp2的值 当结果为真 非0 时 执行循环体Loop Body 再计算exp3的值用以修改循环变量 再次计算exp2的值以确定是否继续执行循环体 重复上述过程直到exp2的值为0 假 时止 2 3 3for型循环结构 注意事项 因执行过程是先判断 后执行 故循环体可能一次都未执行 该结构不仅可用exp3来修改循环变量 还允许用循环体中的语句来修改循环变量值 循环体可为任意合法的C语句 根据程序功能需要 三个表达式分别可用逗号表达式 循环控制部分的三个表达式中可以缺省一个 两个 三个 但不能省略作为分隔符的分号 2 3 3for型循环结构 例2 18编程序实现功能 判断从键盘输入一个大于2的正整数是否为素数 分析 素数就是只能被1和自身整除的自然数 判断一个正整数m是否为素数的最简方法是 用2到m 1间的每个整数去除m 若有一个能整除m 则m不是素数 所有整数都不能整除m 则为素数 例2 17使用for循环控制结构求的值 2 3 4空语句及其在程序中的使用 在C语言中 由分号构成的空语句是不进行任何操作的 当语法上需有一个语句存在但又不进行操作时 就可用它来占位 如 while getchar n 其中 当循环条件为真 接收字符不是换行符 时 不执行任何操作 执行空语句后 并进入下一次循环过程 该段程序通过这样的方式实现 反复从键盘上接收输入字符直至换行为止 的语义 例2 19编写程序实现求阶乘的功能 要求循环体用空语句实现 2 3 5循环的嵌套 一个循环体内又包含另外一个循环结构 就称该结构为循环的嵌套 若循环体内具有多层嵌套 就称它为多重循环 在C中可按需要实现do while while for三种循环语句的互相嵌套 下面是一些常见的嵌套结构 2 3 5循环的嵌套 2 3 5循环的嵌套 多重循环结构的注意事项 三种循环结构可相互嵌套 外层循环和内层循环的循环控制变量通常不同名 例2 20编程序输出由字符构成的图形 如右所示 ABACBACDBAEDCBA 分析 用循环变量i控制输出行 0 5 用循环变量j控制每行字符的输出个数 0 5 j是内嵌于i的双重循环 第i行需输出5 i个前导空格 j 5 i i个大写字母 其字母的值 A i j 2 3 5循环的嵌套 例2 21编程序在屏幕上打印出如下所示的乘法九九表 12345678911224336944812165510152025661218243036771421283542498816243240485664991827364554637281 2 4C语言中其它简单控制结构 2 4 1break语句 break语句是一条限定转移语句 其一般形式为 break break语句的使用范围只能在下面两种程序结构之一 switch语句结构中 循环控制结构中 break语句的功能 把程序的控制流程从直接包含该break语句的循环控制结构或switch语句结构中转出 2 4 1break语句 在C程序中 break语句总是出现在if语句部分 其形式为 if exp break 例如 for i 1 i9 break 上例中可用break语句提前结束for循环 使之完成1 10而不是1 100的循环 2 4 1break语句 2 4 1break语句 例2 22编制程序实现功能 从键盘输入两个正整数 a 2 和b 求a与b之间的全部素数 分析 需要判定数n是否为素数时 可以用2到sqrt n 之间的所有整数去除n 若其中任意一次能够除尽 则说明n不是素数 否则n是素数 2 4 1break语句 例2 23编程需实现功能 求调和级数中至多少项后的和值大于10 分析 调和级数的第n项形式为 continue语句总是出现在if结构的语句部分 其形式为 if expression continue 表2 3中分别给出的是while for和do while三种循环结构循环体中包含的continue语句执行时控制流程的转向情况 2 4 2continue语句 功能 提前结束本次循环体的执行过程而直接进入下一次循环 注意 continue语句只能使用在循环结构的循环体中 2 4 2continue语句 2 4 2continue语句 例2 24编程序实现功能 检测从键盘上输入的以换行符结束的字符流 统计非字母字符的个数 分析 通过循环依次检查输入字符 若为字母且不是换行符时 使用continue提前结束本轮循环 若输入不是字母和换行符时 因条件c A c a c z 不成立 由于未执行continue语句 故执行counter 操作 只有输入换行符时 循环结束并输出变量counter的值 程序某次执行和输出结果如下 Inputastring skjdf4623784908 SDFsdfkCounter 18 2 4 3goto语句和标号语句 goto语句是无条件转移语句 其一般形式为 goto语句标号 其中 标号语句用标识符加冒号组成 标识符由字母 数字和下划线组成 且第一个字符必须是字母或下划线 goto语句的功能 将程序的控制流程无条件地转移到语句标号所指的标号语句处 注意 goto语句的使用范围局限于函数内部 不允许在一个函数中使用goto语句将程序控制转移到本函数之外 在 中 虽用goto和if语句可构成循环 但不提倡 例如 includevoidmain intj 1 sum 0 loop if j 100 sum j j gotoloop printf d n sum 因结构化程序设计中 goto语句是一条不常用的语句 2 4 3goto语句和标号语句 2 4 3goto语句和标号语句 在不影响程序的清晰性的原则下 goto语句常用来直接退出多重循环结构 从而简化程序设计 例如 for for for if disaster gotoerror error 2 5C语言控制结构应用举例 本章前 节较为详细地讨论了结构化程序设计的基本技术和C语言提供的三种基本程序组成结构 使用这 种基本结构可以构成许多较为复杂的程序 解决常见的程序设计问题 本小节就程序设计中常见的求最大公约数和最小公倍数问题 穷举方法的程序实现问题和迭代方法的程序实现问题等几个程序设计中典型问题解决过程讨论程序设计的基本方法 分析 求两个非负整数m和n m n 的最大公倍数可用辗转相除法 算法为 用m除以n得余数r 0 r n 若r 0则算法结束 n为最大公约数 否则执行步骤 m n n r 转回到步骤 当已知两个非负整数m和n的最大公约数后 求其最小公倍数的算法可以简单描述为 两个正整数之积除以它们的最大公约数 2 5 1最大公约数和最小公倍数 例2 25求两个正整数的最大公约数和最小公倍数 2 5 2穷举思想及程序实现 例2 26编程序找出所有的 水仙花数 水仙花数 是指一个3位数 其各位上数字的立方之和等于这个数本身 例如 153 13 53 33 所以153是 水仙花数 分析 用分离数据法解 依题意可能值范围为100 999 判定方法为各位数字的立方和等于被判定数 用穷举法依次取出 100 999 间的每个数 然后将其分解为3个数字 按条件进行判定 设数为num 则各位应表示为 首位a num 100 中间位b num 10 10 末位c num 10 2 5 2穷举思想及程序实现 实现穷举法的基本要点 搜寻可能值的范围如何确定 被搜寻可能值的判定方法 对于被搜索的可能值 一般都是问题中所要查找的对象或是被查找对象应满足的条件 因而在问题中都会有清晰的描述 但对于搜寻范围 在有些问题中是比较确定的 而在另外一些问题则是不确定的 2 5 2穷举思想及程序实现 法二 用组合数据法解 若a b和c分别表示该3位数的百 十 个位 则可以表示为 a 100 b 10 c其中a的变化范围为 1 9 b c的变化范围为 0 9 依次用a b和c可组合出所有3位数 用以进行判断 例2 26b编程序找出所有的 水仙花数 解法2 2 5 2穷举思想及程序实现 例2 27搬砖问题 36块砖 36人搬 男搬4 女搬3 两个小孩抬1砖 要求将所有的砖一次搬完 问需要男 女 小孩各多少 分析 设男 女 小孩的数量分别为man woman child 依题意可以得出被搜寻值的判定方法 判定方法表示为 4 man 3 woman 0 5 child 36对于搜寻范围可按常识简单划分 man woman child都为整数 且男人数量少于9人 36 4 女人数量小于12人 36 3 小孩数量可用算式确定 child 36 man woman child 2 0 由此可以简单地确定搜寻范围表示如下 man 1 8 woman 1 11 child 36 man woman child 2 0 2 5 2穷举思想及程序实现 在程序中 可用表达式 4 man 3 woman child 2 0 36来保证小孩为偶数 因为表达式 4 man 3 woman child 2 0 的值定是实数 比较运算时将右边的36自动转换为实数 36 0 进行比较 若结果为真表示左边的小数0 以保证小孩为偶数 程序执行的输出结果为 man 3woman 3child 30 2 5 2穷举思想及程序实现 例2 28爱因斯坦阶梯问题 设有一阶梯 每步跨2阶 最后余1阶 每步跨3阶 最后余2阶 每步跨5阶 最后余4阶 每步跨6阶 最后余5阶 只有每步跨7阶时 正好到阶梯顶 问共有多少步阶梯 分析 设变量ladder为阶梯数 依题意应搜寻满足条件的最小阶梯数 虽然搜寻范围不能用某种形式表示 但应在第一次求出满足条件的阶梯数时停止搜寻 其判断条件为 ladder 2 1 ladder 3 2 ladder 5 4 ladder 6 5和ladder 7 0同时成立 2 5 2穷举思想及程序实现 搜寻时 阶梯数应从0开始 只要条件adder 2 1 ladder 3 2 ladder 5 4 ladder 6 5和ladder 7 0中有一个不成立 则阶梯数增值 然后再判断 请读者自行分析程序中条件的书写方法 直到找到答案为止 程序的运行结果为 flightofstairsis 119 注意 程序虽然能够实现题设的功能 但效率不高 程序中并没有充分利用所给出条件 请关注以下两点 2 5 2穷举思想及程序实现 每步跨7阶正好到阶梯顶 说明阶梯数应是7的倍数 故ladder的初值可从7开始 每次递增7才使阶梯数是7的倍数 同时在循环控制条件中去掉相应条件 ladder 7 0 每步跨2阶最后余1阶 说明阶梯数应该是奇数 故ladder的初值可从7开始 每次递增14使得阶梯数既是7的倍数又是一个奇数 同时去掉相应条件ladder 2 1 最后程序可以修改为 例2 28b 所示 例2 28b爱因斯坦阶梯问题 解法2 2 5 3迭代思想及程序实现 迭代就是一个不断地由变量的旧值按照一定的规律推出变量的新值的过程 迭代亦称为递推 迭代一般与三个因素有关 它们是 初始值迭代公式迭代结束条件 迭代次数 2 5 3迭代思想及程序实现 分析 设f1 f2和f3为相邻3个裴波那契数据项 据题意有f1 f2的初始值为1 迭代初始条件为 f1 f2 1 迭代公式为 f3 f1 f2 为了反复使用迭代公式 可在求出每个数据项后将f1 f2和f3顺次向后移动一项 即将f2的值赋给f1 f3的值赋给f2 从而构成如下迭代语句序列 f3 f1 f2 f1 f2 f2 f3 反复使用该语句序列就能求出所有裴波那契数列 例2 29裴波那契 Fibonacci

温馨提示

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

评论

0/150

提交评论