版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题课1,第 八 讲,程序设计,加油,例1 编写程序计算表达式的值:,#include”iostream.h” void main( ), float x,y;,cin“nInput x:”;,cinx;,if(x0),else if(x10),else,cout“x=“x“y=”y;,x0,真,y=x,假,x10,真,y=x-1,假,y=x+1,y=x;,y=x-1;,y=x+1;,输入x值,输出y值,例2 编写程序计算表达式的值:,x0,真,y=x,假,x-5,cinx;,If(x-5,else,If(x10),y=x-1;,else,y=x+1;,cout“x=“x“y=”y;,x10,
2、真,y=x-1,y=x+1,假,输入x值,例3、下面的程序要计算函数的值,判断哪个程序正确.,if(x=0),if(x0) y=1;,else y=0;,else y=-1;,x,1,0,0,-9,-1,在if块中嵌套具有else块的if 语句,不会发生语法错误,y=-1;,if(x!=0),if(x0) y=1;,else y=0;,x,1,0,-1,-9,0,y=-1;,if(x!=0),if(x0) y=1;,else y=0;,x,1,0,0,-9,-1,在if块中嵌套没有else块的if 语句,内嵌的 if语句要用、括起来.,y,40,y,40,y,40,例4 输入任意n个数,计算其
3、中奇数和及偶数和,并统计奇数个数。, scanf(“%d”,scanf(”%d”,n);,for(i=1;i=n;i+), 如何求和、统计个数?,i=1,jh=0,oh=0,gs=0,输入n,x%2=0,输入x,真,oh+=x,假,jh+=x,gs+,当i=n时,输出, 如何得到n个数?,#include”iostream.h” void main( ), int i=1,jh=0,oh=0,gs=0,n,x;,printf(“Please input n:”);,cinn;,for(i=1;i=n;i+),cinx;,if(x%2=0),oh+=x;,else,jh+=x; gs+;,cou
4、t“The result:”);,cout“ oh=%d”,oh);,cout“ jh=%d,gs=%d”,jh,gs);,例5、究竟是谁?,111111=111111,111111=11111 1,请问这多余的第三者 究竟是谁?,分析: 取值范围 1,2,9,for k=1 to 9,等号两边相等,T,N,打印k值,for(k=1;k=9;k+),if(111111=111*11*k1),#include”iostream.h” void main( ),coutk;, int k;,(k*10+1),a=b,b=a+b,例6、有一分数序列:,求前20项之和。,分析:后一项的分母是前一项的分
5、子,而后一项 的分子是前一项的分母、分子之和。,a分母,b分子,t=b/a,s和 s=s+t,c=a+b,a=b, b=c,a=1 b=2 s=0,for(k=1;k=20;k+,t=b/a ;s=s+t c=a+b;a=b;b=c,输出s的值,流程图:,#include”iostream.h” void main( ) int k; float s=0,a=1,b=2,t,c; for(k=1;k=20;k+) t=b/a; s=s+t; c=a+b;a=b;b=c; cout“s=”s; ,运行,例7、百钱买百鸡问题,每只公鸡值5元,母鸡值3元,小鸡三只值1元。用100元钱买100只鸡,问
6、公鸡、母鸡、小鸡各买多少只?,设:X,Y,Z分别是公鸡、母鸡和小鸡的只数。,由题意:X+Y+Z=100 5X+3Y+Z/3=100,for(y=0;y33;y+), z=100-x-y;,if(5*x+y*3+z/3=100),printf(“ %d %d %dn,x,y,z);,printf(“COOK HEN CHICKn”);,for(x=0;x19;x+),COOK HEN CHICK,0 25 75,3 20 77,4 18 78,7 13 80,8 11 81,11 6 85,12 4 84,运行,运行,算ai,算a,算b,通项 ai=,i!,(1)i+1,a,f,b,=,i=1,
7、2,,n,算f,s+=ai,n次,for i=1 to n,ai=f*b/a,a*=i,b=1,输入x,n,输出s,main( ), int i,m,n;,b=1,a=1,f= - 1,s=1;,for(i=1;i=n;i+), m= - m;,b*=x;,a*=i;,ai=f*b/a;,s+=ai; ,printf(“s=%.4f”,s);,f= - f,b*=x,a=1,f= -1,s=1,float x,p,q,s,ai;,scanf(“%f,%d”,xi,例9:输出a printf(“a b c funn”); printf(“=n”); for(a=0;a=1;a+) for(b=0
8、;b=1;b+) for(c=0;c=1;c+) fun=a ,运行,例13 找出所有的水仙花数。,若m是水仙花数,则:,b:m的百位数,对于三位数有:,s:m的十位数,g:m的个位数,m=b3+s3+g3,如何分解数?,设 m =1 2 3,b=,m/100,s=,m/10-b*10,g=,m%10,#include”stdio.h” void main( ),int m,b,s,g;,for(m=100;m=999;m+), b=m/100;,s=m/10-b*10;,g=m%10;,if(b*b*b+s*s*s+g*g*g=m),printf(“%6d”,m); ,例14 从任意n个数中
9、找出最大的数。,1.假设第一个数最大max,2.第二个数与max比较,3.第三个数与max比较,n.第n个数与max比较,读入a,max=a,读入a,amax,真,max=a,for i=2 to n,读入n,输出,假,大数max,大数 max,大数 max,读数,比较,n-1次,#include”stdio.h” void main( ), int a,max,i,n;,max=a;,for(i=2;i=n;i+), scanf(“%d”,max=amax?a:max; ,printf(“max=%d”,max);,printf(“nInput n,a:”);,scanf(“%d,%d”,找
10、最大公约数可用辗转相除的算法:,首先把两个数中大的那个数作为被除数,两数相除得一余数。将除数作为被除数,余数作为除数再作除法,得到一个新的余数。不断重复这一过程直到余数为零,这时的除数就是两个数的最大公约数。,算法:1.从f(x)=0,导出x=g(x)形式 2. 给x初值x0 3.代入g(x),得x1=g(x0) 4.令x0=x1,转去3直到|xn+1-xn|10-6 得到x的近似根,若函数不收敛,将出现无休止迭代,所以应规定最高循环次数.20次,解一元方程,例10.迭代法求解 x3+2x2+2x+1=0,#includemath.h main() int i; float x,x1; sca
11、nf(%f, ,运行,程序:,例11.牛顿迭代法求解f(x)=0,F(x),x1,x2,x3,f(x1)=f(x1)/(x1-x2) x2=x1-f(x1)/f(x1),4. 反复,直到|xn+1-xn|10-6 得到x的近似根,x,1.选一个接近x的近似根x1,2.求f(x1),3.过f(x1)作f(x)的切线,交x轴于x2,牛顿迭代公式,例12.二分法求解f(x)=0,F(x),x2,x1,x,x,1.任选两点x1,x2,2.判断(x1,x2)区间内有实根,f(x1)和f(x2)反号,3.取(x1,x2)的中点x,判断实根 在(x1,x)区间还是在(x,x2)区 间。然后舍去一半区间。 如
12、此重复直到|x1-x2|10-5,怎样舍去一半的区间? 如何判断两个值的符号?,求f(x)=x3-6x-1=0 在x=2附近的一个实根。,设x1=0,x2=5,x,#includemath.h main() float x1,x2,x0,f1,f2,f0; do scanf(%f,%f,do x0=(x1+x2)/2; f0=x0*x0*x0-6*x0-1; if(f1*f01e-6); printf(%.2f,x0); ,程序:,运行,小测验,小测验一、改错(在错处划横线,并改正),1.程序: void main( ); int a,float x cina; x=a, coutx,a;,2
13、.已知,2.程序: #include”iostream.h” void main() int x; if(x 0) y =(sinx+cosx)/2 y=(sinx-cosx)/2 couty; ,程序: main( ) int k;float sum; for(k=0;k=20;k+) sum=sum+1/k; printf(“%.2f”,sum=sum);,3.计算 的前20项之和。,程序:#include”stdio.h” void main( ) int k,f=-1;float sum=0; for(k=1;k=20;k+) f=-f;sum=sum+f*1.0/k; printf(
14、“sum= %.2f”, sum);,二、写出下列程序运行结果:,1.程序: main() int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+=1; printf(“%dn”,c); ,2.程序(键盘输入3和4) main( ) int a,b,s; scanf(“%d%d”, ,3.程序: main( ) int k,j,s; for(k=2;k8;k+,k+) s=1; for(j=k;j6;j+) s+=j; printf(“%d”,s);,4.程序: main( ) int k,j,s=0; for(k=1;k=15;k+=4) for(j=3;j=19;j+=4) printf(“%dn”,s); for(j=3;j6;j+) printf(j%2)?(“*%d”):(”#%dn”),j);,三、填空:,1.下面的程序所表示的数学函数关系是: 。 程序: main ( ) int x,y;,scanf(“%d”, ,2.下列程序的功能是:从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大连东软信息学院《AutoCAD 平面图绘制》2025-2026学年第一学期期末试卷(A卷)
- 大连东软信息学院《Android 开发技术课程设计》2025-2026学年第一学期期末试卷(A卷)
- 上海科技大学《Android 系统及开发》2025-2026学年第一学期期末试卷(A卷)
- 上海科学技术职业学院《安全系统工程》2025-2026学年第一学期期末试卷(A卷)
- 精准农业与智能传感器技术
- 三亚市2025-2026学年高三考前热身化学试卷(含答案解析)
- 基于LEER模式下结直肠肿瘤“一病一品”全程管理方案
- 东北财经大学《软件工程》2025-2026学年第一学期期末试卷(A卷)
- 东北财经大学《解密睡眠》2025-2026学年第一学期期末试卷(A卷)
- 民间工艺品艺人复试考核试卷含答案
- 2026年江苏南京市高三二模高考政治模拟试卷试题(含答案详解)
- 女生汽车工程专业就业指南
- 现场人员临时栈桥安全监测方案
- 2025年四川省雅安市中考数学试卷真题及答案详解(精校打印版)
- 高质量数据集建设和标准化情况介绍
- 2026江苏苏州市常熟市莫城街道(服装城)国有(集体)公司招聘13人备考题库带答案详解(b卷)
- 《党政领导干部选拔任用工作条例》知识测试题及答案
- 六氟化硫知识培训课件
- 化学品MRSL培训教材
- DB35∕T 2249-2025 海峡两岸共通 妈祖祭典
- 律师银行入库协议书
评论
0/150
提交评论