[IT认证]哈尔滨工业大学软件工程课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

韩 静
ENDDO Print the Maximum value

IF Max<A(I) Set Max=A(I)
ENDIF ENDDO
Print Max
2019/5/14





请按下列给出的文字要求,用 PDL 描述其该模块的算法


设某模块的功能是:读入任意长的

一段英文课文,将其分解为单字。然后





DO WHILE <条件描述>

<程序块/伪代码语句组>;

ENDDO
REPEAT UNTIL <条件描述>

<程序块/伪代码语句组>;

ENDREP

--- 重复型结构
2019/5/14





DO LOOP <条件描述>

<程序块/伪代码语句组>;

EXIT WHEN
ENDLOOP
IF condition X1

THEN BEGIN
execute process f
IF condition X6
THEN REPEAT UNTIL condition X7
execute process i

ENDREP

ELSE BEGIN

execute process g
execute process h
4、复杂结构应该用基本控制结构进行组合嵌套来实现 5、严格控制GOTO语句
2019/5/14

……

F0=F(a); F1=F(b);

if(F0*F1<=0)

{ X0=a; X1=b;

for(i=1;i<=n;i++)

{ Xm=(X0+X1)/2; Fm=F(Xm);

if(abs(Fm)<eps||abs(X1-X0)<eps)

ENDCASE

ENDIF

ENDREP
execute process j
END
2019/5/14

第六章 程序编码

滨 工
6.1 编码的目的


编码的目的: 是使用选定的程序设计

语言,把模块的过程性描述翻译为用该语
言书写的源程序(源代码)


模块的过程性描述 编码 源程序

(不可执行的)
(可执行的)
…… DEFAULT: < 缺省或错误case: <程序块/伪代码语句组>;


ENDCASE

----- 多路选择结构
2019/5/14




业 大
READ/WRITE TO <设备> <I/O表>

--- 输入/输出结构
韩 静 萍
2019/5/14




业 大
Enter a vector Set Maximum to the value of the first






结构化程序设计是一种设计程序的技术,它采用
自顶向下逐步细化的设计方法和单入口(Single entry)
单出口(Single exit)的控制结构。 这种控制结构包
括有:

顺序、选择和循环。


2019/5/14
单入口


M1 a=0,b=1


……
a++

for(a=1,b=1;a<=100,a++)
element in the vector

DO for each second one to the last
IF value of THEN element is greater
Input array A
than the Maximum value
Max=A(1)
Set Maximum to value of the element DO for I=2 to N




M


韩 静 萍
无节制地使用了GOTO语句所产生的程序流程
2019/5/14




一、结构化程序设计的原则



1、使用语言中的顺序、选择、重复等有限的基本控制结构表示程序
2、选用的控制结构只准许有一个入口和一个出口
3、程序语句组成容易识别的块(Block),每块只有一个入口和一个
出口
韩 静 萍
END
ENDIF
END
2019/5/14





ELSE CASE OF Xi

WHEN condition X2 SELECT

DO WHILE condition X5
execute process C
ENDDO
WHEN condition X3 SELECT process d
WHEN condition X4 SELECT process e

输出一个单词表,并指出每个单词在课

文中所出现的次数。
2019/5/14
请将下列的 PDL 表示的某模块的过程性描述,

改为用:1、N-S 图 2、PAD 图表示


……

execute process a REPEAT UNTIL condition X8

execute process b


DO FOR <下标=下标表,表达式>
静 萍
<程序块/伪代码语句组>;
ENDFOR
wenku.baidu.com
--- 重复型结构
2019/5/14






CASE OF <case 变量名>;

WHEN < case 条件1> SELECT <程序块/伪代码语句组>;
WHEN < case 条件2> SELECT <程序块/伪代码语句组>;
goto finish;
if(F0*Fm>0)
{ X0=Xm; F0=Fm;}

{ if (b>=20)

break;
if (b%3==1)
{ b+=3;
b+=3
F
a<=100
T b>=20 T
continue;
}

b-=5;

}
T
F
b%3==1
F

……
b-=5
单出口
2019/5/14




业 大
…… If (A.LT.B) goto 120
M2
A,B,C

If (B.LT.C) goto 110 100 write(6,*) C
2019/5/14



工 业
Winberg 的程序实验结果

结果
评判
清晰性
效率
开发

名次 编码要求
项目
程序
输出 内存数 语句数 时间
程序可读性最佳
1-2
2
3
3
4
输出可读性最佳
1-2
1
5
5
2-3

占内存最小
4
4
1
2
5

语句数最少
5
3
2
1
2-3

开发时间最短
3
3
4
4
1
2019/5/14

6.2 结构化程序设计 (Structured Programming)
F A<B T
goto 140
110 write(6,*) B goto 140
B<C F
F A<C

120 If(A.LT.C) goto 130
T
T

goto 100

130 write(6,*) A
140 continue
打印B 打印C 打印A
----- 单入口多出口结构
2019/5/14

相关文档
最新文档