![3[1].6程序举例.ppt_第1页](http://file1.renrendoc.com/fileroot2/2020-1/19/77c3bf5e-4490-4629-a312-bec2d4f5c37f/77c3bf5e-4490-4629-a312-bec2d4f5c37f1.gif)
![3[1].6程序举例.ppt_第2页](http://file1.renrendoc.com/fileroot2/2020-1/19/77c3bf5e-4490-4629-a312-bec2d4f5c37f/77c3bf5e-4490-4629-a312-bec2d4f5c37f2.gif)
![3[1].6程序举例.ppt_第3页](http://file1.renrendoc.com/fileroot2/2020-1/19/77c3bf5e-4490-4629-a312-bec2d4f5c37f/77c3bf5e-4490-4629-a312-bec2d4f5c37f3.gif)
![3[1].6程序举例.ppt_第4页](http://file1.renrendoc.com/fileroot2/2020-1/19/77c3bf5e-4490-4629-a312-bec2d4f5c37f/77c3bf5e-4490-4629-a312-bec2d4f5c37f4.gif)
![3[1].6程序举例.ppt_第5页](http://file1.renrendoc.com/fileroot2/2020-1/19/77c3bf5e-4490-4629-a312-bec2d4f5c37f/77c3bf5e-4490-4629-a312-bec2d4f5c37f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.6 程序举例,-结构化程序设计举例,主要内容:,1、回顾三种基本结构及结构化控制语句 2、解题步骤 3、常用方法:枚举法,归纳法,抽象法 4、程序举例,一、三种基本结构及控制语句,1、顺序结构 2、选择结构 3、循环机构,转移语句:continue、break、 goto、return,二、解题步骤,分析问题 确定算法 编写程序 运行调试 总结过程,基 本 步 骤,#include main() int score; scanf(%d, ,值为10时没有指定语句, 将顺序执行下一种情况的语句,解一元二次方程ax2+bx+c=0。,一元二次方程的解的情况有下列几种可能: a=0,不是二次方程
2、; b2-4ac=0,有两个相等实根: b2-4ac0,有两个不等实根: b2-4ac0,有两个共轭实根。,一元二次方程 NS图,#include main() float a,b,c,d,x1,x2,p,q; scanf(%f,%f,%f, ,源程序:,三、常用算法,1、枚举法(穷举法) 2、归纳法(递推法) 3、抽象法,枚举法(穷举法) “笨人之法”: 把所有可能的情况一一测试,筛选出 符合条件的各种结果进行输出。,例1:求方程:x3+y3+z3=3的全部解,其中: -5x11;-10y9; -6z18;,main() int x, y, z; for(x= -5; x12; x+) fo
3、r(y=-10; y10; y+) for(z=-6; z19; z+) if (x*x*x+y*y*y+z*z*z=3) printf(“%5d%5d%5dn”,x,y,z); ,例2:打印出所有的“水仙花数”。,“水仙花数” 指一个3位数, 其各位数字 的立方和等 于该数本身。 例如,153 153=13+53+33,程序分析: 假设3位数格式为:lmn 1.确定范围 2.l,m,n 3.判断 l*l*l+m*m*m+n*n*n=lmn,main() int i, j, k, n; for(n=100; n1000; n+) i=n/100; j=n/10-i*10; k=n%10; if
4、( n= =i*i*i+j*j*j+k*k*k) printf(“%4d”, n); printf(“n”); ,分析: 这是个不定方程三元一次方程组问题 (三个变量,两个方程),例3:百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。,xyz=100 5x3yz/3=100,设公鸡为x只,母鸡为y只,小鸡为z只。,main() int x,y,z; for (x=0;x=20;x+) for (y=0;y=33;y+) for (z=0;z=100;z+) if (x+y+z=100 ,main() int x,y,z; for (x=0;x=100;x+)
5、for (y=0;y=100;y+) for (z=0;z=100;z+) if (x+y+z=100 ,main() int x,y,z; for (x=0;x=20;x+) for (y=0;y=33;y+) z=100-i-j; if (5*x+3*y+z/3.0=100 ) printf(cocks=%d,hens=%d,chickens=%dn,x,y,z); ,方法一:x: 1100; y:1100; z:1100,方法二:x:1 20; y:1 33; z:1100;,方法三:x:1 20; y:1 33; z:100ij;,方法四:由x+y+z=100及5x+3y+z/3=10
6、0得 14x+8y=200,即7x+4y=100可得: x :1 13;y=(100 7x)/4;z=100 xy;,2、归纳法(递推法) “智人之法” : 通过分析归纳,从大量的特殊性中总结出 规律性或一般性的结论。 把一个复杂的计算过程化为简单过程的多 次重复,这种重复很容易用循环来实现。,归纳法的重要用途是用于数列和级数求和,【例1】编程求i =1+2+3+4+n (n=100),分析 s0= 0 (初值) s1= s0+1 s2= s1+2 s3= s2+3 sn=sn-1 +n,0 (初值) Si-1+i (i=1,2,3n),Si=,0 (初值) S+i (i=1,2,3n),S=
7、,0 (初值) S+i (i=1,2,3n),S=,如果是 i =1+1/2+1/3+1/n ?,main() int i ,n, s=0; printf(n=); scanf(%d, ,算法类型小结:累加型,【累加型】类型诸如 + 求其前n项之和的编程题。,s=0; for( i=1 ;i=n ;i+ ) s=s+_;,【例2】编程求11/2+1/31/4+1/5 +1/991/100,分母为奇数时,相加 分母为偶数时,相减,法1:从变化规律分析,0 (初值) i=0 Si-1+1/i (i=1,3) Si-1-1/i (i=2,4),main() int i; float s=0; for
8、 (i=1;i=100;i+) if (i%2) s=s+1/i; else s=s-1/i; printf(“sum=%fn,s); ,法2:这是个累加型算法,s=0; for( i=1;i=n;i+) s=s+_;,求11/2+1/31/4+1/5 +1/991/100,0 (初值) i=0 Si-1+1/i (i=1,3) Si-1-1/i (i=2,4),#include main() int i, sign=1; float s=0; for (i=1;i=100;i+) s=s+sign/ i ; sign=-sign; printf(“sum=%fn,s); ,例3:用,直到最后
9、一项的绝对值小于10-6为止。,公式求的近似值,0 (初值) i=0 Si-1+1/(2i-1) (i=3,5) Si-1-1/(2i-1) (i=2,4),#include main() int i ,sign=1; float s=0; for (i=1; i+) s=s+sign/2i-1; sign=-sign; pi=pi*4 ; printf(“pi=%10.6fn”,pi); ,fabs(1.0/(2*i-1)1e-6;,# include main( ) int s=1; float t=1, pi=0,n=1.0,s=1; while(fabs(t)1e-6) pi=pi+t
10、; n=n+2; s=-s; t=s/n; pi=pi*4; printf(“pi=%10.6fn”,pi); ,【例4】编程求n! (n由 键盘输入),分析 S0= 1 (初值) S1= S01 S2= S12 Sn=Sn-1n,s=1; for( i=1 ;i=n ;i+ ) s=si;,0 (初值) S*i (i=1,2,3n),S=,算法类型小结:阶乘型,【阶乘型】类型诸如 求其前n项之积的编程题。,s=1; for( i=1 ;i=n ;i+ ) s=s _;,main() long int f1=1, f2=1; int ; for(i=1; i=20; i+) printf(“%12ld%12ld”,f1, f2); if(i%2= =0) printf(“n”); f1=f1+f2; f2=f2+f1; ,例5:求Fibonacci数列:1,1,2,3,5,8的前40个数,即 F1=1 ,F2=1 , Fn=Fn-1+Fn-2(n大于2),3、抽象法 日常解决问题的一种思维,隐藏细 节,例6:编程判断一个数是否是素数。,解题分析: 判断一个数是否是素数的规则是: 如果一个数m能被 之间的任何一 个整数整除,则m不是素数,否则是素数。,#include main() int m,i,k; scanf(%d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油画大师活动方案
- 四年级语文上册同步习作范文
- 三年级语文上册《快乐读书吧》重点知识+必考考点题型
- 高校实验室危化品管理信息化体系构建与实证研究
- 黄河文化创新发展的路径探索与实践研究
- 爱与感恩班会课件
- 硅基材料在烷烃异构化反应中的应用
- 大语言模型微调在卷烟消费评价文本分类中的改进研究
- 均质砂箱含水层多级水流系统中溶质运移的规律与机理分析
- 知识图谱可视化分析在植物研究领域的应用研究
- 光伏发电项目施工方案(安装)光伏施工方案
- 疲劳风险培训课件
- GB/T 45707-2025皮革铬鞣鞋面用坯革规范
- 2025年中小学教师职称评审考试试卷及答案
- 2025年人教版小学二年级科学(下册)期末试卷及答案
- 医院培训课件:《高血压及糖尿病患者管理与治疗》
- 劳动教育和各学科融合
- DB21T 3354-2020 辽宁省绿色建筑设计标准
- 新生儿复苏解析课件
- (完整版)重大危险源清单及辨识表
- ABI7500荧光定量PCR仪标准操作规程
评论
0/150
提交评论