第4章结构化程序设计

合集下载

第4章结构化程序设计

第4章结构化程序设计
| p1g3(x)y=f3g3(x)} F3= {(x,y)|p2(x) p3(x)y=f3 g5(x)
| p2(x) p3(x)y=x | p2(x) y=f2 g4(x)}
Chap4 结构化程序设计及正确性证明
二、结构化定理
5 . 程序的函数等价
如果程序P1和程序P2有相同的程序函数,称它们 是函数等价的,或简称是等价的。
I
Chap4 结构化程序设计及正确性证明
结构化定理--证明
结论:
显然,上面程序的功能和原程序的功能是相同的, 因而它和原程序是函数等价的。而且,该程序 是由一个固定的基集合{序列,IF-THENELSE,WHILE-DO}产生的结构化程序,从而 定理得证。
Chap4 结构化程序设计及正确性证明
3. 程序函数的计算
执行树:
g
f
q
g
p
h
r
g
h
r
[p] = { (x,y)| p(x) qf(x)y=gf(x) | p(x) qf(x) r h f(x)y=gh f(x) | p(x) qf(x) r h f(x)y=h f(x) | p(x) … |…
g
f
p
Chap4 结构化程序设计及正确性证明
复合程序和结构化程序
5. 复合程序 若一个基本程序的函数节点用另外一个基本程序
替换, 所产生的正规程序称为复合程序。
6. 结构化程序
由基本程序的一个固定的基集合(例如,序列、IFTHEN-ELSE、While-DO)构造出的复合程序称为结 构化程序。
其次,对原程序种的每一个编号为i,出口线编号 为J的函数节点h,构造一个新的序列程序gi,如图:

第四章结构化程序设计

第四章结构化程序设计

第四章结构化程序设计在计算机编程的领域中,结构化程序设计是一种重要的编程方法和理念。

它就像是为程序搭建起了一个清晰、有序的框架,使得程序更易于理解、维护和扩展。

那么,什么是结构化程序设计呢?简单来说,它是一种编程风格,强调程序的逻辑结构应该清晰、简单、模块化。

通过将复杂的问题分解成一个个较小的、易于管理的模块或函数,每个模块专注于完成一个特定的任务,从而使整个程序的逻辑更加清晰明了。

结构化程序设计的核心原则包括:自顶向下、逐步细化、模块化和结构化。

自顶向下的设计方法意味着我们首先从整体上考虑程序的功能和目标,然后逐步将其分解为更小的子问题。

就好像我们要盖一座房子,首先要规划整体的布局和风格,然后再考虑每个房间的具体设计。

逐步细化则是在自顶向下的基础上,对每个子问题进行更详细的分析和设计。

以盖房子为例,在确定了房间的布局后,我们会进一步考虑每个房间的装修细节、家具摆放等。

模块化是将程序划分为独立的模块,每个模块具有特定的功能。

这些模块可以被重复使用,就像我们可以在不同的房子中使用相同的门窗设计一样。

结构化则是通过使用顺序、选择和循环这三种基本的控制结构来组织程序的流程。

顺序结构是最简单的,按照语句出现的先后顺序依次执行。

比如说,我们先起床,然后刷牙洗脸,这就是一个顺序的过程。

选择结构则根据条件来决定执行不同的分支。

比如,如果天气好,我们就出门散步;如果天气不好,就留在家里看书。

循环结构用于重复执行一段代码,直到满足特定的条件为止。

像是我们每天都要吃饭,直到生命的结束,这就是一个循环的过程(当然,这个例子只是为了帮助理解)。

结构化程序设计带来了许多好处。

首先,它提高了程序的可读性。

清晰的结构和模块化的设计使得其他人更容易理解程序的逻辑和功能。

这对于团队合作开发项目非常重要,因为一个易于理解的程序可以减少沟通成本和错误。

其次,它增强了程序的可维护性。

当需要对程序进行修改或扩展时,我们可以很容易地找到相关的模块进行修改,而不会影响到其他不相关的部分。

第4章 结构化程序设计PPT课件

第4章  结构化程序设计PPT课件
第4章 结构化程序设计
主要内容
► if语句 ► switch语句 ► while语句 ► do...while语句 ► for语句 ► 循环嵌套
► break语句和continue语句 ► 语句标号和goto语句 ► 程序案例
► 小结
2
共64页
4-1 if语句
►if语句的3种形式 ►if语句的嵌套 ►条件运算符和条件表达式
►{ ► case 常量表达式1:语句1 ► case 常量表达式2:语句2
►…
►… ► case 常量表达式n:语句n ► default:语句n+1
►}
20
共64页
说明
► 语句的执行过程 执行switch开关语句时,先计算表达式的值,然后将它逐 个与case后的常量表达式的值进行比较,当switch后的表 达式的值与某一个常量表达式的值一致时,程序就转到此 case后的语句开始执行,执行完后,程序流程转到下一个 case后的语句开始执行;如果没有一个常量表达式的值与 switch后的值一致,就执行default后的语句。
► 表达式 switch后的表达式可以是整型或字符型,也可以是枚举类 型的,对于其他类型,原来的C语言标准是不允许的,但 在新的ANSI C语言标准中允许表达式的类型为任何类型。 switch语句中使用字符常数时,这些常数都被自动变换成 整数。
21
共64页
接上
►常量表达式 每个case后的常量表达式只能是常量组成的 表达式。
►条件表达式一般形式为: ►表达式1?表达式2:表达式3
18
共64页
说明
► 条件运算符的执行过程:先求解表达式1的值,若 为非0时,整个条件表达式的值就是表达式2的值; 若表达式1的值为0时,整个条件表达式的值是表 达式3的值。

004第4章结构化程序设计

004第4章结构化程序设计

4.3.1 条件语句
if (InputScore >= 70) { if (InputScore >= 80) { if (InputScore >= 90) { OutputScore = "优秀"; //优秀 } else { OutputScore = "良好"; //良好 } } else { OutputScore = "中等"; //中等 } }
if (Score >= 60) { Console.WriteLine("该成 绩合格。"); } else { Console.WriteLine("该成 绩不合格。"); } }
}
4.3.1 条件语句

如果程序的逻辑判定关系比较复杂,可以用if…else嵌套语句 形式如下: if(表达式1) if(表达式2) if(表达式3) ... 语句1; else 语句2; else 语句3; else 语句4;
}
4.3.1 条件语句

2. if…else语句 if…else语句是一种更为常用的选择语句。if…else语 句的语法如下: if(表达式) { 语句块A; }
else
{ 语句块B; }
【例4-3】根据输入的学生
成绩Score的值,显示 其是否及格。
using System; class Score { static void Main() { Console.WriteLine("请您 输入学生成绩:"); int Score = int.Parse(Console.ReadLi ne());//转换为整数

【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及

第四章 结构化程序设计

第四章 结构化程序设计

4.2.1赋值语句、复合语句
赋值语句 如果在表达式的尾部加一个“;”就构成 了一条表达式语句,而在赋值表达式的尾部 加其尾部加上一个就是“;”就构成了赋值语 句 a=5;
4.2.1赋值语句、复合语句
复合语句
复合语句是用一对花括号把若干语句括起来 构成的,例如: { a=a+3; b=a/2; c = a+b; } 复合语句通过一个花括号将多条语句在逻辑 上构成一个整体,复合语句在语法上被视为是 一条语句
4.2.4格式化输出函数printf()
①格式符
表格4.1种列出了几种常用格式符及其功能。
4.2.4格式化输出函数printf()
②宽度说明符 宽度说明符通常由以下三种形式:
m:m是一个整数,用来指定输出数据的宽度,当 数据的实际宽度大于指定宽度时,按实际宽度输出。 如果实际宽度小于指定宽度,则按指定宽度输出, 若无特殊说明,数据右对齐,左边补空格。 例如: printf(“%2d,%7d,%d”,123,123,123); 输出:123, 123,123
4.2.4格式化输入函数scanf()
格式控制字符串是用来说明输入数据的输 入格式。输入项表列中列出输入项,如果是 多个输入项,则输入项之间用“,”隔开。 例如
scanf("%d,%c",&a,&b);
格式控制字符串
输入项表列
& 是取地址运算符,&a,&b表示分别变 量a、b的地址
4.2.4格式化输入函数scanf()
C语言程序设计
主讲人:
第四章 结构化程序设计
4.1结构化程序设计概述
结构化程序设计理论由Bohn Jacopini于 1966年提出,结构化程序设计思想和方法的引 入,使程序结构清晰,容易理解、使用和维护。 结构化程序有三种基本结构组成:顺序结构, 选择结构,循环结构

第四章 结构化程序设计的三种结构

第四章 结构化程序设计的三种结构

第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。

printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。

格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。

(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。

转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。

格式字符串中的普通字符,原样输出。

例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。

2.输出项表输出项表是可选的。

如果要输出的数据不止1个,相邻2个之间用逗号分开。

下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。

结构化程序设计

结构化程序设计

结构化程序设计
结构化程序设计
结构化程序设计是一种软件开发方法,旨在通过模块化和顺序化的方式来设计和编写程序。

它强调程序应该被组织成一系列可重复使用和可维护的模块,以便增强开发效率和代码的可读性。

在结构化程序设计中,程序被划分为多个小的、相对独立的模块。

每个模块执行一个特定的任务,并且可以与其他模块进行通信和交互。

这种模块化的设计使得程序变得更加可靠和易于理解,因为每个模块都是独立的,它的功能可以被单独测试和验证。

,结构化程序设计还鼓励使用顺序、选择和重复等基本的控制结构来组织程序的执行流程。

顺序控制指的是按照代码的顺序依次执行语句,选择控制指的是根据条件选择执行不同的语句块,而重复控制则是通过循环执行一段代码多次。

结构化程序设计的目标是提高程序的可理解性和可维护性。

通过模块化的设计,可以将一个复杂的问题分解成多个简单的子问题,从而减少开发过程中的错误和bug。

结构化程序设计还使得程序的
测试和调试变得更加容易,因为每个模块都是相对独立的,可以单独进行测试和调试。

在实践中,结构化程序设计可以通过使用编程语言中的函数、类和模块等概念来实现。

通过将程序划分为多个函数或者类,可以实现程序的模块化和重用。

而通过使用模块化的设计,可以将程序的不同部分放入不同的模块中,从而提高代码的可读性和可维护性。

,结构化程序设计是一种重要的软件开发方法,可以提高程序的可读性、可维护性和可重用性。

通过将程序划分为多个模块,并使用基本的控制结构来组织程序的执行流程,可以更好地管理和开发复杂的软件系统。

结构化程序设计是每个程序员都应该熟悉和掌握的软件开发技术。

第4章结构化程序设计

第4章结构化程序设计
数据库应用基础
第 4章
结构化程序设计
重点:控制结构 、程序实例
东方学院 信息分学院 陈国顺
内 容 பைடு நூலகம் 航
学习提要 教学内容
要点回顾
习题/实验
2
学习提要与目标
理解结构化程序设计的概念 熟练掌握程序控制的基本结构 掌握控制结构嵌套
掌握过程与自定义函数
3
目 录
4.1 程序文件设计 4.2 程序控制的基本结构 4.3 子程序和用户自定义函数 4.4 本章小结
19
4.2.2
选择结构
1.二路分支选择结构
格式:IF <条件表达式> [THEN]
<语句序列1>
[ELSE <语句序列2>] ENDIF
20
4.2.2
选择结构
【例4.4】如果在例题4.2中,根据行李重量的不同,采用不同的收费标准。即当 重量不超过50kg时,按每千克0.60元收费;当重量超过50kg,超出50kg的 部分按每千克0.90元收费,而其中的50kg仍按每千克0.60元收费。试编写 程序计算托运费。 程序代码如下: *****CH4-4.PRG ***** SET TALK OFF CLEAR INPUT "请输入货物的重量(Kg):" TO W IF W<=50 F=W*0.60 ELSE F=50*0.6+(W-50)*0.9 ENDIF ?"货物重量"+ALLTRIM(STR(W,19,2))+" 千克需要的托运费为:"+ALLTRIM(S TR(F,19,2))+"元" 21 SET TALK ON
31
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
32
2.多分支选择结构
格式: DO CASE CASE <条件表达式1> <语句序列1> [CASE <条件表达式2> <语句序列2> ... CASE <条件表达式n> <语句序列n>] [OTHERWISE <语句序列n+1>] ENDCASE
35
4.2.2
选择结构
功能:依次判断<条件表达式I>(I=1、2、3n) 的逻辑值,当值为真(.T.)时,控制执行对应的< 语句序列I>(I=1、2、3n)。OTHERWISE 表 示当所有的<条件表达式I>(I=1、2、3n)的值 都为假(.F.)时,则执行<语句序列n+1>。 说明:CASE条件语句的多少根据问题而定。当只 有一条CASE条件语句行时,DO CASE控制结构实 现的功能与IF控制结构相同。 注意:如果有多个条件表达式的值为真,也只执行 第一个满足条件的<语句序列>。
5
4.1
程序文件设计
4.1.1 结构化程序设计基础
4.1与执行
6
结构化程序设计基本特点
一个结构化程序应该具有如下主要特点:只有一 个入口;只有一个出口;没有死语句(永远执行 不到的语句);没有死循环(无限制的循环)。 程序的质量标准是“清晰第一,效率第二”。
1966年,博姆(Bohm)和雅可比尼(Jacopini) 二位学者提出了只用三种基本的结构就能实现任 何单入口单出口的结构,这三种基本的结构就是 “顺序结构”、“选择结构”、“循环结构”。
7
算法表示
常用的流程图符号
8
【例4.1】下面的命令集合就是Visual FoxPro的一个 程序:程序的功能是为指定职工的基本工资增加20 0元
循环结构
1.DO WHILE…ENDDO 格式:
DO WHILE <条件表达式> <语句序列> [EXIT] [LOOP] <语句序列> &&执行ENDDO的下一条语句 &&执行DO WHILE语句
ENDDO
功能:当<条件表达式>的值为.T.时,重复执行DO ... ENDD O之间的<语句序列> ,直到<条件表达式>的值为.F.时,结 束循环操作。
4.2.1 顺序结构
4.2.2 选择结构
4.2.3 循环结构
4.2.4 多种结构的嵌套
21
4.2.1 顺序结构
顺序结构如下图所示,按照语句序列1、语句序 列2…自上而下逐条顺序执行。顺序结构是最简 单也是最基本的结构。
22
例:求“职工”表中指定部门(如直销、零售)全体职工的基本 工资总额。
*****CH4_2'.PRG ***** NOTE 求指部门基本工资总额 SET TALK OFF CLEAR USE 职工 ACCEPT "请输入指定部门:" TO BM SUM 基本工资 TO JBGZ FOR 部门=BM ?BM+"部全体职工的基本工资为:"+STR(JBGZ,8,2) USE SET TALK ON
49
4.2.3
循环结构 (已知循环次数)
开始
设置环境 置循环变量初值 >终值 N 执行循环体 修改循环变量 Y
【例4.10】求1+2+3+…+10的和 分析:
设变量:I,S 使I在1~10之间变化 S的初值为0,且使S=S+I
输出结果
结束
50
4.2.3
循环结构(已知循环次数)
程序代码如下: *****CH4-10.PRG ***** SET TALK OFF CLEAR S=0 &&设置用于存放累加和的初值 I=1 &&设循环控制变量I的初值 DO WHILE I<=10 &&循环条件为:I<=10 S=S+I &&实现累加,将I的值加上原来的S再赋值给S I=I+1 &&循环变量I加步长1 ENDDO ?"1+2+3+…+10=",S &&输出结果 SET TALK ON 如果I不是到10,而是N呢?
4.常用环境设置语句 SET CENTURY ON/OFF SET DATE TO USA/JAPAN…. SET MARK TO SET DEFAULT TO 默认路径 SET DELETED ON(有效)/OFF SET ESCAPE ON (有效)/OFF SET EXACT ON (有效)/OFF SET EXCLUSIVE ON (有效)/OFF SET FILTER TO <条件> SET SAFETY ON (有效)/OFF SET TALK ON (有效)/OFF SET CONSOLE ON/OFF (该命令在程序中起作用)
数据库应用基础
第4章
结构化程序设计
重点:控制结构 、程序实例
天津科技大学 经济与管理学院 信息管理教研室
学习提要与目标
理解结构化程序设计的概念 熟练掌握程序控制的基本结构 掌握控制结构嵌套 掌握过程与自定义函数
3
4.1
程序文件设计
程序文件是为了解决实际问题而编写的命 令集合。这些命令集合以一定的结构有序 地编排在一起,并以文件的形式存储在磁 盘上,这种文件称为命令文件或程序文件。 在Visual FoxPro中命令文件的扩展名为.P RG(执行时自动编译为目标文件,扩展名 为.FXP)。
SET TALK OFF 改进例4-5 CLEAR DO WHILE .T. INPUT "请输入一个数值型数据:" TO A IF INT(A/2)=A/2 ?A," 是偶数!" ELSE ?A," 是奇数!" ENDIF WAIT "继续吗?(Y/N)" TO YN IF UPPER(YN)<>'Y' IF UPPER(YN)="Y" EXIT LOOP ENDIF ELSE ENDDO EXIT SET TALK ON ENDIF
24
课堂练习:
销售表按职工号对数量分类求和并输出结果。
25
4.2.2
选择结构
1.二路分支选择结构
格式:IF <条件表达式> [THEN]
<语句序列1>
[ELSE <语句序列2>] ENDIF 必须成对出现!
28
程序代码如下: *****CH4-5.PRG ***** SET TALK OFF CLEAR INPUT "请输入一个自然数:" TO A IF INT(A/2)=A/2 &&A%2=0或MOD(A,2)=0 ?A,"是偶数!" ELSE ?A,"是奇数!" ENDIF SET TALK ON
51
【例4.10】求1+2+3+…+10 的和 分析:倒计数 设变量:I,S 使I在10~1之间变化 S的初值为10,且使S=S+I
SET TALK OFF CLEAR S=0 I=10 S=S+I I=I-1 &&累加和的初值 &&设循环变量I的初值 &&实现累加 &&修改循环变量
42
4.2.3
循环结构
在处理实际问题时,常常需要重复某些相同 的操作,即对某一行或多行语句重复执行多次, 解决此类问题,就要用到循环结构,其控制结构 如下图所示。在Visual FoxPro中有三种循环语句:
DO WHILE…ENDDO。
FOR…ENDFOR。 SCAN…ENDSCAN。
43
4.2.3
13
(2)字符串接收语句
格式:ACCEPT [<字符表达式>] TO <内存变量> 功能:等待用户从键盘输入数据并赋给指定的<内 存变量>。 说明:从键盘输入的数据只能是字符型常量,输入 的汉字不需用定界符。 例如: ACCEPT “请输入职工姓名:" TO ZGXM ?ZGXM
14
4.2
程序控制的基本结构
38
4.2.2
选择结构
【例4.8】在例4.3的基础上,根据职工的总销售金额给出5 档业绩评价:优(≥6000),良(≥4000),中(≥20 00),合格(≥1000),不合格(<1000)。 分析:输入的职工有可能存在,也可能不存在,因此要加以 判断。我们已经在例4.3中对销售金额的计算作过分析, 根据销售金额的不同,运用多路分支结构,可以做出销售 业绩的评价。程序流程如图4-13所示。
USE 职工 ACCEPT "请输入职工号:" TO ZGH IF !EOF() REPLACE 基本工资 WITH 基本工资+200 ?"没有找到!" LOCATE FOR 职工号= ZGH ?职工号,姓名, 基本工资 USE
9
*****CH4-1.PRG ***** NOTE 修改并显示指定职工的基本工资 SET TALK OFF CLEAR USE 职工 ACCEPT "请输入职工号:" TO ZGH LOCATE FOR 职工号= ZGH IF !EOF() REPLACE 基本工资 WITH 基本工资+200 ?职工号,姓名, 基本工资 ELSE ?"没有找到!" ENDIF USE SET TALK ON
10
程序设计的基本命令
1.程序注释语句
相关文档
最新文档