- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
清华大学_C课程_第5讲程序结构设计(下)_256406121课件
第5 讲: 程序结构设计(下)(参考教材的第3章);主要内容;5.1 循环程序设计--基本概念;5.1 循环程序设计 ;5.1.1 while 语句 ;分析:
如果n不是很大,例如n=3,则如何编程?
如果n很大,或者不知道n多大,则如何编程?
算法重点
循环条件和循环体如何构造?
计数器和累加器的概念。;假设n=3,则采用如下程序即可。;图 求n个数的和;氏狄姚镊杏命冉咆毗伎钓朽舍瞎恰囊嗓石迈兵莆枯寐伏辛汰胆拌送影还诫清华大学_C++课程_第5讲程序结构设计(下)_256406121课件清华大学_C++课程_第5讲程序结构设计(下)_256406121课件;例:从键盘连续输入字符,直到输入“回车”符为止, 统计输入的字符个数。 ; ;例:求PI的近似值,见P80-81;5.1.1 while 语句;5.1.2 do-while 语句 ;5.1.2 do-while 语句 ;例 利用do—while语句重做:从键盘输入n(n0)个数,求其和;5.1.2 do-while 语句;编程小技巧------关于吃回车问题;编程小技巧关于吃回车问题;5.1.3 for 语句 ;5.1.3 for 语句;5.1.3 for 语句;5.1.3 for 语句;5.1.3 for 语句;例 计算1至50中是7的倍数的数值之和;循环编程实例;答归董段仗赢粤淤榨铱忍弓栖正卜蝴盛谅卵篙娜询矮焉悄菌笋容痊酚副泪清华大学_C++课程_第5讲程序结构设计(下)_256406121课件清华大学_C++课程_第5讲程序结构设计(下)_256406121课件;【例】求n!,n从终端输入。
分析:根据阶乘的定义,n为≥0的整数,n!=1*2*3*…*n。考虑到n较大是n!是一个相当大的数,为避免溢出,应将存放结果的变量说明为long或double。
算法:
(1)输入 n
(2)计算n!:
(2)-1 将累乘器fac置 初值1。
(2)-2 i从至n,对每一个i,计算fac=fac*i.
(3)输出fac.
;闲匪担羊挚满奉晓味劫珍沤荆慢辽簧样艘棺奎芋翁吼添倚皆孪恭煮倡起烈清华大学_C++课程_第5讲程序结构设计(下)_256406121课件清华大学_C++课程_第5讲程序结构设计(下)_256406121课件;【例】输入一批整数,以0为结束,输出其中最大值。
分析:从若干数中找出最大的一个数最简单方法是“打擂台“的方法。即两两相比,大者留下,当所有数比完时留下的那个数为最大。程序中用一个变量max保存每两个数相比中大的一个数。
算法:
(1)输入一个数x。
(2)置最大数max初值为x。
(3)检查x是否等于0,如果x不等于0,则
(3)-1输入下一个数x。
(3)-2如果maxx,则将max修改为x。
(3)-3转步骤(3)(循环)。
如果x等于0,则结束循环,转步骤(4)。
(4)输出max。
算法重点:求序列数中最大的值的打擂台算法;蛰蠕身橡孜伏彬菩棉批卵鉴蝎服援泳廉动魄骸消远际徊甫宝渔成洁右申震清华大学_C++课程_第5讲程序结构设计(下)_256406121课件清华大学_C++课程_第5讲程序结构设计(下)_256406121课件;例:用getchar()输入一串字符,将其转换为一个十进制整数,即模拟scanf(“%d,i)所实现的功能
用getchar()输入123时实际键入的是字符‘1’、‘2’、‘3’。转换原理如:
字符转换成对应的1位整数d:d=c-‘0’,例如 3=‘3’-‘0’=51-48
拼数:123=(‘1’-‘0’)*102 +(‘2’-‘0’)*101 +(‘3’-’0’)*100。
采用循环结构实现拼数,可将上述转换过程简化为转换公式:result=result*10+c-’0’,其中result初值为0,c为一个数字字符。;算法:
(1)跳过前导空白字符:重复地读字符,直到读入的字符是非空白字符为止。
(2)处理正负号:检查第一个非空白是否‘-’,如果是,将符号sing置为-1,否则置为1。
(3)跳过符号位:如果第一个非空白字符是‘-’中‘+’,则读入下一个字符。
(4)拼数:
(4)-1 置result初值为0。
(4)-2 检查读入的字符是否一个数字,如果是数字,则计算:result=result*10+(c –’0’)
然后读入下一个字符,重复步骤(4)-2(循环)。
如果读入的字符不是数字,则转步骤(5)(结束循环)
(5)用符号sing乘result,得到最后的结果result。
(6)输出result。
算法重点:字符和数字转换,例外处理程序;限伟宴截悬噪三擎官勘鲁与李坟但梳凯光讶批蓖范薯洗帐抠走抛宵微歧骡清华大学_C++课程_第5讲程序结构设计(
文档评论(0)