c++电子课件(上)第二章

上传人:aa****6 文档编号:51399570 上传时间:2018-08-13 格式:PPT 页数:115 大小:956.50KB
返回 下载 相关 举报
c++电子课件(上)第二章_第1页
第1页 / 共115页
c++电子课件(上)第二章_第2页
第2页 / 共115页
c++电子课件(上)第二章_第3页
第3页 / 共115页
c++电子课件(上)第二章_第4页
第4页 / 共115页
c++电子课件(上)第二章_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《c++电子课件(上)第二章》由会员分享,可在线阅读,更多相关《c++电子课件(上)第二章(115页珍藏版)》请在金锄头文库上搜索。

1、ok第二章 基本控制结构程序 设计结构化程序设计的特点是任何程序都可由 三种基本结构及其组合来描述。本章将介绍C+分支结构和循环结构的设 计方法。还将介绍一些常用算法。ok第二章 基本控制结构程序 设计2.2 2.2 分支结构程序设计分支结构程序设计 2.7 2.7 枚举类型枚举类型 2.6 2.6 常用算法的常用算法的应用应用实例实例 2.4 2.4 转向语句转向语句 2.3 2.3 循环结构循环结构程序设计程序设计 2.8 2.8 输入输出文件简介输入输出文件简介2.5 2.5 结构化程序设计思想(选读)结构化程序设计思想(选读) 2.1 2.1 算法的概念与表示方法算法的概念与表示方法

2、ok2.1 2.1 算法的概念与表示方算法的概念与表示方 法法2.1.1 算 法 的 概 念 2.1.3 算 法描述的三种基本结构2.1.2 算 法 的 表 示ok2.1.1 算 法 的 概 念 算法: 算法是解决问题的步骤。计算机算法的特征: (1) 可执行性 (2) 确定性 (3) 有穷性 (4) 可输入输出信息(5)算法是程序设计学习的重点。ok2.1.2算法的表示流程图: 流程图是图形化的表示方法,比较直观,基本 组成元件包括矩形框、菱形框、箭头线等。其 中矩形框表示要执行的指令,在框内标注指令 内容;菱形框表示要判断其中表达式的值是真 还是假;箭头线则标示指令的流程方向。伪码: 伪码

3、是介于自然语言和程序设计语言之间的一 种类自然语言的表示方法,书写形式自由,容 易转换为程序。 ok2.1.2算法的表示活动图: UML活动图(activity diagram)用于计算流程和工作 流程建模。通常使用活动图来表达顺序程序的流程,这 点与传统的流程图很相似,仅仅图示方法上有所不同。 活动图要素: 1)活动(activity):用一个上下为直线两侧为圆弧 的框表示,并在框内写明活动的名称。 2)转移(transition):采用箭头表示。 3)分支(branch):采用菱形符号。 4)注解(note):采用右上角折叠的矩形表示,说明 UML图中符号的意义,它与被说明的符号间用虚线连

4、接 。 5)起点:起始标志,采用黑色实心圆点表示。 6)终点:结束标志,采用实心的小同心圆表示。ok2.1.3算法描述的三种基本结 构3 循 环 结 构1 顺 序 结 构2 分 支 结 构算法的基本结构: 对算法的理论研究和实践表明,任何算法的描述 都可以分解为三种基本结构或它们的组合,这三 种基本结构是顺序结构、分支结构和循环结构。oknum115;2.1.3算法描述的三种基本结 构(1) 顺序结构【例21】 求两 数之和。寄存器 35显示结果:35num115num220sum 35num220;sumnum1+num2; 演示算法执行过程输出sum;活动图ok2.1.3算法描述的三种基本

5、结 构(2) 分支结构 【例22】 输入三个数,输出其中的 最大数。 x7; y12;z10;if(xy) maxx;else max y;if (zmax) maxz;输出 max;x7y12z10CPUmax12比较比较显示结果:12演示算法执行过程ok2.1.3算法描述的三种基本结 构【例23】求4个整数的和。 0sum4count12x显示结果:60演示算法执行过程123142621642118600count4; /整数个数 sum0; /累加和的初值 while (count0) x输入一个整数;sumsum+x; countcount-1; 输出sum;ok2.2 分支结构程序设

6、计对程序的运行流程进行控制,主要通过执行 专门用来控制流程的语句来实现。分支语句是基本流程控制语句之一。C+提供 三种分支语句。2.2.1 if语句 2.2.2 if语句的嵌套 2.2.4 swich语句 2.2.3 条件运算符“?:” ok2.2.1 if 语句if语句基本格式:1、if (表达式) 语句1;2、if (表达式) 语句1;else语句2;【例2.4】 输入一个年份,判断是否闰年。【例2.5】 从键盘上输入三个整数,输出 其中的最大数。ok嵌套if语句: if 语句中,如果内嵌语句又是if语句,就构成了嵌套if语 句。if 语句可实现二选一分支,而嵌套if语句则可以实现 多选一

7、的多路分支情况。 嵌套有两种形式,嵌套在else分支中: if (表达式1) 语句1; else if (表达式2) 语句2;else if else 语句n; 嵌套在if分支中: if () if () ;else; 2.2.2 if 语句的嵌套【例2.6】用嵌套if语句完成【例2.5】的任务。okelse和if的配对关系:C+规定了if和else的“就近配对”原则,即相距最近 且还没有配对的一对if和else首先配对。按上述规定,第 二种嵌套形式中的else应与第二个if配对。如果根据程序 的逻辑需要改变配对关系,则要将属于同一层的语句放在 一对“”中。如第二种嵌套形式中,要让else和第

