欢迎来到天天文库
浏览记录
ID:62066463
大小:1.04 MB
页数:58页
时间:2021-04-14
《最新C++NOIP竞赛4ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++NOIP竞赛4第一节for语句一、语句格式格式1说明:语句1是for循环语句的循环体,它将在满足条件的情况下被重复执行。格式2说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。程序风格提示:写for循环语句时,循环体的语句相对于for缩进两格。第一节for语句二、语句执行过程for语句的执行过程可由以下4步来描述。(1)执行“控制变量初始化语句”,使控制变量获得一个初值。(2)判断控制变量是否满足“条件表达式”,若满足条件则执行一遍循环体,否则结束整个for语句,继续执行for循环下面的句子。(3)根据增量表达式
2、,计算出控制变量所得到的新值(4)自动转到第(2)步。第一节for语句例4.4利用for循环,分别计算1—100中奇数的和、偶数的和。#includeusingnamespacestd;intmain(){intjssum=0;intossum=0;for(intjs=1,os=2;js<=99&&os<=100;js+=2,os+=2){jssum+=js;ossum+=os;}cout<<"thesumofoddnumbers1to100is:"<3、rs1to100is:"<4、第二节while语句一、语句格式格式1说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。程序风格提示:写while循环语句时,循环体的语句相对于while缩进两格。说明:语句1是while循环语句的循环体,它将在满足条件的情况下被重复执行。格式2第二节while语句二、语句执行过程(1)计算作为循环控制条件表达式的值,得到逻辑真或假,假定用M表示。(2)若M为真,则执行了一遍循环体,否则离开循环,结束整个while语句的执行。(3)循环体的所有语句执行结束后,自动转向第(1)步执行。(4)在循环体中应有使循环趋向于结束5、的语句。如果无此语句,则i的值始终不改变,循环永不结束。三、格式举例(1)i=0;while(i<10)++i;功能:当i的值小于10,重复执行++i语句(2)cin>>x;while(x<0)cin>>x;功能:当输入的数据小于0时,重复读数据。第二节while语句例4.5求s=1+2+3……+n,当加到第几项时,s的值会超过1000?程序如下:#includeusingnamespacestd;intmain(){intn=0,s=0;while(s<=1000){++n;s+=n;}cout<6、二节while语句例4.6求两个正整数m,n的最大公约数。分析:求两个整数的最大公约数可以采用辗转相除法。以下是辗转相除法的算法:分别用m,n,r表示被除数、除数、余数;1)求m除以n的余数r;2)当r!=0,执行第3)步;若r==0,则n为最大公约数,算法结束。3)将n的值赋给m,将r的值赋给n;再求m除以n的余数r。4)转到第2)步#includeusingnamespacestd;intmain(){intm,n,r;cin>>m>>n;r=m%n;while(r!=0)//也可以使用while(r),c++中非0即真7、{m=n;n=r;r=m%n;}cout<<"最大公约数="<=5的最小n值。分析:此题不等式的左边是一个求和的算式,该和式中的数据项个数是未知的,也正是要求出的。对于和式中的每个数据项,对应的通式为1/i,i=1,2,…n。所以可采用循环累加的方法来计算出它的值。设循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于5为止,此时的i值就是所求的n。设累加变量为s,在循环体内把1/i的值累加到s上。根据以上分析,采用whi8、le循环编写出程序如下:#includeusingnamespacestd;intmain(){inti=0;floats=0;w
3、rs1to100is:"<4、第二节while语句一、语句格式格式1说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。程序风格提示:写while循环语句时,循环体的语句相对于while缩进两格。说明:语句1是while循环语句的循环体,它将在满足条件的情况下被重复执行。格式2第二节while语句二、语句执行过程(1)计算作为循环控制条件表达式的值,得到逻辑真或假,假定用M表示。(2)若M为真,则执行了一遍循环体,否则离开循环,结束整个while语句的执行。(3)循环体的所有语句执行结束后,自动转向第(1)步执行。(4)在循环体中应有使循环趋向于结束5、的语句。如果无此语句,则i的值始终不改变,循环永不结束。三、格式举例(1)i=0;while(i<10)++i;功能:当i的值小于10,重复执行++i语句(2)cin>>x;while(x<0)cin>>x;功能:当输入的数据小于0时,重复读数据。第二节while语句例4.5求s=1+2+3……+n,当加到第几项时,s的值会超过1000?程序如下:#includeusingnamespacestd;intmain(){intn=0,s=0;while(s<=1000){++n;s+=n;}cout<6、二节while语句例4.6求两个正整数m,n的最大公约数。分析:求两个整数的最大公约数可以采用辗转相除法。以下是辗转相除法的算法:分别用m,n,r表示被除数、除数、余数;1)求m除以n的余数r;2)当r!=0,执行第3)步;若r==0,则n为最大公约数,算法结束。3)将n的值赋给m,将r的值赋给n;再求m除以n的余数r。4)转到第2)步#includeusingnamespacestd;intmain(){intm,n,r;cin>>m>>n;r=m%n;while(r!=0)//也可以使用while(r),c++中非0即真7、{m=n;n=r;r=m%n;}cout<<"最大公约数="<=5的最小n值。分析:此题不等式的左边是一个求和的算式,该和式中的数据项个数是未知的,也正是要求出的。对于和式中的每个数据项,对应的通式为1/i,i=1,2,…n。所以可采用循环累加的方法来计算出它的值。设循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于5为止,此时的i值就是所求的n。设累加变量为s,在循环体内把1/i的值累加到s上。根据以上分析,采用whi8、le循环编写出程序如下:#includeusingnamespacestd;intmain(){inti=0;floats=0;w
4、第二节while语句一、语句格式格式1说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。程序风格提示:写while循环语句时,循环体的语句相对于while缩进两格。说明:语句1是while循环语句的循环体,它将在满足条件的情况下被重复执行。格式2第二节while语句二、语句执行过程(1)计算作为循环控制条件表达式的值,得到逻辑真或假,假定用M表示。(2)若M为真,则执行了一遍循环体,否则离开循环,结束整个while语句的执行。(3)循环体的所有语句执行结束后,自动转向第(1)步执行。(4)在循环体中应有使循环趋向于结束
5、的语句。如果无此语句,则i的值始终不改变,循环永不结束。三、格式举例(1)i=0;while(i<10)++i;功能:当i的值小于10,重复执行++i语句(2)cin>>x;while(x<0)cin>>x;功能:当输入的数据小于0时,重复读数据。第二节while语句例4.5求s=1+2+3……+n,当加到第几项时,s的值会超过1000?程序如下:#includeusingnamespacestd;intmain(){intn=0,s=0;while(s<=1000){++n;s+=n;}cout<6、二节while语句例4.6求两个正整数m,n的最大公约数。分析:求两个整数的最大公约数可以采用辗转相除法。以下是辗转相除法的算法:分别用m,n,r表示被除数、除数、余数;1)求m除以n的余数r;2)当r!=0,执行第3)步;若r==0,则n为最大公约数,算法结束。3)将n的值赋给m,将r的值赋给n;再求m除以n的余数r。4)转到第2)步#includeusingnamespacestd;intmain(){intm,n,r;cin>>m>>n;r=m%n;while(r!=0)//也可以使用while(r),c++中非0即真7、{m=n;n=r;r=m%n;}cout<<"最大公约数="<=5的最小n值。分析:此题不等式的左边是一个求和的算式,该和式中的数据项个数是未知的,也正是要求出的。对于和式中的每个数据项,对应的通式为1/i,i=1,2,…n。所以可采用循环累加的方法来计算出它的值。设循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于5为止,此时的i值就是所求的n。设累加变量为s,在循环体内把1/i的值累加到s上。根据以上分析,采用whi8、le循环编写出程序如下:#includeusingnamespacestd;intmain(){inti=0;floats=0;w
6、二节while语句例4.6求两个正整数m,n的最大公约数。分析:求两个整数的最大公约数可以采用辗转相除法。以下是辗转相除法的算法:分别用m,n,r表示被除数、除数、余数;1)求m除以n的余数r;2)当r!=0,执行第3)步;若r==0,则n为最大公约数,算法结束。3)将n的值赋给m,将r的值赋给n;再求m除以n的余数r。4)转到第2)步#includeusingnamespacestd;intmain(){intm,n,r;cin>>m>>n;r=m%n;while(r!=0)//也可以使用while(r),c++中非0即真
7、{m=n;n=r;r=m%n;}cout<<"最大公约数="<=5的最小n值。分析:此题不等式的左边是一个求和的算式,该和式中的数据项个数是未知的,也正是要求出的。对于和式中的每个数据项,对应的通式为1/i,i=1,2,…n。所以可采用循环累加的方法来计算出它的值。设循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于5为止,此时的i值就是所求的n。设累加变量为s,在循环体内把1/i的值累加到s上。根据以上分析,采用whi
8、le循环编写出程序如下:#includeusingnamespacestd;intmain(){inti=0;floats=0;w
此文档下载收益归作者所有