新程序设计初步.pptx

上传人:莉*** 文档编号:76817631 上传时间:2023-03-12 格式:PPTX 页数:184 大小:3.06MB
返回 下载 相关 举报
新程序设计初步.pptx_第1页
第1页 / 共184页
新程序设计初步.pptx_第2页
第2页 / 共184页
点击查看更多>>
资源描述

《新程序设计初步.pptx》由会员分享,可在线阅读,更多相关《新程序设计初步.pptx(184页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、从不卡壳从不损坏可在任何环境下使用可靠性好杀伤力大操作简单。AK-47第1页/共184页在计算机中,一个好的程序,应该向AK-47那样简单、有效、可靠性好而且容易读懂(或者说易操作),而不应该是故弄玄虚。第2页/共184页1.1.自然语言自然语言自然语言自然语言 用中文或英文等自然语言描述算法。步骤1:输入a,b;步骤2:如果ab,将a赋值给max,否则执行步骤3;步骤3:将b赋值给max;步骤4:输出max。【例】求a,b的最大值。第3页/共184页2.2.流程图流程图流程图流程图 用图的形式表示算法,比较形象直观。开始输入a,babYNmax=bmax=a输出max程序结束第4页/共184

2、页3.N-S3.N-S图图图图 输入a,babYNmax=b输出maxmax=a第5页/共184页4.4.伪代码伪代码伪代码伪代码 用介于自然语言和计算机语言之间的文字和符号来描述算法。ifabthenmax=aelsemax=bprintmax用伪代码写算法并无固定的、严格的语法规则。第6页/共184页用一种计算机语言去描述算法。4.4.用计算机语言表示算法用计算机语言表示算法用计算机语言表示算法用计算机语言表示算法 第7页/共184页一、选择结构第8页/共184页用来判定所给定的条件是否满足,并根据判定的结果决定执行何种操作。1 1、(if-else)(if-else)语句语句语句语句 不

3、成立不成立不成立不成立成立晴天到操场踢球在宿舍睡觉假(False,F)真(True,T)第9页/共184页条件TF选择结构N-S图1语句1语句2第10页/共184页【例】输入一个整数,输出其绝对值。inta;cina;if(a=0)cout“|a|=”aendl;elsecout“|a|=”-aendl;第11页/共184页if(晴天)到操场踢球;到公园划船;else在宿舍洗衣服;在宿舍睡觉;复合语句(程序块)一个分支中包含多条语句时,必须使用第12页/共184页补充补充补充补充1 1:关系运算:关系运算:关系运算:关系运算优先级相同(高)优先级相同(低)序号序号 关系运算符关系运算符含义含义

4、小于小于大于大于=大于或等于大于或等于=等于等于!=不等于不等于第13页/共184页关系运算符的优先级低于算术运算符。关系运算符的优先级高于赋值运算符。ca+ba=bcc(a+b)a=(bc)第14页/共184页用关系运算符将两个表达式连接起来的式子,称为用关系运算符将两个表达式连接起来的式子,称为用关系运算符将两个表达式连接起来的式子,称为用关系运算符将两个表达式连接起来的式子,称为关系表达式关系表达式关系表达式关系表达式。if(xy)关系表达式第15页/共184页intx=2,y=3;cout“成立:”(xy)endl;cout“不成立:”y)endl;思考:以下程序运行结果是什么?思考:

5、以下程序运行结果是什么?深入理解关系表达式“真真真真”truetrue(T)(T)“假假假假”false(F)false(F)逻辑值x=0”的值为“真”“5=3”的值为“假”第17页/共184页cinxy;if(x=3*y)coutx“=3*”y;elsecoutx“!=3*”y;coutxy;if(3*y=x)coutx“=3*”y;elsecoutx“!=3*”y;coutendl;思考:以下哪种方式更好?为什么?思考:以下哪种方式更好?为什么?第18页/共184页【例】输入两个整数x,y,按从小到大输出。F FT T xy 输出x,y输出y,xif(xy)coutx“,”yendl;el

6、secouty“,”x=0a=-aT T输出a=0-aa第20页/共184页条件TF选择结构N-S图2语句1语句2第21页/共184页#include using namespace std;int main()int a;cout a;if(a0)a=-a;cout a=90良好:89score=80中等:79score=70及格:69score=60不及格:59score=0第23页/共184页优秀良好中等及格不及格90807060其他第24页/共184页=90=80=70=60falsefalsefalsefalsetruetruetruetrue优秀良好中等及格不及格if(score=

