面向对象程序设计课程辅导(二(编辑修改稿)内容摘要:
行为一条 for循环语句,其循环体是一条复合语句,将被重复执行 6次,对应控制循环的变量 i的取值依次为 0,1,2,3,4和 5,每次循环首先从键盘缓冲区读入一个常数并赋给 x,接着计算出 y的值,然后按一定格式输出 x和 y的值。 若程序运行后,从键盘上输入的 6个常数为 2,5,10,,则得到的输出结果为: 从键盘上同一行输入 6 个常数 :2 5 10 x= 2 y= 17 x= 5 y= 95 x= 10 y= 385 x= y= 10 x= y= x= y= (2) include void main() { int i,n。 double p=1。 cout输入一个正整数,求其阶乘 :。 cinn。 for(i=1。 i=n。 i++) p*=i。 coutn!=pendl。 } 在这个程序中定义了三个变量,用 i作为控制循环的变量,简称循环变量,用 n保存从键盘输入的一个正整数,用 p计算和保存 n的阶乘值, p的初值为 1,每次进行循环计算时都使 p累乘循环变量 i的值,循环结束后 p的值就是 n的阶乘值。 假定程序运行时输入的 n值为 10,则运行结果为: 输入一个正整数,求其阶乘 :10 10!=+006 (3) include include void main() { int n,x,max,min。 cout输入待处理数据的个数:。 cinn。 if(n=0) {coutn=0!endl。 exit(1)。 } cout输入 n个待处理的数据 :。 cinx。 max=min=x。 for(。 n。 ) { cinx。 if(xmax) max=x。 if(xmin) min=x。 } coutmax:maxendl。 coutmin:minendl。 } 在程序的主函数中,第一行同时定义了四个整型变量 n,x,max和 min,用它们分别保存待处理数据的个数、当前被处理的一个数据、已处理数据中的最大值和已处理数据中的最小值。 第二行和第三行用来从键盘上给 n输入一个整数。 第四行用来处理数据个数 n小于等于0的不正常情况。 第五行给出请用户输入 n的数据的提示信息。 第六行用来从键盘缓冲区读入第一个被处理数据并用它作为 max和 min这两个变量的初值。 第 7至 11行为一个 for循环,循环体共需执行 n1次,每次首先从键盘缓冲区读入一个数据到 x中, 接着分别同当前最大值 max和当前最小值 min相比较,若 x较大则用它修改 max的值,若 x较小则用它修改 11 min 的值,使 max 和 min 始终保持已处理数据中的最大值和最小值,当此循环结束后, max和 min中就分别存有 n个数据中的最大值和最小值。 最后两行语句输出所求得的最大值和最小值。 假定需处理 6个数据,这 6个数据为: 48, 62, 30, 24, 55, 36,则程序运行结果为: 输入待处理数据的个数: 6 输入 6 个待处理的数据 :48 62 30 24 55 36 max:62 min:24 (4) include void main() { for(int a=0,b=1。 b100。 ) { couta39。 39。 b39。 39。 a=a+b。 b=a+b。 } coutendl。 couta39。 39。 b39。 39。 endl。 } 该程序的主函数中包含有一个 for循环, 表达式 1分别给变量 a赋初值为 0和给变量b 赋初值为 1,由于这两个变量在此之前没有被定义,所以在此使用时必须定义, 表达式2是一个关系表达式 b100, 表达式 3被省略,循环体中首先输出 a和 b 的值,接着根据a和 b的当前值求出 a的新值,再利用 a和 b的当前值求出 b的新值,然后判断 b100是否成立,若是则执行下一次循环,否则结束循环,转去执行后面的输出语句。 该程序的运行结果为: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 该程序的功能是输出一个数列的前若干项,其中第一项为 0,第二项为 1,以后每一项等于其前两项之和。 如第 10项为 34,它等于第 8项 13和第 9项 34 之和。 (5) include const int M=4, N=5。 void main() { int i,j,s=0。 for(i=1。 i=M。 i++) for(j=1。 j=N。 j++) s+=i*j。 coutsendl。 } 主函数中使用了一个双重 for循环,外循环变量 i 初值为 1,终值为整数常量 M,每执行一次外循环体(即内循环)后其值增加 1,内循环变量初值为 1,终值为整数常量 N,每执行一次内循环体(即 s+=i*j。 语句)后其值也增加 1,内循环体共需执行 MN次。 该程序 12 的功能是计算 MiNj ji1 1 )*(的值。 程序运行结果为 150。 6. 应用举例 例 1. 编一程序计算 1+22+42+62+ +502的值。 分析:此题所给的计算公式是一个和式,它除第一项外,其余项为从 2至 50 的每一个偶数的平方,因此可采用循环累加的方法来计算,即依次把每个数据项(在此为偶数的平方)累加到一个变量中。 设循环变量为 i,它的初值、终值和步长(即每次循环后循环变量的增加值)应分别为 50 和 2,设用于累加的变量为 s,它的初值应为和式中的第一项 1,因为它不能够通过有规律的循环累加到 s上。 在循环体中通过赋值语句每次把 i的平方值累加到 s上,当循环结束后, s的值就是所求的结果。 根 据分析编写出程序如下: include void main() { int i,s=1。 for(i=2。 i=50。 i+=2) s+=i*i。 couts=sendl。 } 例 2. 编一程序计算 101 221)1(ii ix 的值,其中 x值由键盘输入。 分析:此题是一个累加求和问题,适合使用 for循环来实现。 设循环变量为 和式中的 i,它从 1取值到 10,每次增长 1,每次计算出一个数据项并把它累加起来。 为了计算一个数据项中的 xi和 i!,还需要设定两个累乘变量,假定分别用 p1和 p2表示,它们的初值应均为1,在循环体中需要分别向 p1和 p2累乘 x和 i的值。 为了把每个数据项的值累加起来,需要设定一个累加变量,假定用 s 表示,它的初值为 0,每次向它累加 (1)i+1p1/p2 的值。 当和式中的所有 10 个数据项都累加到 s之后, s 的值就是所求的结果。 根据分析编写出程序如下: include void main() { double x,p1=1,p2=1,s=0。 int i,j=1。 cout输入 x的值 :。 cinx。 for(i=1。 i=10。 i++) { p1*=x。 //p1的值为 xi p2*=i。 //p2的值为 i! s+=j*p1/p2。 //j的值为 (1)i+1 j=j。 //j取反,为下一数据项计算做准备 } coutsendl。 } 13 例 3. 已知 y1=121 aex , y2=121 aex ,其中 x从 0开始取值,每次增加的步长为 ,直到 3, a的值由键盘输入,并要求大于 0,编一程序依次求出 x 每一取值所对应的 y1和 y2的值。 分析:设 i为循环变量,让它的初值、终值和步长分别为 0,12 和 1,则 x 的每次取值可表示为。 在循环体中计算 y1和 y2的公式应分别表示为: y1=(1+exp(x))/(sqrt(2*a)+1) y2=(1+exp(x))/(sqrt(2*a)1) 每次根据 x的值(即 )求出对应的 y1和 y2后都要输出出来。 根据分析编写出程序程序如下: include include void main() { double x,a,y1,y2。 coutInput a(a0):。 cina。 //也可把 a设定为数值常量 for(int i=0。 i=12。 i++) { x=*i。 y1=(1+exp(x))/(sqrt(2*a)+1)。 y2=(1+exp(x))/(sqrt(2*a)1)。 coutsetw(10)xsetw(10)y1setw(10)y2endl。 } } 例 4. 已知一组实验数据: ,,,,编一程序分别求出它们的平均值、方差和均方差,要求每一结果只保留两位小数。 分析:设它们的平均值、方差和均方差分别用变量 v,f和 t表示,由数学知识可知,相应的计算公式为: v= ni ixn 11 f= ni i vxn 1221 t= f 其中 n表示数据个数, xi表示第 i个数据。 此题需要首先求出 ni ix1和 ni ix12 ,然后才能够求出 v,f 和 t。 而求所有数之和以及求所有数平方之和需要采用循环累加的方法。 为此设循环变量为 i,它的初值、终值和步长应分别为 1,n 和 1,设输入变量为 x,每次从键盘缓冲区得到一个实验数据,设累加数据之和的变量为 s1,累加数据平方之和的变量为 s2。 每次分别向 s1和 s2累加 xi和 xi2的值。 根据以上分析编写出程序如下: include include const int n=10。 //n等于待处理数据的个数 void main() 14 { double x,s1,s2。 s1=s2=0。 cout从键盘上输入 n个实验数据 :。 for(int i=1。 i=n。 i++) { cinx。 s1+=x。 s2+=x*x。 } double v,f,t。 v=s1/n。 f=s2/nv*v。 t=sqrt(f)。 v=floor(v*100)/100。 f=floor(f*100)/100。 t=floor(t*100)/100。 coutv。面向对象程序设计课程辅导(二(编辑修改稿)
相关推荐
___ 中国电子进出口总公司 17 __________________________(甲方 )在 _______________________(项目名称 )项 目 中所 需 ___________________________( 货 物名 称 ) 经北 京 理工 大学 以__________号(项目编号)招标文件在国内进行公开招标。 经评标委员会评定,确定
折价销售、网上变相折价销售、网上赠品促销、网上抽奖促销、网上积分促销、网上众多商家联合促销是宝洁常用的其他促销手段。 4)广告营销A.主张情感销售B.只向消费者承诺一个利益点C.不用名人,重视“权威声明”D.持续采取直观的广告攻势其他机制①无缝对接 无缝对接强调的是两方面:一是公司各阶层人员以及经销商与公司高层之间的无缝交流。 二是顾客与宝洁公司之间有关产品消费意见的 无缝沟通。 为此
我保证本文件的真实性、合法性,并授权 代表本公司负责本项目资格预审方面的全部工作。 授权人签字 被授权人签字 单位公章: 日期: 2020 年 月 日 日期: 2020 年 月 日 附件 2:法人代表授权书格式 本授权书声明:注册于( 国家或地 区的名称 )的( 公司名称 )的在下面签字的( 法人代表姓名、职务 )代表本公司授权( 单位名称 )的在下面签字的( 被授权人的姓名、职务
除 c=4 行政人员兼职教师删除 c=5 c=6 退出删除 10 4. 系统调试 ,如下图所示: 图 主菜单 11 ,出现下图: 图 图 教师录入 图 实验员录入 12 图 行政人员录入 图 教师兼职实验员录入 图 行政人员兼职教师录入 13 ,出现下图: 图 信息查 询模块 图 按编号查询教师 图 按姓名查询教师 图 按编号查询实验员 图 按姓名查询实验员 14 图 按编号查询行政人员 图
的类的时候。 *将创建对象的职责委托给多个帮助 *类中的某一个,并且 *希望将哪一个帮助子类是代理者这一信息局部化的时候。 参与者 定义工厂方法所创建的对象的接口。 实现 Product 接口。 声明工厂方法,该方法返回一个 Product 类型的对象 * Creator 也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct 对象。 可以调用工厂方法以创建一个
OOD表示。 A. 面向对象分析 B. 面向对象设计 C. 面向对象语言 D. 面向对象方法 74. 在一个类的定义中,包含有 成员的定义。 A. 数据 B. 函数 C. 数据和函数 D. 数据或函数 75. 在关键字 public后面定义的成员为类的 成员。 A. 私有 B. 公有 C. 保护 D. 任何 76. 假定 AA为一个类, a为该类公有的数据成员, x为该类的一个对象,则访问