第三章 结构化程序设计  大学课件ppt  自学教程_第1页
第三章 结构化程序设计  大学课件ppt  自学教程_第2页
第三章 结构化程序设计  大学课件ppt  自学教程_第3页
第三章 结构化程序设计  大学课件ppt  自学教程_第4页
第三章 结构化程序设计  大学课件ppt  自学教程_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一篇第一篇 基础知识篇基础知识篇第三章 结构化程序设计教学目标 理解结构化程序设计的思想。 熟悉传统流程图和 N-S流程图的画法。 掌握结构化程序设计的三种基本结构的程序设计方法顺序结构选择结构循环结构 掌握控制转移语句 break、 continue的使用。3.1 结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.1 结构化程序设计的思想及流程图结构化程序设计的思想及流程图结构化程序设计( Structured Programming)的核心是算法设计,基本思想是采用自顶向下和逐步细化的设计方法以及单入单出的控制结构。即将一个复杂问题按照功能进行拆分,并逐层细化到便于理解和描述的程度,最终形成由多个小模块组成的树型结构。其中每个模块都是单入单出的控制结构。结构化程序设计包括三种基本结构:顺序结构、选择结构和循环结构。所有的算法都可以用这三种结构来描述。描述结构化程序设计算法的方法,一般采用流程图的方法。流程图可以分为两种:传统流程图和 N-S流程图,下面分别介绍这两种流程图。3.1 结构化程序设计的思想及流程图结构化程序设计的思想及流程图3.1.2 传统流程图传统流程图是用一些图框表示各种操作,如图 3-1所示。由这些图框组成的流程图可以把解决问题的先后次序直观地描述出来。3.1 结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.1 结构化程序设计的思想及流程图结构化程序设计的思想及流程图顺序结构、选择结构和循环结构的传统流程图的示意如图 3-2所示。传统流程图可以直观表示算法,易于理解,但是它对流程线即箭头的使用没有严格限制,很容易使流程图变得复杂而没有规律。与传统流程图相比, N-S流程图更适合结构化设计。3.1 结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录目 录3.1 结构化程序设计的思想及流程图结构化程序设计的思想及流程图3.1.3 N-S流程图上个世纪 70年代提出了一种新的流程图 N-S 流程图。 N-S流程图去掉了所有箭头,全部算法写在一个矩形框内,在该框内还可以包含从属于它的其它矩形框。顺序结构、选择结构和循环结构的 N-S流程图的示意如图 3-3所示。3.1 结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.1 结构化程序设计的思想及流程图结构化程序设计的思想及流程图例如:求 5!,将算法分别用传统流程图和 N-S流程图表示出来。结果见图。3.1 结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.2 顺序结构顺序结构顺序结构是最简单的一种结构,程序中的语句按照书写的顺序,自上而下地执行。其特点是程序总是从第 1条语句开始执行,依次执行完所有的语句后结束程序。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构 3.3.1 if语句的 3种形式选择结构体现了程序的判断能力,即通过对条件的判断来选择执行不同的程序语句。在 C语言中是用 if语句(又称条件语句)或 switch语句(又称多路开关语句)来构成选择结构的。 if语句一般适用于两路选择,也可以通过嵌套形式来实现多路选择。 switch语句能方便地实现多路选择。3.3.1 if语句的 3种形式1简单选择结构语句形式:if(表达式) 语句执行过程:判断是否 ab,若是则输出 a;若不是 (即 ab)printf( ” %d”,a ) ;3.3 选择结构选择结构3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录【 温馨提示 】 表达式可以是任何类型,如逻辑型、关系型、数值型等,语句序列可以是一个语句也可以是写成复合语句形式的多个语句。3.3 选择结构选择结构【 例 3.1】 输入一个三位整数,依次输出该数的正(负)号和百位、十位、个位数字。图 3-5所示为对应的 N-S流程图。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录程序如下:#includemain() char c1,c2,c3,c4;int x;printf(“请输入一个三位整数: n“);scanf(“%d“, c4=x=0?+:-; /* 将 x的符号存入 c4,运算优先级:先做关系表达式 x=0,然后是条件运算 “ ?: ” ,最后是赋值运算。 */x=abs(x); /* 求三位整数的绝对值 */c3=x%10+48; /* x%10获得个位数字,加 48后转换为对应的字符 */x=x/10; /* 获得 x的百位和十位 */3.3 选择结构选择结构3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录c2=x%10+48; /* x%10获得十位数字,加 48后转换为对应的字符 */c1=x/10+48; /* x/10获得百位数字,加 48后转换为对应的字符 */printf(“%ct%ct%ct%ct“,c4,c1,c2,c3); 【 运行结果 】请输入一个三位整数:-125- 1 2 53.3 选择结构选择结构【 例 3.2】 输入一个学生的语文、数学和英语成绩,如果这三门课的平均成绩在 90分以上,则在屏幕上显示 “ 优秀 ” ,算法如图 3-6所示。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构程序如下:#include main() float yw,sx,yy,average; /* 前三个变量分别存放语文、数学和英语成绩, average存放平均值 */printf(“请输入语文、数学和英语成绩: n“);scanf(“%f,%f,%f“, /* 从键盘上输入三门课的成绩 */average=(yw+sx+yy)/3.0; /* 计算平均成绩 */if(average=90) /* 判断平均成绩是否在 90分以上 */printf(“优秀! n“); /* 在屏幕上显示优秀! */【 想一想 】 当平均成绩低于 90分时,执行结果如何?3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录请输入语文、数学和英语成绩:93,97,88优秀!3.3 选择结构选择结构【 例 3.3】 从键盘上任意输入 3个整数 a, b, c,并按从大到小的顺序显示出来,排序算法流程图如图 3-7所示。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构【 分析 】 输入时 a, b, c三个变量中的数是无序的,通过程序处理后, a中存放最大的数, b中存放次大的数, c中存放最小的数,程序如下。#include main() int a,b,c,t; /* t是为交换而引入的临时变量 */printf(“请输入三个数(用逗号分隔): n“);scanf(“%d,%d,%d“, if(ab成立,则输出 a;否则 (即 ab)printf(”%d”,a );elseprintf(”%d”,b );3.3 选择结构选择结构【 例 3.4】 从键盘上输入三个数,输出较大的数。流程图如图 3-9所示。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构程序如下:#include void main() int x,y,z,max; /*定义所需变量 */printf(“n请输入三个整数: n “); /*输出提示信息 */scanf(“%d %d %d“, /*输入变量的值 */if(xy)max=x;elsemax=y;if(max500) cost = 0.15;else if (number300) cost = 0.10;else if (number100) cost = 0.075;else if (number50) cost = 0.05;else cost = 0;3.3 选择结构选择结构【 温馨提示 】( 1) 在 if语句中,语句 1至语句 n+1可以是单个语句,也可以是由多个语句组成的复合语句。请记住哟:复合语句必须是用一对花括号 “ ” 和 “ ” 把若干 C语句括起来的语句,否则,编译时会出现语法错误。( 2) if语句本身可以嵌套使用, else总是与它上面最近的 if配对。如果要改变这种默认的配对关系,可以在相应的 if语句上加上左、右花括号来确定新的配对关系。请分析下面程序段中 if语句的配对问题。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录int a=1,b=3,c=5,d=4;if(ay)?x:y; printf(“max=%d“,max);/* 用 if语句编程 */main() int x,y,max;printf(“nInput x,y=“);scanf(“ %d%d“, if(xy) max=x;else max=y;printf(“max=%d“,max);3.3 选择结构选择结构 3.3.2 switch语句3.3.2 switch语句switch语句是多分支选择语句。前面用 if语句也可以实现多分支选择结构,但会使 if语句的嵌套层次太多,从而降低了程序的可读性。 switch语句则能更加方便、直接地实现多路选择结构。语句形式:switch (表达式 )case 常量表达式 1:语句 1break;case 常量表达式 2:语句 2break;case 常量表达式 n:语句 nbreak;default : 语句 n+13.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构switch语句的执行过程:先计算 switch语句中表达式的值,再依次与 1n个常量表达式的值进行比较,当表达式的值与某个 case后的常量表达式的值相等时,则执行该 case后的语句,然后执行 break语句跳出switch结构。如果所有常量表达式的值都不等于 switch中表达式的值,则执行 default后的语句。说明:程序执行时,从匹配常量的相应 case处入口,一直执行到break语句或到达 switch结构的末尾为止。在 switch语句中,default和语句 n+1可以同时省略。3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录3.3 选择结构选择结构3.1结构化程序设计的思想及流程图3.2 顺序结构3.3 选择结构3.4 循环结构3.5 编程实例目 录【 例 3.5】 从键盘上输入一个学生的百分制成绩(大于 0小于 100),按分数段评定出相应的等级AE。如果输入的成绩小于等于 0或大于等于100,则输出出错信息。【 分析 】 当输入的百分制成绩在 90100之间时等级为 A;以此类推,成绩在60分以下时等级为 E,其它则提示错误。可以把成绩转换为 010的一个整数。流程图如图 3-12所示。3.3 选择结构选择结构程序如下:#includemain() float score; /* 变量 score存放百分制成绩 */int x; /* 变量 x存放 score除以 10得到的一个整数 */printf(“n请输入一个百分制成绩:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论