7、90)cout=80)cout=70)cout=60)cout及格;elsecout=90假真真假假选择结构N-S图2=80=70=60真假优秀良好中等及格不及格第26页/共184页【例】求一元二次方程ax2+bx+c=0的根(a,b,c为整数)。求根公式:当 b2-4ac=0 时,有两个相同的实根:当 b2-4ac0 时,有两个不同的实根:当 b2-4ac0两个虚根第28页/共184页第29页/共184页问题:能否保证输入一定为一元二次方程?问题:能否保证输入一定为一元二次方程?如果a=0,方程不是二次方程 当 b2-4ac=0 时,有两个相同的实根 当 b2-4ac0 时,有两个不同的实根

8、 当 b2-4ac0两个虚根第31页/共184页第32页/共184页if if语句的嵌套语句的嵌套语句的嵌套语句的嵌套 if()if()语句1else语句2elseif()语句3else语句4内嵌if内嵌ifelseelse总是与它上面最近的、且未配对的总是与它上面最近的、且未配对的ifif配对。配对。第33页/共184页【例】输入三个整数,按从小到大顺序输出。解法一:两两比较并交换。ababacacbcbcfalsetruefalsetruefalsetrue输出a,b,c第34页/共184页 if(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b c)t=b;

9、b=c;c=t;cout a b c endl;第35页/共184页解法二:判断三个数的6种可能排列方式。truefalsetruetruetruefalsefalsefalsefalsetruec,a,ba,c,ba,b,cb,a,cb,c,ac,b,ab aa babacbcbcac第36页/共184页if (a b)if (b c)cout a b c endl;elseif (a c)cout a c b endl;elsecout c a b endl;elseif (a c)cout b a c endl;elseif (b c)cout b c a endl;elsecout c

10、 b a b)max=a;elsemax=b;max=(ab)?a:b;如果(ab)条件为真,则条件表达式的值就取“?”后面的值,即条件表达式的值为,否则条件表达式的值为“:”后面的值,即b。条件表达式补充补充补充补充2 2:条件表达式:条件表达式:条件表达式:条件表达式 第38页/共184页【例】输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。intmain()charch;cinch;ch=(ch=A&ch=Z)?(ch+32):ch;coutchendl;return0;第39页/共184页第40页/共184页思考:输入月份,输出

11、季节。3,4,5春季6,7,8夏季9,10,11秋季12,1,2冬季if(month=3)cout“春季”endl;if(month=4)cout“春季”endl;if(month=5)cout“春季”endl;.if(3month5)cout“春季”endl;if(6month8)cout“夏季”c)&(b+ca)逻辑表达式的值是一个逻辑值逻辑表达式的值是一个逻辑值逻辑表达式的值是一个逻辑值逻辑表达式的值是一个逻辑值truetrue或或或或falsefalse。逻辑表达式第43页/共184页A AB BA&BA&B A|BA|BT TT TT TT TT TF FF FT TF FT TF

12、FT TF FF FF FF FA A!A!AT TF FF FT T逻 辑 真 值 表!有钱没钱第44页/共184页(1)若a=4,则!a的值为0。(2)若a=4,b=5,则a&b的值为1。(3)a,b值同前,a-b|a+b的值为1。(4)a,b值同前,!a|b的值为1。(5)4&0|2的值为1。第45页/共184页按下火警按钮或感应到火情第46页/共184页 姓名:杰克 性别:男 年龄:40 特征:独眼提供线索者,奖励提供线索者,奖励100100金币金币同时成立第47页/共184页【例】求三角形的面积。构成三角形的条件a+bca+cbb+ca海伦公式第48页/共184页第49页/共184页

13、第50页/共184页设立分支规则没有遗漏没有重复长途客车收费规则身高大于1米4全价身高小于1米4半价长途客车收费规则身高1米4以上全价身高1米4以下半价第51页/共184页【例】判别某一年(year)是否为闰年(leapyear)。判断闰年的方法:能被4整除,但不能被100整除。或能被100整除,又能被400整除。20042004200520052000200021002100第52页/共184页(year%4=0&year%100!=0)|(year%400=0)第53页/共184页二、多分支选择结构if语句用以处理两个分支,处理多个分支时需使用if-else-if结构。但如果分支较多,则嵌