8、一个 if配对,语句必须写成: if(表达式1)if (表达式2) 语句1; else 语句2 ;第二种嵌套形式较容易产生逻辑错误,而第一种形式 配对关系则非常明确,因此从程序可读性角度出发,建议 尽量使用第一种嵌套形式。2.2.2 if 语句的嵌套ok配对关系实例: /语句1: if(n%3=0) if(n%5=0) coutscore; switch (score) case A: case a: cout) break; 在多重循环中,break语句只能终止其所在的循环语句。Break语句:【例2.18】 给定正整数m,判定其是否为素数。ok2.4 转向语句continue语句只能用在循

9、环语句中,用 来终止本次循环。当程序执行到continue语 句时,将跳过其后尚未执行的循环体语句, 开始下一次循环。下一次循环是否执行仍然 取决于循环条件的判断。 continue语句与break语句的区别在于, continue语句结束的只是本次循环,而break 结束的是整个循环。 continue语句:ok例:输出1100内3的倍数。 分析:设置整型变量I从1变化到100,依次测试I 是否3的倍数,算法属于穷举法。for (I=1;I ; 关键字enum指明其后的标识符是一个类型的名字,枚举常量 表中列出该类型的所有取值,各枚举常量之间以“,”间隔。 例: enum color_set

10、1 RED, BLUE, WHITE, BLACK; enum week Sun, Mon, Tue, Wed, Thu, Fri, Sat; 枚举常量(或称枚举成员)是以标识符形式表示的整型量,非 法定义实例: enum letter_set a, d, F, s, T; /枚举常量只能是标识符 enum year_set2000,2001,2002,2003,2004,2005;/改为y2000等则正确ok2.7.1 枚举类型的定义 枚举常量:枚举常量代表该枚举类型的变量可能取的值,编译系统 为每个枚举常量指定一个整数值,缺省状态下,这个整数就 是所列举元素的序号,序号从0开始。如上例中R

11、ED、 BLUE、 WHITE、 BLACK的值分别为0、1、2、3。用户也可以在类型定义时为部分或全部枚举常量指定整 数值,在第一个指定值之前的枚举常量仍按缺省方式取值, 而指定值之后的枚举常量按依次加1的原则取值。各枚举常 量的值可以重复,但各枚举常量标识符必须不同。 例: enum fruit_set apple, orange, banana=1, peach, grape enum week Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat; 枚举常量apple、orange、banana、peach、grape的值分 别为0、1、1、2、3。枚举常量Sun

12、, Mon, Tue, Wed, Thu, Fri, Sat的值分别为7、1、2、3、4、5、6。ok2.7.1 枚举类型的定义 枚举型变量定义:定义枚举类型之后,就可以定义枚举类型的变量; 亦可类型与变量同时定义(甚至类型名可省): color_set1 color1, color2;enum Sun, Mon, Tue, Wed, Thu, Fri, Sat weekday1, weekday2;枚举变量的取值范围就是整型数的一个子集。枚举 变量占用内存的大小与整型数相同。ok2.7.2 枚举类型的变量的 使用 枚举类型应用要点:1、赋值包括将枚举常量值赋给枚举变量和两个同类型变量之 间赋

13、值。不能直接将整型量赋给枚举变量,两个不同类型的枚 举变量之间也不能相互赋值。例如: enum color_set2 GREEN, RED, YELLOW, WHITE; color_set2 color3, color4; color3=RED;/合法 color4=color3;/合法,color4的值为RED color1=1;/非法,不能直接将整性常量赋给枚举变量 color2=color3; /非法,color2类型是color_set1,/color3类型是color_set2 ,不能相互赋值ok2.7.2 枚举类型的变量的 使用 枚举类型应用要点: 2、由于枚举常量本身是一个整数

14、值,因此也允许将一个枚举 量赋给整型变量。但不允许将一个整型变量赋给枚举量,即使 整型变量取值合适,也必须将整型变量强制转换为枚举型 。 例如: int i, j; i=color3;/合法,i的值为1 j=GREEN;/合法,j的值为0 color3= i; /非法 3、关系运算可以是同一枚举类型的两个枚举变量之间或一个 枚举变量和一个枚举常量之间,用它们所取的值(序号)比较 。例如: if (color3=color4) coutcolor1/非法cout)和插入运算符(year; if (year%4=0cout=b) max=a; else max=b;if(cmax) max=c;

15、coutabc; coutb) if(ac) max=a; /ab且acelse max=c; /ab且ac) max=b; /ac else max=c; /aabc; coutb else if(baelse max=c; cout=5/单价,折扣,总价int count;/购买件数coutprice;coutcount;if(count0,方程有两个不同实根; *若delta #include using namespace std; int main() float a,b,c; float delta,x1,x2; coutabc; cout0)delta=sqrt(delta); x1=(-b+delta)/(2*a); x2=(-b-delta)/(2*a); cout=s 15%折扣 2000pws;f=0;s1=s;c=s/250;switch(c)default:d=0.15;f+=p*w*(s-3000)*(1-d);s=3000;case 8: case 9: case 10: case 11:d=0.1;f+=p*w*(s-2000)*(1-d);s=2000;case 4: case 5: c

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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