- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 选择及迭代
* 2. 用C++提供的while语句实现迭代算法 C++提供了专门用于循环的while语句。while语句的语法格式为: while (测试条件) 循环体 3.2 迭代 while语句的执行过程是:首先计算测试条件的值,如果其值为“真”(非0),表示满足循环条件,则执行循环体;如果其值为“假”(0),则结束循环.每执行完一次循环体后再次计算测试条件的值,如果其值为“真”(非0),则继续执行循环体;如果其值为“假”(0),则结束循环。右侧是while语句流程图。 * 【例3-13】根据表3-8给出的迭代算法,编写程序,用C++提供的while语句实现“计算2n”的问题。 int main() { int i,n,power; cout请输入幂次:endl; cinn; power=1; i=1; while (i=n) { power=power*2; i++; } cout2的n次幂为:powerendl; return 0; } 3.2 迭代 * 3.2.3 迭代与选择嵌套 在一个迭代算法中,重复处理的每一步是一个选择算法,这就构成了迭代和选择嵌套。使用C++的循环语句,在循环体采用选择语句来实现相应的迭代算法。 【例3-14】计算若干人的纳税额,当用户输入0时结束。 问题求解思路: 例3-2和例3-4已经给出实现计算工资总额应纳多少税的算法和C++实现程序。现在的问题是需要重复若干次这样的计算过程,直到用户输入的工资总额为0。因此,解决该问题的迭代算法如下表所示。 3.2 迭代 * 3.2 迭代 步骤 处 理 1 输入一个工资总额income的值 2 当income不等于0时重复下面的操作: 如果income0 并且 income=1500 tax=income*0.03; 如果income1500 并且 income=4500 tax=income*0.1-105; 如果income4500 并且 income=9000 tax=income*0.2-555; 如果income9000 并且 income=35000 tax=income*0.25-1055; 如果income35000 并且 income=55000 tax=income*0.3-2755; 如果income55000 并且 income=80000 tax=income*0.35-5055; 如果income80000 tax=income*0.45-13505; 输出tax的计算结果 输入下一个工资总额income * int main() { double income, tax; cout请输入工资总额(输入0结束程序):endl; cinincome; while (income!=0) { tax=0; income=income-3500; //计算应纳税所得额 if (income0 income=1500) tax=income*0.03; if (income1500 income=4500) tax=income*0.1-105; …… coutincome+3500元收入,应该上税:tax元endl; cout请输入下一个工资总额(输入0结束程序):endl; cinincome; //输入 } return 0; } * 3.2.4 迭代嵌套 在一个迭代算法,重复处理的每一步还是一个迭代算法,这就构成了迭代嵌套。使用C++的循环语句中再包含循环语句(通常被称为多重循环),来实现嵌套的迭代算法。 【例3-15】设计“计算21+22+23+…+2n”的问题的算法,并用C++程序实现该算法。 问题求解思路: 该问题是一个n项累加的问题,需要重复n次完成。其中,要累加的每一项也需要重复处理,即计算第i项的值时,也需要重复i次乘以2的操作。因此,构成了迭代嵌套的算法。解决该问题的嵌套迭代算法如下表所示。 3.2 迭代 * 3.2 迭代 步骤 处 理 1 输入2的最高幂次n 2 将各项的累加和清0 3 将i的范围设置为1到n,进行如下操作: 将存放第i项结果的power置为1 重复i次下面的操作: power=power×2 将power累加到sum中 4 输出结果 * int main() { int n, sum, power; cout请输入最高的最高幂次n: ; cinn; sum=0; for(int i=1; i=n; i++) // 外层循环计算各项的和
文档评论(0)