14、套的if语句层就越多,程序不但庞大而且理解也比较困难。因此,C语言提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句。switchswitch语句用来语句用来实现多分支选择实现多分支选择结构结构第54页/共184页例:按照考试成绩的等级打印出百分制分数段。851007084606960A级B级C级D级grade=第55页/共184页switch(grade)caseA:cout85-100n;break;caseB:cout70-84n;break;caseC:cout60-69n;break;caseD:cout60n;break;default:couter

15、rorn;break;可以不加break表达式用于中断思考:如果不加思考:如果不加breakbreak会出现什么情况?会出现什么情况?第56页/共184页casecase后面只能是整型或字符型的后面只能是整型或字符型的常量常量或常量表达式第57页/共184页第58页/共184页gradeABCD其他85-10085-10085-10085-10085-100switch语句的N-S图第59页/共184页【例】编写一个计算器程序,实现加、减、乘、除四种运算。switch(oper)case+:ans=a+b;break;case-:ans=a-b;break;case*:ans=a*b;brea

16、k;case/:if(b=0)cout0不能做除数!endl;elseans=a/b;break;default:cout输入错误!endl;第60页/共184页switch-case语句可用来判断键盘的输入。比如实现游戏中的上、下、左、右移动。第61页/共184页三、循环结构第62页/共184页吃饭,睡觉,打豆豆我就是豆豆!第63页/共184页no=199吃饭,睡觉,打豆豆;no=100吃饭,睡觉;第64页/共184页1 1、用、用、用、用whilewhile语句构成循环语句构成循环语句构成循环语句构成循环【例】求1+2+3+100。inti=1,sum=0;当i=100时,sum=sum+

17、i;i=i+1;第65页/共184页当i=100时sum=sum+i;i=i+1;while循环结构的N-S图当型当型第66页/共184页intmain()inti=1,sum=0;while(i=100)sum=sum+i;i+;coutsum=sumendl;斤斤计较型斤斤计较型第67页/共184页循循环环体体中中必必须须有有使使循循环环趋趋向向于于结结束束的的语语句句whilewhile循环的一般形式:while(条件)语句;第68页/共184页2 2、用、用、用、用do-whiledo-while语句构成循环语句构成循环语句构成循环语句构成循环 inti=1,sum=0;sum=sum

18、+i;i=i+1;当i=100时第69页/共184页当i=100时sum=sum+i;i=i+1;do-while循环结构的N-S图直到型直到型第70页/共184页intmain()inti=1,sum=0;dosum=sum+i;i+;while(i=100);coutsum=sumn;while(i=n)sum=sum+i;i=i+1;coutsumn;dosum=sum+i;i=i+1;while(i=n);coutsumendl;return0;分别输入9 9和1111观察结果 第74页/共184页3 3、用、用、用、用forfor语句构成循环语句构成循环语句构成循环语句构成循环 fo

19、r(i=1;i=100;i+)sum=sum+i;第75页/共184页for语句的一般格式为for(表达式1;表达式2;表达式3)语句;第76页/共184页 建建 议议u 循环循环是确定的是确定的,使用,使用forfor循环循环u 循环是不确定的,使用循环是不确定的,使用whilewhile循环循环u do-while do-while循环不常用循环不常用第77页/共184页【例】输入整数n,逆序输出各位数字。思考:采用哪种循环?思考:采用哪种循环?第78页/共184页不不要要在在循循环环体体内内修修改改循循环环变变量量(除除了了循循环环控控制制变变量量的的递递增增递递减减),防防止止循循环环

20、失失去控制去控制。第79页/共184页一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。4 4、循环的嵌套、循环的嵌套、循环的嵌套、循环的嵌套 第80页/共184页intmain()inti,j;for(i=1;i=9;i+)for(j=1;j=9;j+)couti*j=i*jt;coutendl;return0;例:输出九九算术表。第81页/共184页5、break语句和语句和continue语句语句【例】看商品猜价格规则:首先出示一件价格在999元以内的商品,参与者要猜出这件商品的价格。在猜价格的过程中,主持人会根据参与者给出的价格,相应地

