第3章-程序设计基本结构

上传人:龙*** 文档编号:3176212 上传时间:2017-07-30 格式:PPTX 页数:22 大小:163.08KB
返回 下载 相关 举报
第3章-程序设计基本结构_第1页
第1页 / 共22页
第3章-程序设计基本结构_第2页
第2页 / 共22页
第3章-程序设计基本结构_第3页
第3页 / 共22页
第3章-程序设计基本结构_第4页
第4页 / 共22页
第3章-程序设计基本结构_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第3章-程序设计基本结构》由会员分享,可在线阅读,更多相关《第3章-程序设计基本结构(22页珍藏版)》请在金锄头文库上搜索。

1、第3章 程序设计基本结构,3.1 算法及算法描述方法 3.2 顺序结构 3.3 选择结构 3.4 循环结构 3.5 应用举例,3.1 算法及算法描述方法,算法:编写程序的根本,针对不同问题找到适合表示该问题的算法是编程人员的根本要求 算法需要具备以下特点: 1有穷性 2确定性 3可行性 4有0个或多个输入 5有一个或多个输出 算法有以下几种常用的描述方法: 1 用自然语言描述 2 用流程图表示算法 3 用代码表示算法,例:求出三个整数中的最大数和最小数。(1) 用自然语言描述算法(s1、s2代表算法步骤)S1:输入三个整数a、b和c,定义两个变量max和min用于存放最大数和最小数;S2:比较

2、a和b,如果a大于等于b,把a赋给max,b赋给min;否则a赋给min,b赋给max;S3:比较max和c,如果max小于c,则把c赋给max;S4:比较min和c,如果min大于c,则把c赋给min;S5:输出max作为最大数,输出min作为最小数。(2) 用伪代码描述算法INPUT a,b,cIF a=b THEN max=a,min=bELSE max=b,min=aIF maxc THEN min=cOUTPUT max, minEND,(3)用流程图描述算法,结构化程序设计有三大基本结构:顺序结构、选择结构、循环结构。,3.2 顺序结构 顺序结构程序是最简单的程序。由计算机硬件直接

3、支持,自上而下顺序执行,无分支、无转移、无循环。 其格式为: 语句1; 语句2; 语句3; 语句 n; 程序执行时先执行语句1,然后执行语句2,接着执行语句3,最后执行语句n。,例: 输入一个三位数,依次输出该数百位,十位,个位数字。#includevoid main() int num,a,b,c; scanf(%d,&num); /允许用户从键盘输入一个三位整数,值赋给变量num a=num/100; /计算得到num的百位存入变量a中 b=num/10%10; /计算得到num的十位存入变量b中 c=num%10; /计算得到num的个位存入变量c中 printf(百位:%dn十位:%d

4、n个位:%dn,a,b,c);运行时,从键盘输入:456屏幕显示:百位:4十位:5个位:6,3.3 选择结构,(1)单分支if语句 语句格式: if(表达式) 语句 执行过程:,例: 输入任意两个整数num1、num2,求两个数中的最大值。#include void main()int num1,num2,max;printf(Please input two numbers:); /提示语,提示用户增加交互性scanf(%d,%d,&num1,&num2); /允许用户键入两个整数max=num1;if(maxnum2) /单分支if语句结构max=num2;printf(max=%dn,m

5、ax);,if 语句 (有三种基本结构形式:单分支、双分支和多分支。),(2)双分支 if 语句 语句的格式: if(表达式) 语句1 else 语句2 执行过程:,例: 利用双分支结构实现求两个数中的最大值。 #include void main() int num1,num2,max; printf(Please input two numbers:); /提示语,提示用户增加交互性 scanf(%d,%d,&num1,&num2); /允许用户键入两个整数 if(num1num2) max=num1; else max=num2; /双分支if语句结构 printf(max=%dn,ma

6、x);,有 if 不一定有 else 有 else 一定有 if,(3)多分支 if 语句 语句格式: if (表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式m) 语句m else 语句n 执行流程:,例3.5 有一函数: 编一个程序,输入一个实型数x值后,输出y值。#include #include void main() float x,y; /定义两个实型变量x,y scanf(%f,&x); if(x0) y=sqrt(x); /数学函数sqrt()用来求开方 else if(x=0) y=1; else y=sqrt

7、(-x); /多分支if语句结构 printf(x=%f,y=%fn,x,y); ,if 语句的嵌套所谓if语句的嵌套,是指在if语句中又包含一个或多个if语句的情况。 一般格式: if() if() 语句1 else 语句2else if() 语句3 else 语句4 其他格式:if()if( )语句1else语句2,规律:else总是与它最近的未曾配对的if配对。 在实际编程中,为明确匹配关系,避免匹配错误,建议将内嵌的if语句,一律用花括号括起来,如以下形式:if( ) if( ) 语句1 else 语句2 else if( ) 语句3 else 语句4 书本例3.6 便是使用if语句的

8、嵌套形式实现的,请问:else和哪个if配对?,switch 语句基本格式: switch(表达式) case 常量表达式1: 语句序列1 case 常量表达式2: 语句序列2 . case 常量表达式n: 语句序列n default: 语句执行流程: 计算表达式的值,找到与某个case后面的常量表达式的值相等时,执行此case分支中的语句序列,然后继续执行下一个case分支对应的语句序列直至最后。若所有的case中的常量表达式的值都不能与表达式中的值相匹配,则执行default分支中的语句序列。,说明:(1)关键字switch后面的表达式的值是整型或字符型。(2)关键字case后面的常量表达

9、式的值也只能是整型或字符型,并且各case分支的常量表达式的值应各不相同。case与常量表达式之间一定要有空格分隔。(3)语句序列可以是多条语句,不需要像if语句用花括号括起。(4)当所有case的常量表达式都不能与表达式的值匹配时,执行default分支的语句。default分支不要求必须存在,程序员根据具体问题分析是否需要。若需要,在每个switch结构中default分支只能有一个。(5)各case及default分支的先后次序,不影响程序执行结果。(6)多个case也可以共用语句序列,此时不必重复书写,只需将共用语句序列的case情况连续书写,在其中最后一个case后书写语句序列即可。

10、,例: 从键盘上输入一个百分制成绩score,按下列原则输出其等级:score90,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。,#include void main() int score; printf(Input a score(0100): ); /提示语 scanf(%d, &score); /允许用户键入成绩 switch (score/10) / 构造表达式score/10,把连续的数据离散化 case 10: case 9: printf(grade=An); / case 10和case 9共用

11、语句 case 8: printf(grade=Bn); case 7: printf(grade=Cn); case 6: printf(grade=Dn); case 5: case 4: case 3: case 2: case 1: case 0: printf(grade=En); /case 5到case 0共用语句 default:printf(ENDn); ,程序运行情况如下: Input a score(0100): 75 grade=C grade=D grade=E END,Why?,如何解决?,#include void main() int score; printf

12、(Input a score(0100): ); scanf(%d, &score); switch (score/10) case 10: case 9: printf(grade=An); break; case 8: printf(grade=Bn); break; case 7: printf(grade=Cn); break; case 6: printf(grade=Dn); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(grade=En); break; default : printf(ENDn); ,程序运行情况如下:Input a score(0100): 75grade=C,break语句的作用!break语句也称为间断语句,在此处,若执行break语句将跳出switch语句。,

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号