1 / 21
文档名称:

研究生课程_程序语言设计原理教程_第07章.ppt

格式:ppt   页数:21
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

研究生课程_程序语言设计原理教程_第07章.ppt

上传人:3346389411 2013/3/27 文件大小:0 KB

下载得到文件列表

研究生课程_程序语言设计原理教程_第07章.ppt

文档介绍

文档介绍:第7章程序控制
冯·诺依曼机器模型变量的时空特性对程序中求值的次序是十分敏感的
表达式的求值次序是最低层的程序控制,在它的上层是四类控制:顺序控制、选择控制、重复(迭代)、函数或过程调用
再上一层是对程序模块的控制。包括一个程序的各模块组织以及它们与环境的相互关系
并发控制也是一类控制,它可以在语句级,特征块和模块级实施并发控制
,
一般概述
语句级控制由于GOTO危害导致结构化程序。
1966年Boehm和Jacopini回答了这个问题:任何流程图的计算逻辑都可以用顺序组、条件选择组、迭代组三种程序结构实现。
保留GOTO的积极作用限制GOTO的副效应, 把它们改头换面变为比较安全的顺序控制器(sequencer)。
命令式语言只要有赋值语句V∶=EXP,简单的逻辑条件IF(e)和GOTO语句就可以编出一切计算程序(输入/出除外)。
顺序控制
S1; S2
进一步扩展可为: S1; S2; …;Sn
Ada语句较全:
简单_语句::=空_语句
|赋值_语句| 过程调用_语句
|goto_语句| 入口调用_语句
|出口_语句| 返回_语句
|引发_语句| 夭折_语句
|延迟_语句| 代码_语句
其中空_语句,赋值_语句,延迟语句,代码_语句不影响控制和转移,exit(出口)语句,raise(引发)语句,abort(夭折)语句,return(返回)语句都是顺序控制器。
条件选择控制
if(e)无结构。Algol60改为if…then…else结构,
退化是if…then
悬挂else
if E1 then if E2 then S1 else S2 E1为‘真’‘假’均可执行S2
解决if E1 then begin if E2 then S1 else S2 end Pascal,Algol,C
if E1 then begin if E2 then S1 end else S2
if E1 then if E2 then S1 endif else S2 endif Fortran-77,Ada
if E1 then if E2 then S1 else S2 endif endif
└───就近匹配───┘
嵌套if和case e是同一表达式仅值不同
可改换ease
Ada 的case语句
IF exp1 THEN
ST1
ELSEIF exp2 THEN
ST2
ELSEIF exp...
...
ELSE
SF3
ENDIF
case Exp is switch (exp)
when v1=> S1; case v1: S1;
when v2=> S2; break;
... case v2: S2;
when vm|vn=>Sn; break;
when others => St; default: St;
end case; next;
执行一个Si跳到end case 没有break要顺序执行,直到next
e1
e2
e3
S1
S2
S3
C以条件表达式实现选择控制
a=b<c ? b:c if (b<c) a=b; else a=c;
条件表达式条件语句
命令式语言大量依赖顺序命令, 纯函数式语言完全依赖写嵌套函数调用。
迭代控制
迭代一般用于处理同构的、聚集数据结构的重复操作,诸如数组、表、文件。
显式迭代(循环),显示迭代有以下几种:
无限循环
· 有限循环的三种形式:
while_do
do_until
do_while_do
FORTRAN
初始上界增量
DO L I=EXP1, EXP2, EXP3
Ada
for BACKDAY in reverse DAY 'RANGE loop
在循环控制变量和表达式约定上几十年来一直在演变
C采用迭代元素(Iteration element)
iterate (<控制元素>)<迭代域> = iterate (<a>; <b>; <c>)<迭代域>
对迭代元素不加任何限制。语句,表达式,连续赋值,空均可。先算<a>,再算<b>,若不为零,则算<迭代域>然后执行<c>。若为‘零’出口。若不为‘零’再算<b>,若不为‘零’重复以上步骤,若为‘零’则出循环。
计数循环
例: 用for循环计算表中元素之和
设表list是一简单结构, 一个成分是值value,另一个成分是指向下一表元素的指针next。可以有以下六种写法:
[1] 先赋sum初值进入正规for 循环:
sum=0;
sum += current ->value;
for (curren

最近更新

2025年沙洲职业工学院单招职业倾向性测试题库.. 44页

2025年河北金融学院马克思主义基本原理概论期.. 12页

2025年治多县幼儿园教师招教考试备考题库附答.. 30页

2025年洛宁县招教考试备考题库附答案解析(必.. 31页

2025年浙江工商大学马克思主义基本原理概论期.. 12页

2025年深圳职业技术大学马克思主义基本原理概.. 13页

2025年湖南三一工业职业技术学院单招职业技能.. 43页

2025年湖南第一师范学院马克思主义基本原理概.. 12页

2026年主管中药师考试备考题100道及答案【夺冠.. 38页

2026年主管中药师考试备考题100道附答案(培优.. 37页

2025年琼结县幼儿园教师招教考试备考题库附答.. 30页

2026年医学微生物学习题集(综合卷) 40页

2025年祁县招教考试备考题库及答案解析(夺冠.. 29页

2025年绥宁县招教考试备考题库含答案解析(夺.. 30页

2025年芜湖县幼儿园教师招教考试备考题库附答.. 32页

小学历史与文化知识竞赛题库100道及参考答案一.. 37页

2025年西安建筑科技大学华清学院马克思主义基.. 12页

新安全生产法知识竞赛试题库及完整答案 43页

2025年锦州医科大学医疗学院马克思主义基本原.. 12页

2025年高台县招教考试备考题库附答案解析 31页

2026年主管中药师考试备考题100道附参考答案(.. 37页

2026年中医住培带教师资理论考核题库100道带答.. 40页

2026年主管中药师考试备考题100道及参考答案【.. 38页

2026年山东理工职业学院单招职业技能测试题库.. 45页

最新全国政法队伍教育整顿知识竞赛试题库【夺.. 40页

小学历史与文化知识竞赛题库100道附参考答案【.. 37页

最新煤气操作证考试题100道及参考答案(综合题.. 39页

最新煤气操作证考试题100道(模拟题) 39页

最新全国政法队伍教育整顿知识竞赛试题库及答.. 39页

2026年安徽城市管理职业学院单招职业适应性考.. 37页