21、给出“高了”或“低了”的提示。如果一分钟内猜中了商品的价格,将可以得到这件商品。第82页/共184页第83页/共184页第84页/共184页思考:如果最多只允许猜思考:如果最多只允许猜10次呢?次呢?计数到达10次时终止循环inttrytimes=0;break;功能:使流程从循环体内跳出循环体。第85页/共184页for(r=1;r100)break;coutarea=areaendl;【例】输出半径为150之间圆的面积,若面积大于100,则程序终止。第86页/共184页【例】输出1100之间所有奇数。for(n=1;n=100;n+)若n为偶数继续下一次循环输出n利用continue语句功

22、能:结束本次循环。第87页/共184页intmain()intn;for(n=1;n=100;n+)if(n%2=0)continue;coutn=nendl;return0;第88页/共184页1990年1月15日,AT&T公司的长途电话电脑网络中断9小时。当天利用该网络的电话达1.48亿个。这次美国历史上最糟糕的事故使其中50%的电话无法接通。AT&T公司因此损失7,000万美元的收入。事后发现,原来是在400万条运行该电话交换机的程序代码的线路中,有一条线路出现逻辑错误。起因是一个负责写电路交换部分C代码的开发人员企图用break从if语句中退出,但break不能从if语句中退出。相反,

23、程序跳过了整段代码,引起了这个bug。第89页/共184页 *课堂练习:输出下列的所有图形第90页/共184页intmain()for(inti=1;i=9;i+)if(i=5)for(intj=1;j=i;j+)cout=1;j-)cout*;coutendl;return0;第91页/共184页 *第92页/共184页将规模n=7转换为i(-3=i=3)*i=-3i=3空格数:j=fabs(i)星号数:kn;for(i=-n/2;i=n/2;i+)intt=n-2*abs(i);for(k=1;k=abs(i);k+)cout;for(j=1;j=t;j+)cout*;coutn;for(

24、i=1;i=n;i+)for(j=1;j=n;j+)if(i+j=2*n-n/2+1|j-i=n/2+1|j-i=-n/2-1)cout;elsecout*;coutendl;return0;第96页/共184页【例】有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少?第97页/共184页兔子总数分别为:1,1,2,3,5,8,13,.,称为Fibonacci数列。F(1)=1(n=1)F(2)=1(n=2)F(n)=F(n-1)+F(n-2)(n3)第98页/共184页第99页/共184页112358.tem

25、p=f1;f1=f2;f2=f1+temp;f1=1f2=1f1=1f2=2f1=2f2=3f1=3f2=5f1=5f2=8第100页/共184页第101页/共184页【例】找出1000以内的全部素数。素数:除了1和自身,不能被其它任何整数整除的数。第102页/共184页第1版for(i=2;i=1000;i+)for(j=2;ji;j+)如果j能整除i,跳出本循环若i为素数,则输出i注意:此循环的终止有两种可能如何确定?判断判断判断判断j j是否等于是否等于是否等于是否等于i i分别判断分别判断2m-12m-1是否能整除是否能整除n n第103页/共184页第104页/共184页第2版除了除

26、了2 2,偶数一定不是素数,偶数一定不是素数for(i=3;i=1000;i=i+2)for(j=2;ji;j+)如果j能整除i,跳出本循环若i为素数,则输出i第105页/共184页第106页/共184页第3版素数一定不能被偶数整除素数一定不能被偶数整除for(i=3;i=1000;i=i+2)for(j=3;ji;j=j+2)如果j能整除i,跳出本循环若i为素数,则输出i第107页/共184页第108页/共184页第4版-用到数组 判断某个数是否为素数,只需判判断某个数是否为素数,只需判断是否能被比其小的素数整除即可。断是否能被比其小的素数整除即可。2345678910 11 12 13 1

27、4 15 16 17 18 19 20 21 22 23 24 25第109页/共184页第110页/共184页第5版需要从需要从2m-12m-1进行整除判断吗进行整除判断吗?第111页/共184页for(i=3;i=1000;i=i+2)for(j=3;j*j=i;j=j+2)如果j能整除i,跳出本循环若i为素数,则输出i如何确定?第112页/共184页设立逻辑类型的目的是为了看程序时直观易懂。设立逻辑类型的目的是为了看程序时直观易懂。设立逻辑类型的目的是为了看程序时直观易懂。设立逻辑类型的目的是为了看程序时直观易懂。boolflag;flag=trueflag=false用0表示用1表示逻

