2022年面向对象程序设计课程辅导二 .docx
精品_精品资料_面对对象程序设计课程辅导 二- 流程掌握语句徐孝凯流程掌握语句用来掌握程序的执行流程,它包括挑选、循环和跳转三类语句.挑选类语句包括if语句和 switch语句两种,用它们来解决实际应用中按不怜悯形进行不同处理的问题.如当调整职工工资时,应按不同的级别增长不同的工资.高校生交纳学费时,应按不同的专业交纳不同的学费.循环类语句包括 for循环语句、 while循环语句和do 循环语句三种,用它们来解决实际应用中需要重复处理的问题.如当统计全体职工工资总和时,就需要重复的做加法,依次把每个人的工资累加起来.当从一批数据中查找具有最大值的一个数据时,需要重复的做两个数的比较运算,每次把上一次比较得到的大者同一个新(即未比较)的数据比较, 当同最终一个新的数据比较后得到的大者就是全部数据中的最大值.跳转类语句包括 goto 语句、 continue 语句、 break 语句和 return 语句四种,用它们来转变次序向下执行的正常次序,而转向隐含或显式给出的语句位置,接着从今位置起向下执行.如当从一批数据中查找一个与给定值相等的数据时,最简洁的方法是从前向后使每一个数据依次同给定值进行比较,如不等就连续向下比较,如相等就说明查找胜利,应终止比较过程,此时就需要使用跳转语句转移到其他的方执行.这一章将依次介绍每一种流程掌握语句的语法格式、执行过程和应用举例等内容.一、 if 语句1. 语句格式if语句又称条件语句,其语句格式为:if< 表达式 > < 语句 1>else < 语句 2>if语句是一种结构性语句,由于它又包含有语句,即<语句 1>和可挑选的 <语句 2>,这两条语句称为 if语句的子句.在 if语句格式中,其后的保留字else和<语句 2>是任选项,带与不带都是答应的.if语句中的每个子句可以是任何可执行语句或空语句,可执行语句包括表达式语句、复合语句、以及任一种流程掌握语句等.2. 语句执行过程if语句的执行过程为:(1) 求<表达式 >的值,如它的值非0,就说明 <表达式 >(又称为条件)为真或成立,否就认为条件为假或不成立.(2) 当条件为真就执行<语句 1>,为假就执行 <语句 2>,但如 else部分被省略,就不会执行任何操作.执行 if语句的过程可用图1-1 描述,其中菱形框表示判定,矩形框表示处理,带箭头的连线表示执行走向.图1-1a和b 分别表示省略和带有else部分的详细执行流程.可编辑资料 - - - 欢迎下载精品_精品资料_图 1-1 if语句执行流程示意图3. 语句格式举例1 ifx.=-1 c+.(2) ifx<=a s1+=x. else s2+=x.(3) iffabsx<=1 y=1+expx.else y=1+2*x.(4) ifgrade>=60 && grade<=100 cout<<”pass ”<<endl .(5) ifgrade<0 | grade>100 cout<<”Score error.”<<endl .(6) ifp && a>b cout<<”a>b”<<endl .else cout<<”a<=b”<<endl .(7) ifx*x+y*y=z*z c+. w=x+y+z .(8) ifx y=3*x-1. z=sqrtfabsx+2. else y=6. z=y*powy,4-3. 在以上列举的语句中,作为判定条件的表达式有的为单个变量,有的为关系表达式,有的为规律表达式,作为子句的语句1 或语句 2 有的为简洁语句,有的为复合语句.每条语句的执行过程一目了然,如执行第一条语句时,如x 不等于 -1成立,就执行 c+操作,否就不执行任何操作.执行其次条语句时,如x 小于等于 a 成立,就执行 s1+=x 操作,否就执行 s2+=x 操作.执行第八条语句时,如x 不为 0,就执行格式中 <语句 1>所对应的复合语句,否就执行 <语句 2>所对应的复合语句.4. 语句嵌套if 语句中的任何一个子句可以为任何可执行语句,当然仍可以是一条 if 语句,此种情形称为 if 语句的嵌套.当显现 if 语句嵌套时,不管书写格式如何, else 都将与它前面最靠近的 if 相配对,构成一条完整的 if 语句.如:1 if<表达式 1> if<表达式 2> < 语句 1> else <语句 2>2 if<表达式 1> if<表达式 2> < 语句 1><语句 2> else <语句 3>3 if<表达式 1> < 语句 1>else if<表达式 2> < 语句 2> else <语句 3>4 if<表达式 1> < 语句 1>else if<表达式 2> < 语句 2>可编辑资料 - - - 欢迎下载精品_精品资料_else if<表达式 3> < 语句 3> else <语句 4>留意:在其次条语句中,else不是同它前面复合语句中的if相配对,而是与处于同一层次的最前面的if相配对.5. 程序举例(1) #include<iostream.h> void mainint x,y.cout<<" 从键盘输入一个整数 :" .cin>>x .ifx<0 y=1+2*x*x.else y=7*x-4.cout<<"x="<<x<<", "<<"y="<<y<<endl.该程序的功能是:依据从键盘上输入的x 的值运算并输出 y 的值, y 的运算公式为:21+2xx0y=7x-4x 0(2) #include<iomanip.h> #include<math.h>void maindouble x,y.cin>>x .ifx<0 y=fabsx.else ifx<10 y=expx*sinx.else ifx<20 y=powx,3. else y=3+2*x*logx.cout<<setw10<<x<<setw10<<y<<endl./ 分别使 x 和 y 的输出宽度为 10,即占有 10 个字符位置该程序的功能是:依据x 的值运算出分段函数y 的值, y 的运算公式为:|x|x 0xy=esin x0 x 10x310 x 20 3+2xlnxx 20(3) #include<iostream.h> void mainint a,b,c,temp.可编辑资料 - - - 欢迎下载精品_精品资料_cout<<" 输入三个整数 :" .cin>>a>>b>>c .ifa<b temp=a . a=b . b=temp . ifa<c temp=a . a=c . c=temp . ifb<c temp=b . b=c . c=temp . cout<<a<<' '<<b<<' '<<c<<endl .该程序的功能是把从键盘上输入的按任意次序排列的三个整数转变为按从大到小的次序排列(即 a b c)并输出出来.留意:对于每条 if语句中的复合语句,其作用是交换两个变量的值,它第一把第一个变量的值暂存到temp 变量中,接着把其次个变量的值赋给第一个变量,最终把temp 变量的值,即第一个变量的原值赋给其次个变量中.如不通过中间变量temp,而是直接把第一个变量的值赋给其次个变量,再把其次个变量的值赋给第一个变量,就不能够达到交换两个变量值的目的,请读者摸索; 二、 switch语句1. 语句格式switch语句又称情形语句或开关语句,它也是一种结构性语句,其语句格式为:switch <表达式 >< 语句 >该语句中所包含的 <语句 >通常是一条复合语句,并在内部的一些语句前加有特别的语句标号“ case < 常量表达式 >: ”或“ default:”,因此, switch语句的实际使用格式为:switch<表达式 > case < 常量表达式 1>: < 语句 1-1><语句 1-2>case < 常量表达式 2>: < 语句 2-1><语句 2-2>default: <语句 n-1><语句 n-2>该语句中可以使用一次或多次case 标号,但只能使用一次default标号,或者省略掉整个default部分.另外,多个case 标号也答应使用在同一条语句的前面.留意:语句标号只起到标识语句位置的作用,对语句的执行不会产生任何影响.2. 语句执行过程switch语句的执行过程为:(1) 运算出 <表达式 >的值,假定为M,如它不是整型,系统将自动舍去其小数部分,只取其整数部分作为结果值.(2) 依次运算出每个常量表达式的值,假定它们的值依次为M1,M2,同样如它们的值不是整型,就自动转换为整型.可编辑资料 - - - 欢迎下载精品_精品资料_(3) 让 M 依次同 M1,M2,进行比较,一旦遇到M 与某个值相等,就就从对应标号的语句开头向下执行,如碰不到跳转语句的话,将始终执行到右花括号为止才终止整个switch语句的执行,如M 与全部值都不同,就当带有default部分时,就从该标号位置起向下执行,否就不执行任何操作.在实际使用 switch语句时,通常要求当执行完某个语句标号后的一组语句后,就终止 整个语句的执行,而不让它连续执行下一个语句标号后面的语句序列,为此,可通过使用 break 语句来实现.该语句只有保留字break ,而没有其他任何成分.它是一条跳转语句,在 switch语句中执行到它时,将跳转到所属的switch语句的后面位置,系统将接着向下执行其他语句.3. 语句格式举例(1) switcha case 1: c1+. break.case 2: c2+. break.case 3: c3+. break.case 4: c4+. break.default 2: c+. break .(2) switchcr case red: cout<<“red ”<<endl . break .case yellow: cout<<“yellow ”<<endl . break .case blue: cout<<“blue ”<<endl . break .(3) switchch casea:caseA: d1=x+y/2.d2=x*y-2.break.caseb:caseB: d1=a+b/2.d2=a*b-2.break.default: cout<<“Input error.”<<endl .exit1.第一条语句执行时,将依据a 的取值使相应的变量增1,详细的说,当 a 取 1 时 c1 增 1, a 取 2 时 c2 增 1, a 取 3 时 c3 增 1,取 4 时 c4 增 1, a 取其他任何值时就使变量c 增 1,每执行增 1 操作后,都接着执行一条break 语句,使执行流程转出整个switch语句,否就将会次序执行后面的增1 语句.执行其次条语句时,将依据具有枚举类型color的变量 cr 的值打算输出哪一个常量标识符,当 ch 取值为 red (即 0)时输出 red 标识符,取值为yellow (即 1)时输出 yellow 标识符,取值为 blue (即 2)时输出 blue标识符.输出最终一个常量标识符虽然没有使用break语句转出去,但由于它后面就是语句终止标志,右花括号,所以也会自然的终止该语句.可编辑资料 - - - 欢迎下载精品_精品资料_当执行第三条语句时,如ch 值为小写字母 a 或大写字母 A,就执行 35 行的语句,如ch值为小写字母b 或大写字母B,就执行79行的语句,如ch 不是上述取值,就执行1011 行后终止整个程序的运行.在 switch语句所含的复合语句中,可以包含任何语句,当然仍可以是switch语句, 所以 switch语句也答应显现嵌套的情形.4. 程序举例(1) #include<iostream.h> void mainint weekday.cout<<" 今日星期几 0-6.".cin>>weekday .switchweekday case 0: cout<<"sunday"<<endl. break .case 1: cout<<"Monday"<<endl. break .case 2: cout<<"Tuesday"<<endl. break .case 3: cout<<"Wednesday"<<endl. break .case 4: cout<<"Thursday"<<endl. break .case 5: cout<<"Friday"<<endl. break .case 6: cout<<"Saturday"<<endl. break .default: cout<<"Input error."<<endl.该程序的功能是:依据从键盘上输入的表示星期几的数字,对应输出它的英文名称.(2) #include<iostream.h> #include<stdlib.h>void mainfloat score.cout<<" 输入一个人的成果 :" .cin>>score.ifscore<0 | score>100 cout<<" 输入数据有误; "<<endl .exit1.switchintscore/10 case 9:case 10: cout<<score<<":优"<<endl . break .case 8: cout<<score<<":良"<<endl . break .case 7: cout<<score<<":中"<<endl . break .case 6: cout<<score<<":及格"<<endl . break .default: cout<<score<<":不及格 "<<endl . break .可编辑资料 - - - 欢迎下载精品_精品资料_该程序的功能是:依据从键盘上输入的一个人的成果判定并输出它所属的等级.等级分为优 、 良、 中 、及 格和 不及 格 等五 个 级别 ,对 应的 分 数段 依 次为 90,100,80,89, 70,79, 60,69和0 , 59 .(3) #include<iostream.h> #include<stdlib.h> #include<time.h>void mainchar mark .int x,y,z.bool b=false.srandtime0. /初始化系统中的随机数序列x=rand%50+1 .y=rand%10+1.cout<<"输入一个算术运算符 +,-,*,/,%:".cin>>mark.cout<<x<<mark<<y<<'='.cin>>z.switchmark case '+': ifz=x+y b=true. break .case '-': ifz=x-y b=true. break .case '*': ifz=x*y b=true. break .case '/': ifz=x/y b=true. break .case '%': ifz=x%y b=true. break .default: cout<<"运算符输入错; "<<endl .exit1.ifb cout<<"right."<<endl.else cout<<"error."<<endl.该程序的功能是:第一让运算机产生出两个随机整数 x 和 y, x 在 1 50 以内, y 在1 10 以内.接着由用户输入一个运算符,再由用户输入对 x 和 y 的运算结果.然后判定用户的运算是否正确,如正确就置 b 为 true ,即 1,否就保持原值 0 不变.程序最终输出相应的信息表示运算正确或错误.三、 for语句1. 语句格式for语句又称 for循环,它也是一种结构性语句,其语句格式为:for<表达式 1>.<表达式 2>.<表达式 >< 语句>其中 <语句 >是 for语句的循环体,它将按条件被重复执行多次.<表达式 1>, <表达式2>和 <表达式 >都可以被省略,但它们之间的分隔符(即分号)必需保留.另外,<表达式1>除了可以是一个表达式外,仍可以兼有对变量进行定义的功能,此变量在离开此循环后仍旧可以使用.如i=1 和 int i=1都可以作为 <表达式 1>使用,当使用 i=1 时, i 必需被定可编辑资料 - - - 欢迎下载精品_精品资料_义过,当使用int i=1时, i在此之前必需没有定义,此表达式同时具有定义变量i和给它赋初值这两种功能.2. 语句执行过程for语句的执行过程为:(1) 运算 <表达式 1>,当然如此项被省略就无须运算.(2) 运算 <表达式 2>得到一个值,假定为M,如该表达式被省略就当作数值1 看待.(3) 如 M为非 0,就执行一遍循环体,否就终止整个for语句的执行.(4) 运算 <表达式 3>,当然如此项被省略就无须运算.(5) 自动转向第 2 执行.3. 语句格式举例1fori=1.i<10 .i+ cout<<i<<' '.2 forint i=1.i+<=1000 . .3 forint i=0,j=0.i+j<20 .i+,j+=2 x=i*i+j*j.4 for. i+. ifi>100 break.5 fori=0,y=0. i<n . i+ cin>>x .y+=x.(6) forint k=2. k<sqrtm. k+ ifm%k=0break.(7) for.b.a=b,b=r r=a%b.8 fork=20. k.=0 . k- a=rand%100 .cout<<a<<' '.ifa%2 c1+. else c2+.上述第 1 条语句使循环体重复执行9 次,每次输出 i 的当前值和一个空格.第2 条语句省略了 <表达式 3>,并且循环体是一条空语句,该循环体被重复执行1000次,同时进行1000 次 i+<=1000 表达式的运算.第3 条语句中的 <表达式 1>分别给 i 和 j 赋初值为 0,并对它们进行变量说明,<表达式 2>和<表达式 3>分别为关系表达式和逗号表达式,循环体是一条赋值语句.第4 条语句中省略了全部三个表达式,循环体是一条复合语句.第5 条语句中的 <表达式1>为逗号表达式,循环体是一条复合语句,该循环语句完成从键盘上输入n 个常数,并把它们依次累加到y 上的任务.第6 条语句中的循环体是一条条件语句,它将被反复执行,直到k<sqrtm不成立时为止.第7 条语句中省略了<表达式 1>, <表达式 2>为一个简洁变量 b, <表达式 3>是一个逗号表达式,循环体是一条赋值语句.第8 条语句的循环体将被循环执行20 次,每次第一得到0 99 之间的一个随机数a 并输出它,接着如a 为奇数就使c1 增 1,否就使 c2 增 1.该循环的功能是得到并输出099之间的 20 个随机数,并分别统计特别数和偶数的个数.在 for循环的循环体中答应使用break语句,其作用是:当执行到该语句时,就使执行流程转出所属的for循环语句,然后再向下次序执行.4. 语句嵌套可编辑资料 - - - 欢迎下载精品_精品资料_for循环体可以为任何可执行语句,当然也可以直接为一条for语句,或者在作为循环体的复合语句内使用for语句,并且嵌套的层数不受限制.如:1 fori=1. i<=5 . i+forj=1. j<=6 . j+ s+=i*j.2 fori=1. i<=5 . i+ forj=1. j<=i. j+ cout<<'*'.cout<<endl .3 fori=0. i<m . i+ forj=0. j<n . j+ ifaaij>max max=aaij.row=i . col=j.以上每一条语句都是for双重循环语句,处于外面的称为外循环,内部的称为内循环.如 对于第 1 条语句,外循环掌握循环体(即内循环)执行5 次,每次执行内循环时又掌握内循环体执行6 次,所以内循环共被执行5*6=30次.同理,第 2 条语句的内循环体(即cout<< * .语句)共被执行1+2+3+4+5=15 次,第 3 条语句的内循环体(即if语句)共被执行 m*n 次.5. 程序举例(1) #include<iomanip.h> void maindouble x,y.cout<<" 从键盘上同一行输入6 个常数 :" .forint i=0.i<6 .i+ cin>>x .y=4*x*x-2*x+5.cout<<"x="<<setw5<<x.cout<<setw10<<"y="<<setw5<<y<<endl.在这个程序的主函数中,第一行定义了两个双精度变量x和 y,其次行给出提示信息,要求用户从键盘上输入6 个常数后回车,第三行至第八行为一条for循环语句,其循环体是 一条复合语句,将被重复执行6 次,对应掌握循环的变量i的取值依次为0,1,2,3,4和5,每次循环第一从键盘缓冲区读入一个常数并赋给x,接着运算出 y 的值,然后按肯定格式 输 出 x和 y的 值 . 如 程 序 运 行 后 , 从 键 盘 上 输 入 的 6个 常 数 为2,5,10,3.6,8.25,24.66,就得到的输出结果为:从键盘上同一行输入 6 个常数 :2 5 10 3.6 8.25 24.66x=2y=17x=5y=95x=10y=385x= 3.6y=49.64可编辑资料 - - - 欢迎下载精品_精品资料_x= 8.25y=260.75x=24.66y=2388.14(2) #include<iostream.h> void mainint i,n. double p=1.cout<<" 输入一个正整数,求其阶乘:" .cin>>n .fori=1.i<=n .i+ p*=i.cout<<n<<".="<<p<<endl.在这个程序中定义了三个变量,用i作为掌握循环的变量,简称循环变量,用n 储存从键盘输入的一个正整数,用p 运算和储存 n 的阶乘值, p 的初值为 1,每次进行循环运算时都使 p 累乘循环变量 i的值,循环终止后p 的值就是 n 的阶乘值.假定程序运行时输入的n 值为 10,就运行结果为:输入一个正整数,求其阶乘 :10 10.=3.6288e+006(3) #include<iostream.h> #include<stdlib.h>void mainint n,x,max,min.cout<<" 输入待处理数据的个数:" .cin>>n .ifn<=0 cout<<"n<=0."<<endl. exit1. cout<<" 输入 "<<n<<" 个待处理的数据 :" .cin>>x . max=min=x .for.-n . cin>>x .ifx>max max=x.ifx<min min=x.cout<<"max:"<<max<<endl.cout<<"min:"<<min<<endl.在程序的主函数中,第一行同时定义了四个整型变量n,x,max和 min,用它们分别储存待处理数据的个数、当前被处理的一个数据、已处理数据中的最大值和已处理数据中的最小值.其次行和第三行用来从键盘上给n 输入一个整数.第四行用来处理数据个数n 小于等于 0 的不正常情形.第五行给出请用户输入n 的数据的提示信息.第六行用来从键盘缓冲区读入第一个被处理数据并用它作为max 和 min 这两个变量的初值.第7 至 11 行为一个for循环,循环体共需执行n-1次,每次第一从键盘缓冲区读入一个数据到x 中,接着分别同当前最大值max 和当前最小值 min 相比较,如 x 较大就用它修改 max 的值,如 x 较小可编辑资料 - - - 欢迎下载精品_精品资料_就用它修改 min 的值,使 max 和 min 始终保持已处理数据中的最大值和最小值,当此循环终止后, max 和 min 中就分别存有 n 个数据中的最大值和最小值.最终两行语句输出所求得的最大值和最小值.假定需处理 6 个数据,这 6 个数据为: 48, 62, 30, 24, 55, 36,就程序运行结果为:输入待处理数据的个数: 6输入 6 个待处理的数据 :48 62 30 24 55 36 max:62min:24(4) #include<iostream.h> void mainforint a=0,b=1. b<100 . cout<<a<<' '<<b<<' '.a=a+b.b=a+b.cout<<endl .cout<<a<<' '<<b<<' '<<endl.该程序的主函数中包含有一个for循环, <表达式 1>分别给变量 a 赋初值为 0 和给变量 b 赋初值为 1,由于这两个变量在此之前没有被定义,所以在此使用时必需定义,<表达式 2>是一个关系表达式b<100, <表达式 3>被省略,循环体中第一输出a 和 b 的值,接着依据 a 和 b 的当前值求出a 的新值,再利用a 和 b 的当前值求出b 的新值,然后判定b<100 是否成立,如是就执行下一次循环,否就终止循环,转去执行后面的输出语句.该程序的运行结果为:0 1 1 2 3 5 8 13 21 34 55 89144 233该程序的功能是输出一个数列的前如干项,其中第一项为0,其次项为1,以后每一项等于其前两项之和.如第10 项为 34,它等于第 8 项 13 和第 9 项 34 之和.(5) #include<iostream.h> const int M=4, N=5 .void mainint i,j,s=0. fori=1.i<=M.i+ forj=1.j<=N .j+ s+=i*j.cout<<s<<endl.主函数中使用了一个双重 for 循环,外循环变量 i 初值为 1,终值为整数常量 M,每执行一次外循环体(即内循环)后其值增加 1,内循环变量初值为 1,终值为整数常量 N,每执行一次内循环体(即 s+=i*j .语句)后其值也增加 1,内循环体共需执行 M N 次.该程序的可编辑资料 - - - 欢迎下载精品_精品资料_功能是运算MNi *j 的值.程序运行结果为150.可编辑资料 - - - 欢迎下载精品_精品资料_i 1 j 1可编辑资料 - - - 欢迎下载精品_精品资料_6. 应用举例2222可编辑资料 - - - 欢迎下载精品_精品资料_例 1.编一程序运算 1+2 +4 +6 +50 的值.分析:此题所给的运算公式是一个和式,它除第一项外,其余项为从2 至 50 的每一个偶数的平方,因此可采纳循环累加的方法来运算,即依次把每个数据项(在此为偶数的平方)累加到一个变量中.设循环变量为i ,它的初值、终值和步长(即每次循环后循环变量的增加值)应分别为2、50 和 2,设用于累加的变量为s,它的初值应为和式中的第一项1,由于它不能够通过有规律的循环累加到s 上.在循环体中通过赋值语句每次把i 的平方值累加到 s 上,当循环终止后, s 的值就是所求的结果.依据分析编写出程序如下:#include<iostream.h> void mainint i,s=1.fori=2.i<=50 .i+=2 s+=i*i.cout<<"s="<<s<<endl.可编辑资料 - - - 欢迎下载精品_精品资料_例 2.编一程序运算10 1i1 x 22的值,其中 x 值由键盘输入.可编辑资料 - - - 欢迎下载精品_精品资料_i 1i分析:此题是一个累加求和问题,适合使用for循环来实现.设循环变量为和式中的i ,它从 1 取值到 10,每次增长 1,每次运算出一个数据项并把它累加起来.为了运算一个ii+1数据项中的 x 和 i. ,仍需要设定两个累乘变量,假定分别用p1 和 p2 表示,它们的初值应均为 1,在循环体中需要分别向p1 和 p2 累乘 x 和 i的值.为了把每个数据项的值累加起 来,需要设定一个累加变量,假定用s 表示,它的初值为0,每次向它累加 -1p1/p2的值.当和式中的全部10 个数据项都累加到s 之后, s 的值就是所求的结果.依据分析编写出程序如下:#include<iostream.h> void maindouble x,p1=1,p2=1,s=0.int i,j=1.cout<<"输入 x 的值 :" .cin>>x.fori=1.i<=10 .i+ p1*=x./p1的值为 xi p2*=i./p2的值为 i. s+=j*p1/p2. /j的值为 -1i+1j=-j./j取反,为下一数据项运算做预备cout<<s<<endl.可编辑资料 - - - 欢迎下载精品_精品资料_xx例 3.已知 y 1= 1e, y2= 1e,其中 x 从 0 开头取值,每次增加的步长为0.25 ,2a12a1直到 3, a 的值由键盘输入,并要求大于0,编一程序依次求出x 每一取值所对应的y 1 和 y2的值.分析:设 i 为循环变量,让它的初值、终值和步长分别为0,12 和 1,就 x 的每次取值可表示为 0.25i .在循环体中运算y1 和 y 2 的公式应分别表示为:y1=1+expx/sqrt2*a+1 y2=1+expx/sqrt2*a-1每次依据 x 的值(即 0.25 )求出对应的 y1 和 y2 后都要输出出来.依据分析编写出程序程序如下:#include<iomanip.h> #include<math.h> void maindouble x,a,y1,y2.cout<<"Input aa>0:". cin>>a . /也可把 a 设定为数值常量forint i=0. i<=12 . i+ x=0.25*i.y1=1+expx/sqrt2*a+1.y2=1+exp-x/sqrt2*a-1.cout<<setw10<<x<<setw10<<y1<<setw10<<y2<<endl.例 4.已知一组试验数据: 3.62,2.93,3.16,3.73,2.86,3.40,2.86,3.07,3.29,3.24,编一程序分别求出它们的平均值、方差和均方差,要求每一结果只保留两位小数.分析:设它们的平均值、方差和均方差分别用变量v,f和 t表示,由数学学问可知, 相应的运算公式为:可编辑资料 - - - 欢迎下载精品_精品资料_v= 1 n xf=n i 1i1 n x 2v2n i 1it=f可编辑资料 - - - 欢迎下载精品_精品资料_其中 n 表示数据个数, xi 表示第 i 个数据.可编辑资料 - - - 欢迎下载精品_精品资料_此题需要第一求出nnxi 和xi 2i 1i 1,然后才能够求出v,f和 t .而求全部数之和以及求可编辑资料 - - - 欢迎下载