新程序设计初步.pptx
《新程序设计初步.pptx》由会员分享,可在线阅读,更多相关《新程序设计初步.pptx(184页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计初步 程序设计 初步
限制150内