28、辑型变量在内存中占逻辑型变量在内存中占逻辑型变量在内存中占逻辑型变量在内存中占1 1个字节,用来存放个字节,用来存放个字节,用来存放个字节,用来存放0 0或或或或1 1。第113页/共184页将一个非零的整数赋给逻辑型变量,则按“真”处理。boolflag;flag=123;coutflag;输出:1第114页/共184页for(i=3;i=1000;i=i+2)for(j=3;j*j=i;j=j+2)if(i%j=0)isprime=false;break;if(isprime=true)couti=1;day-)total=2*(total+1);couttotal=totalendl;第

29、10天第122页/共184页爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶(最小可能)?【例】爱因斯坦的数学题第123页/共184页采用试探方式采用试探方式inti=1;while(1)i+;for(inti=1;i+)第124页/共184页step%2=1step%3=2step%5=4step%6=5&step%7=0循环终止条件是什么?循环终止条件是什么?第125页/共184页for(inti=1;i+)if(i%2=1&i

30、%3=2&i%5=4&i%6=5&i%7=0)cout“阶梯共有”i“阶!”endl;break;阶梯的阶数一定是阶梯的阶数一定是7 7的倍数的倍数第126页/共184页for(inti=7;i+=7)if(i%2=1&i%3=2&i%5=4&i%6=5)cout“阶梯共有”i“阶!”endl;break;第127页/共184页一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。【例】除不尽的自然数第128页/共184页t2=(2*a*17+15)*17+4采用逆

31、推采用逆推+试探方式试探方式t1=(a*8+7)*8+1)*8+1(t1=t2)?for(a=1;a+)第129页/共184页for(a=1;a+)t1=(a*8+7)*8+1)*8+1;t2=(2*a*17+15)*17+4;if(t1=t2)break;couta=aendl;coutnumber=t1endl;第130页/共184页【例】最大公约数和最小公倍数求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)第131页/共184页方案一:连续整数检测算法方案一:连续整数检测算法当t!=0时t=min(m,n)m%t=0TFTn%t=0returntt=t-1循环判断循环判断

32、min(m,n)1min(m,n)1能够同时整除能够同时整除m m和和n n第132页/共184页方案二:欧几里德算法方案二:欧几里德算法辗转相除辗转相除当n!=0时r=m%n;m=n;n=r;第133页/共184页【例】求第134页/共184页135步骤步骤1步骤步骤2步骤步骤3i=1n第135页/共184页当i=n时fac=(2*i-1)!;sign=(-1)(i+1);sum=sum+sign/fac;i+;fac=1;for(intj=1;j=2*i-1;j+)fac=fac*i;sign=1;for(intk=1;j=i+1;k+)sign=sign*(-1);注意:整数相除注意:整

33、数相除第136页/共184页doublesum=0,t=1,fac,sign;for(inti=1;i=n;i+)fac=1,sign=1;for(intj=1;j=2*i-1;j+)fac=fac*j;for(intk=1;k=i+1;k+)sign=(-1)*sign;t=sign/fac;sum=sum+t;coutsum=sumendl;第137页/共184页怎样才能提高效率?怎样才能提高效率?阶乘不需每次都计算阶乘不需每次都计算正负号不需每次都计算正负号不需每次都计算(i+1)(i+1)次方次方fac=fac*(2*i-2)*(2*i-1);sign=-sign;第138页/共184

34、页doublesum=1,t=1,fac=1,sign=1;for(inti=2;i=n;i+)fac=fac*(2*i-2)*(2*i-1);sign=-sign;t=sign/fac;sum=sum+t;coutsum=sumendl;第139页/共184页效率对比rtime=double(finish-start)/CLOCKS_PER_SEC;#includeclock_tstart,finish;start=clock();finish=clock();第140页/共184页补充补充补充补充33如何控制输出的格式如何控制输出的格式如何控制输出的格式如何控制输出的格式#includei

35、o+manipulator(操纵器)第141页/共184页控制符作用dec设置整数的基数为10hex设置整数的基数为16oct设置整数的基数为8setbase(n)设置整数的基数为n(n只能是16,10,8之一)setfill(c)设置填充字符c,c可以是字符常量或字符变量setprecision(n)设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数。setw(n)设置字段宽度为n位。setiosflags(ios:fixed)设置浮点数以固定的小数位数显示。setiosflags(io

36、s:scientific)设置浮点数以科学计数法(即指数形式)显示。setiosflags(ios:left)输出数据左对齐。setiosflags(ios:right)输出数据右对齐。setiosflags(ios:shipws)忽略前导的空格。setiosflags(ios:uppercase)在以科学计数法输出E和十六进制输出字母X时,以大写表示。setiosflags(ios:showpos)输出正数时,给出“+”号。resetiosflags终止已设置的输出格式状态,在括号中应指定内容。第142页/共184页doublea=123.456789012345;coutsetprecis

37、ion(9)aendl;(1)默认格式默认格式couta;默认输出精度为6(2)控制有效位数控制有效位数第143页/共184页(3)控制小数点位数控制小数点位数coutsetiosflags(ios:fixed)setprecision(8)aendl;(4)按科学计数方式输出按科学计数方式输出coutsetiosflags(ios:scientific)aendl;coutsetiosflags(ios:scientific)setprecision(4)aendl;第144页/共184页(5)按按16进制输出进制输出intb=123456;couthexb;(6)设置显示宽度设置显示宽度c

38、outsetw(10)b,bendl;只作用于紧跟的第一个第145页/共184页coutsetfill(*)setw(10)bendl;(7)设置填充设置填充第146页/共184页【例】寻找完数圣经中记载,上帝创造了世界,第一天创造了光,第二天造空气和水,第三天造陆地、海和各类植物,第四天造日、月、星辰和定昼夜、节令、日子和年岁,第五天造各类动物,第六天上帝按照自己的模样造人,第七天创造工作完毕,上帝歇了他一切的工作,安息了,并赐福给第七日,定为圣日。第147页/共184页要求:要求:要求:要求:编写程序找出编写程序找出1000以内的所有完数,并按以内的所有完数,并按下面格式输出其因子:下面格

39、式输出其因子:6的因子为:的因子为:1,2,36=1+2+3一个数如果恰好等于它的因子之和,这个数就称为一个数如果恰好等于它的因子之和,这个数就称为“完数完数完数完数”。第148页/共184页【例】求以下积分的值。u 分割分割u 求和求和u 取极限取极限第149页/共184页-11xyx1x2y2y1(y1+y2)/2y1=sin(x1);y2=sin(x2);steps=s+step*(y1+y2)/2;第150页/共184页当x2=pi时y1=sin(x1);y2=sin(x2);s=s+step*(y1+y2)/2;x1+=step;x2+=step;s=0;x1=0.0 x2=x1+s

40、tepstep=PI/1000第151页/共184页intmain()constdoublePI=3.14159;doublestep=PI/1000;doubles=0,x1=0.0,x2,y1,y2;x2=x1+step;while(x2=pi)y1=sin(x1);y2=sin(x2);s=s+step*(y1+y2)/2;x1+=step;x2+=step;coutsetprecision(10)sendl;return0;第152页/共184页【例】求以下积分的值。第153页/共184页intmain()doublee=2.71828;doublestep=1.0/500000;do

41、ubles=0,x1=0.0,x2,y1,y2;x2=x1+step;while(x21.0)y1=pow(e,x1)/(1+x1*x1);y2=pow(e,x2)/(1+x1*x2);s=s+step*(y1+y2)/2;x1+=step;x2+=step;coutsetprecision(10)s10-7时pi=pi+t;n=n+2;s=-s;t=s/n;分母分母n=1;t=1;pi=0;分式分式/4正负号正负号第156页/共184页ints=1;doublen=1,t=1,pi=0;while(fabs(t)1e-7)pi=pi+t;n=n+2;s=-s;t=s/n;PI=pi*4;co

42、ut“PI=PIendl;第157页/共184页方法二:蒙特卡罗法(概率法)方法二:蒙特卡罗法(概率法)方法二:蒙特卡罗法(概率法)方法二:蒙特卡罗法(概率法)1y方法:1、随机产生N个点2、假设落入阴影区域M个3、则x第158页/共184页x=rand();srand(time(NULL);伪随机数定义随机化种子:0RAND_MAX32767如何产生随机数?如何产生随机数?随机数的范围是什么?随机数的范围是什么?#include第159页/共184页x=(double)rand()/RAND_MAX;01之间x=rand()%7+1;17之间如何获得指定范围内的随机数?如何获得指定范围内的随

43、机数?第160页/共184页1yx当i=n时x=rand()/RAND_MAXy=rand()/RAND_MAXnum=0,i=1x2+y2=1Tnum+PI=4*(double)num/n;i+第161页/共184页for(inti=1;i=n;i+)x=(double)rand()/RAND_MAX;y=(double)rand()/RAND_MAX;if(x*x+y*y=1)num+;PI=4*(double)num/n;coutPIendl;第162页/共184页方法三:割圆法方法三:割圆法方法三:割圆法方法三:割圆法2*r=6*x=6*x/2r=1yx第163页/共184页当i=n时

44、x=y;y=sqrt(2-sqrt(4-x*x);EdgeNum*=2;y=1;EdgeNum=6;PI=EdgeNum*y/2;第164页/共184页intn;cout输入切割次数:n;doublePI,x,y;y=1;intEdgeNum=6;for(inti=1;i=n;i+)PI=EdgeNum*y/2;coutEdgeNum边形:PI=PIendl;x=y;y=sqrt(2-sqrt(4-x*x);EdgeNum*=2;第165页/共184页【绘制余弦曲线】在屏幕上用*显示0360度的余弦函数cos(x)曲线。第166页/共184页0.3acos(0.3)第167页/共184页aco

45、s(x):用以求x的反函数。第168页/共184页【例】绘制圆。在屏幕上用“*”画一个空心的圆第169页/共184页【例】新娘和新郞三对情侣参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。某人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。一个熟悉情况的人听后说,他们都在开玩笑,说的全是假话。请编程找出谁将和谁结婚。第170页/共184页for(x=1;x=3;x+)for(y=1;y=3;y+)for(z=1;z=3;z+)x!=1&x!=3&z!=3第171页/共184页【例】扶不扶?A说:不是我B说:是CC

46、说:是DD说:他胡说已知3个人说的是真话,1个人说的是假话,根据以上信息,找出肇事者。第172页/共184页a+b+c+d=1&!a+c+d+!d=3for(a=0;a=1;a+)for(b=0;b=1;b+)for(c=0;c=1;c+)for(d=0;d=1;d+)第173页/共184页【例】谁是窃贼公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说:“乙没有偷,是丁偷的。”乙说:“我没有偷,是丙偷的。”丙说:“甲没有偷,是乙偷的。”丁说:“我没有偷。”请根据这四人的答话判断谁是盗窃者。第174页/共18

47、4页【例】扑克牌。第175页/共184页【例】相等算式下列乘法算式中:每个汉字代表1个数字(19)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。赛软件*比赛=软件比拼试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。【参考结果】465*14=6510第176页/共184页赛软件*比赛=软件比拼abc*da=bcdefor(a=1;a=9;a+)for(b=1;b=9;b+)for(c=1;c=9;c+)for(d=1;d=9;d+)for(e=0;e=9;e+)第177页/共184页【例】Cantor的数表如下列数,第一项是1/1,第二项是1/2,第三项是2/1

48、,第四项是3/1,第五项是2/2,。输入n,输出第n项。1/11/21/31/41/52/12/22/32/43/13/23/34/14/25/1样例输入:314712345样例输出:2/12/41/459/99第178页/共184页【例】区域分割在平面上画n条封闭的曲线,各曲线之间两两相交于两点,并且任意三条封闭的曲线都不相交于一点,求这样的曲线将平面分为多少个区域。n=1n=2n=3第179页/共184页输入样例130输出样例28第180页/共184页【例】阶乘尾数零的个数100!的尾数有多少个零?第181页/共184页【例】阿姆斯特朗数如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。第182页/共184页【例】乘积为n个1的数字游戏给定一个正整数p(约定整数p为个位数字不是5的奇数),寻求正整数q,使得p与q之积为全是1组成的整数。输入样例输入样例11989输出样例输出样例112345679 124843945068664169787765293383270911360799 第183页/共184页C+程序设计感谢您的观看!第184页/共184页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