Microsoft PowerPoint - sicp03-1.ppt
|
|
- 勇 吴
- 6 years ago
- Views:
Transcription
1 3. 模块化, 对象和状态 (1) 本章讨论与状态有关的编程问题 本节课讨论 : 赋值和局部状态 基于状态变化的程序设计 引入赋值的得与失 函数式和命令式程序设计 命令式程序设计的缺陷 求值的环境模型 环境模型中的求值规则 建立过程对象, 过程应用, 局部状态, 内部定义 程序设计技术和方法裘宗燕, /1 系统设计和组织的策略 前面讨论的主要问题是 : 如何组合基本过程和基本数据 如何构造各种复合对象 ( 组合过程 / 数据 ) 抽象在控制和处理程序复杂性中的重要作用 有效设计大型系统, 还需要一些组织系统的原则 只有一集高效算法, 不足以构造出良好的大型系统 系统的功能分解, 结构组织和管理与算法一样重要 ( 或更甚之 ) 为了系统化地完成设计, 特别需要一些模块化策略 模块化就是把复杂系统分解为一些边界清晰 易于独立理解的部分 每个部分的内部成分之间关系较密切, 内聚力强 ; 不同部分具有良好的功能分离, 相互之间的交互清晰 容易认识和处理 良好模块化分解出的部分可以分别设计, 分别开发和维护 程序设计技术和方法裘宗燕, /2
2 设计和组织策略 假设构造一个系统的目标是希望模拟一个真实世界的系统 一种有效策略 : 根据被模拟系统设计程序的结构 针对实际物理系统中的每个对象, 构造一个对应的程序对象 针对实际系统里的每种活动, 在计算系统里实现一种对应操作 让所开发的系统的活动比较直接地反映被模拟系统的活动 采用这种设计系统策略, 有一个重要问题必须考虑 真实世界的系统是变化的 ( 相应的, 人的认识也不断深入 ) 这些变化在人工系统里的反映, 通常是需要在系统里增加新对象或新操作, 或者需要修改已有对象和操作的行为 为了有效完成模拟, 我们希望构造出的模拟系统在遇到变化时 o 在修改时只需要局部做, 不需要大范围改变程序, o 在扩充时只需简单加入对象或操作, 局部修改 / 加入相关操作 程序设计技术和方法裘宗燕, /3 设计和组织策略 本章将讨论两种系统的组织策略 : 把系统看成是由一批相互作用的对象组成 o 真实系统中的对象随着时间的进展不断变化 o 模拟它们的系统对象也吸引相应地变化 把系统看作一种信号处理系统 关注流过系统的信息流 基于对象和基于流的设计途径都对语言提出了新要求 基于对象, 需要有在存在期间保持其标识但本身又能变化的对象 这是一种新的计算模型, 带来许多本质性变化, 包括有关计算的基本观点, 基本操作, 抽象的计算模型及其实现 基于流的技术要求一种延时求值技术 常规程序工作者也正在考虑基于流的计算的描述问题 程序设计技术和方法裘宗燕, /4
3 对象 : 状态和变化 对象的观点是对世界的一种看法 : 世界由一批事物 ( 对象 ) 组成, 每个对象有其状态和行为方式 对象的状态随时间不断变化, 其行为受到历史的影响 例 : 一个银行账户有状态 对 能取出 100 元吗 的回答依赖于该账户此前存钱和取钱的历史 对同一个问题, 不同时刻的回答可能不同 为模拟真实世界的对象, 程序里需要用状态变量表示计算对象的状态 选择什么样的状态变量 ( 如, 记录余额还是记录全部交易历史 ), 要根据对实际对象行为的认识和所做模拟的 ( 预期 ) 目标 状态变量的信息应足以确定对象的后续行为 系统里的不同对象相互有联系, 可能通过交互影响彼此的状态 有些对象联系更紧密, 可能形成分组, 或构成大系统里的子系统 程序设计技术和方法裘宗燕, /5 模拟真实世界 基于对象状态的观点是组织系统的计算模型 ( 程序 ) 的有力手段实际上, 这也就是常规的程序设计采用的计算模型 基于状态的观点倡导的系统模块化方式 : 把系统分解为一组计算对象, 用它们模拟真实系统中对象的行为 用计算系统里所有计算对象的全体模拟真实系统的整体行为 现实世界里真实对象随着时间而改变状态, 要模拟它们 程序里就需要有随着运行不断改变状态的对象 为此需要改变程序对象状态的操作主要是赋值操作 赋值, 就是修改对象的状态变量常规语言中的变量,OO 里的对象等等, 都是对象 程序设计技术和方法裘宗燕, /6
4 局部状态变量 现在考虑模拟一个银行账户 : 假定过程 withdraw 是从该账户提取现金的操作 可能出现下面操作序列 : (withdraw 25) 75 (withdraw 60) 15 (withdraw 25) "Insufficient funds" (withdraw 10) 5 上面操作序列中两次调用 (withdraw 25) 取 25 元, 得到的结果不同 与前面计算数学函数的过程相比, 这个过程的性质完全不同 withdraw 的行为与时间有关, 依赖于某些随时间改变状态的变量 以前的操作历史会影响后面操作的行为 程序设计技术和方法裘宗燕, /7 变量和赋值 考虑银行账户和 withdraw 的实现 用变量 balance 表示账户余额,withdraw 定义为依赖它的过程 : (define balance 100) (define (withdraw amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds")) begin 是特殊形式, 它逐个求值参数, 返回最后一个参数的值 在写 (set! balance...) 的地方不能用 (define balance...) define 在其所在的定义域里创建变量及其约束 在这里将建立 withdraw 里局部的 balance, 不能实现需要的功能 更具体的语义细节后面介绍 程序设计技术和方法裘宗燕, /8
5 变量和赋值 set! 表示赋值 (set! balance (- balance amount)) 使 balance 重新约束到由表达式 (- balance amount) 计算出的值 赋值操作 set! set! 是赋值运算符, 一般形式是 (set! <name> <new-value>) set! 找到最接近其使用处的名字为 <name> 的已经有定义的变量, 修改它的值约束 程序设计技术和方法裘宗燕, /9 说明 一般形式的 lambda 表达式和 define 形式 其 体 部分可以写多个表达式, 其求值方式与 begin 表达式一样 lambda 表达式的参数表之后可以写多个表达式, 其一般形式是 (lambda (x ) <exp1> <expn>) 语义 : 顺序求值 <expi>, 以最后一个表达式的值作为值 define 定义过程的一般形式与此类似 : (define (f x ) <exp1> <expn>) 调用时逐个求值过程体中的表达式, 以最后一个表达式的值为值 如果表达式不改变变量状态, 写多个表达式就完全没必要 有了 set!( 包括有了 define), 前面表达式的求值有可能影响后面的表达式, 在过程体里写一系列的表达式就有用了 下面有很多这方面的例子 程序设计技术和方法裘宗燕, /10
6 局部状态变量 前面定义可行但不妥 : balance 是全局的, 任何过程都能访问和修改 不安全 应把它改为 withdraw 里的局部变量 : (define new-withdraw (let ((balance 100)) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds")))) let 创建一个包含局部变量 balance 的环境, 并将它初始化为 100 new-withdraw 的功能和前面的 withdraw 一样 但 balance 是局部的, 任何其他操作都不能触动它 程序设计技术和方法裘宗燕, /11 局部状态变量 set! 和局部变量的结合形成一种通用编程技术 下面将一直用这种技术构造有局部状态的计算对象 这一技术带来一个新问题 : 代换模型对这种程序失效了, 需要新的计算模型 ( 后面介绍 ) 下面考虑 new-withdraw 的一些问题和变形 把 new-withdraw 修改为一种创建 提款处理器 的过程 : (define (make-withdraw balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))) 形参是局部变量, 定义 make-withdraw 可以不用 let 程序设计技术和方法裘宗燕, /12
7 局部状态变量 调用 make-withdraw 得到一个新的提款处理器, 如 : (define acc1 (make-withdraw 100)) 使用实例 : (define W1 (make-withdraw 100)) (define W2 (make-withdraw 100)) (W1 50) 50 (W2 70) 30 (W2 40) "Insufficient funds" (W1 40) 10 建立的两个提款处理器相互无关 程序设计技术和方法裘宗燕, /13 局部状态变量 可以扩充为创建银行账户的过程, 使账户不仅可提款, 还可存款 : (define (make-account balance) (define (withdraw amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds")) (define (deposit amount) (set! balance (+ balance amount)) balance) (define (dispatch m) (cond ((eq? m 'withdraw) withdraw) ((eq? m 'deposit) deposit) (else (error "Unknown req -- MAKE-ACCOUNT" m)))) dispatch) 这个过程返回一个带局部环境的对象 ( 过程 ) 以相应消息作为输入, 该对象将返回过程 withdraw 或 deposit 程序设计技术和方法裘宗燕, /14
8 使用实例 : 局部状态变量 (define acc (make-account 100)) ((acc 'withdraw) 50) 50 ((acc 'withdraw) 60) "Insufficient funds" ((acc 'deposit) 40) 90 ((acc 'withdraw) 60) 30 可创建任意多个独立的账户对象 : (define acc2 (make-account 200)) ((acc2 'withdraw) 50) 150 程序设计技术和方法裘宗燕, /15 赋值 : 得与失 赋值给程序的理解带来了新问题 另一方面, 把系统看成一组有内部状态的对象, 也是实现模块化设计的强有力技术 下面看一个例子 实例 : 设计随机数生成过程 rand, 希望对它反复调用能生成一系列整数, 这些数具有均匀分布的统计性质 假定已有一个过程 rand-update 对一个数调用它将得到下一个 ( 随机 ) 数 x 2 = (rand-update x 1 ) x 3 = (rand-update x 2 ) 反复做可得到一个 ( 具有随机性的 ) 整数序列 程序设计技术和方法裘宗燕, /16
9 随机数生成 可定义一个带局部状态的过程 rand, 实现一个随机数生成器 : (define rand (let ((x random-init)) (lambda () (set! x (rand-update x)) x))) rand-init 取某个整数 ( 或具有整数值的变量 ) 也可以直接使用函数 rand-update 生成随机数 使用形式 x 2 = (rand-update x 1 ) 但这种方式使用起来很麻烦 o 需要用新变量接受结果 o 每次使用都需要注意送给它的参数 o 如果用错, 生成的整数序列的随机性就没保证了 程序设计技术和方法裘宗燕, /17 使用或不使用赋值 : 得与失 下面考虑引入赋值的得与失 先看一个对比实验, 看看使用赋值或不使用赋值的情况比较程序的清晰和模块化性质实例 : 利用随机数功能, 实现蒙特卡罗模拟 蒙特卡罗方法 : 用大量随机数做试验 统计试验的结果得到相应的结论 具体试验 : 两个整数之间无公因子的概率是 6/π 2 下面用蒙特卡罗方法验证这一结果 程序设计技术和方法裘宗燕, /18
10 基于状态和赋值的解 采用状态变量和赋值 ( 使用 rand) 的定义 (define (cesaro-test) (= (gcd (rand) (rand)) 1)) (define (monte-carlo trials experiment) (define (iter trials-remaining trials-passed) (cond ((= trials-remaining 0) (/ trials-passed trials)) ((experiment) (iter (- trials-remaining 1) (+ trials-passed 1))) (else (iter (- trials-remaining 1) trials-passed)))) (iter trials 0)) (define (estimate-pi trials) ; trials: 试验次数 (sqrt (/ 6 (monte-carlo trials cesaro-test)))) 定义中的 monte-carlo 是核心过程 系统的结构很清楚 很容易看清, 这个实现确实反映了我们的想法 程序设计技术和方法裘宗燕, /19 不使用赋值的解 不用赋值而直接用 rand-update, 也可以写出程序 : (define (estimate-pi trials) (sqrt (/ 6 (random-gcd-test trials random-init)))) (define (random-gcd-test trials initial-x) (define (iter trials-remaining trials-passed x) (let ((x1 (rand-update x))) (let ((x2 (rand-update x1))) (cond ((= trials-remaining 0) (/ trials-passed trials)) ((= (gcd x1 x2) 1) (iter (- trials-remaining 1) (+ trials-passed 1) x2)) (else (iter (- trials-remaining 1) trials-passed x2)))))) (iter trials 0 initial-x)) 方法可行 但可以看到, 只用函数式过程,random-gcd-test 必须显式操作随机数 x1 和 x2, 迭代时把 x2 作为新输入 程序设计技术和方法裘宗燕, /20
11 蒙特卡罗模拟的分析 做这个试验需要两个随机数, 可能有试验用到三个或更多随机数 函数式写法必须时时注意维护这些随机数, 越多越难维护 比较两种实现 : 不用赋值的代码里没有很好地体现出蒙特卡罗方法本身 ( 没有这个概念 ), 相关行为与其他操作交织在一起 在用 rand 的版本里蒙特卡罗方法是独立过程, 随机数的使用细节被屏蔽在 rand 过程的内部 看到的一些现象 : 在复杂计算中, 从其中一部分观察, 其他部分都像在随着时间不断变化, 它们通常都隐藏了一些变化的细节 ( 内部状态 ) 如果想基于这种认识这样分解系统, 最直接的方式就是用计算对象模拟系统随时间变化的行为, 用局部变量模拟部分的内部状态, 用赋值模拟状态变化 程序设计技术和方法裘宗燕, /21 简单总结 本例讨论了处理状态变化的两种方式 : 通过显式计算其中通过额外的参数传递随时间变化的状态 采用局部状态变量和赋值自然地利用变化的状态 后一方式可能得到更好模块化的系统但也带来许多麻烦 ( 下面讨论 ) 在没有赋值的时候 以同样参数调用同一过程总得到同样结果 这种过程就像是在计算数学的函数 无赋值的编程称为函数式编程 程序设计技术和方法裘宗燕, /22
12 引进赋值的代价 有了赋值 (set!), 语义就不能用简单代换模型解释了 而且 描述这种语言程序里的对象和赋值的理论框架都不可能是简单的 不可能做出具有很漂亮的数学性质的简单模型 看下面两个过程 : (define (make-decrementer balance) (lambda (amount) (- balance amount))) (define D (make-decrementer 25)) (D 20) 5 (D 10) 15 (D 10) 15 (define (make-simp-withdraw balance) (lambda (amount) (set! balance (- balance amount)) balance)) (define W (make-simp-withdraw 25)) (W 20) 5 (W 10) -5 (W 10) -15 程序设计技术和方法裘宗燕, /23 引进赋值的代价 代换模型能解释 make-decrementer 但它无法解释 make-simplified-withdraw 不能解释为什么两个 (W 10) 调用会得到不同结果 代换模型里名字实际上只是值的代号 可以通过代换消除掉其中的名字 代换模型就是反复用值代换名字, 最后得到结果 ( 过程体的代换也是用值代换名字的一种形式 ) 有赋值后变量就不是代表值的简单名字 应该看作是保存值的位置, 其值可以改变 赋值不仅破坏了简单的计算模型, 其意义还更深远 在计算模型里引入状态和变化, 许多基本概念都出了问题 第一个问题 : 什么是同一个 (sameness)? 程序设计技术和方法裘宗燕, /24
13 引进赋值的代价 用同样参数两次调用 make-decrementer, 得到的是同一个东西吗? (define D1 (make-decrementer 25)) (define D2 (make-decrementer 25)) 虽然 D1 和 D2 名字不同, 但它们永远表现出同样行为 在任何计算中任意相互替代, 不会观察到任何差异 在任何程序上下文里, 把使用 D1 的地方换上 D2( 或相反 ), 不会看到程序行为有任何改变 调用 make-simplified-withdraw 两次, 得到 : (define W1 (make-simplified-withdraw 25)) (define W2 (make-simplified-withdraw 25)) W1 和 W2 有独立行为, 在程序里不能任意相互替代 例 : (W1 20) 5 (W1 20) -15 (W2 20) 5 程序设计技术和方法裘宗燕, /25 同一和变化 如果一种语言支持 同样的东西可以相互替换, 而且这种替换不会改变表达式的值 ( 程序的意义 ), 称这种语言具有引用透明性 纯函数式语言具有引用透明性 失去引用透明性, 同一个 的概念会变得很复杂 现实生活也是如此, 在现实中弄清什么是 同一个 也很困难 你不可能两次趟过同一条河 你还是你吗? 赋值打破了语言的引用透明性 同样东西 的概念不再简单, 不能通过描述形式直接确定 要确定一个替换会不会改变表达式的意义变得很困难 对程序进行推理也变得很困难 下面用实例说明这一问题对于编程的影响 程序设计技术和方法裘宗燕, /26
14 同一和变化 假定 Paul 和 Peter 有银行账户, 其中有 100 块钱 下面是这一事实的两种模拟 第一种模拟 : (define peter-acc (make-account 100)) (define paul-acc (make-account 100)) 另一种模拟 : (define peter-acc (make-account 100)) (define paul-acc peter-acc) 两种情况下, 开始时 Paul 和 Peter 都看到自己账户里有 100 元 但随后的提款活动却会让他们发现两种情况是不同的 问题 : 他们使用的是否 同一个 账户? 构造计算模型时, 很容易把这两种情况弄错 特别是两个账号共享时, 使用改变状态的操作 ( 赋值 ), 操作一个账户将影响另一账户, 这种影响没有在程序里明确表示 程序设计技术和方法裘宗燕, /27 同一和变化 程序里两个不同描述实际指同一个东西时, 称为别名 (aliasing) 如果不同数据结构之间出现了共享, 从一条途径出发修改就可能产生 修改 了另一数据结构的 副作用 如果程序员对这件事不清楚, 就可能由于疏忽造成程序错误 ( 很常见, 称为副作用错误 ) 另一情况 : 如果 Paul 和 Peter 只能检查账户而不能取款 ( 是只读账户, 其他人也不能改这两个账户 ), 是否还应认为这两种模拟不同呢? 如前面的有理数对象, 一旦建立后, 其内容永远也不会变 所谓的 不变对象 ( 另如 Java 的字符串或 Integer 对象 ) 如 : 网页, 访问其原本或者副本, 没差别 ( 假定不修改 ) 在一些情况下, 究竟是实际上是引用了两个内容相同的对象, 还是正好引用到同一对象, 并没有实质性差别 程序设计技术和方法裘宗燕, /28
15 命令式编程的缺陷 基于赋值的程序设计称为命令式程序设计 命令式编程是常规软件开发中使用最广泛的编程范式 采用命令式程序设计的语言需要用更复杂的计算模型解释 很容易出现一些在函数式程序设计中不会出的错误, 即与操作的时间有关的错误 ( 因为操作的效果依赖于历史 ) 重新看前面的迭代式求阶乘过程 ( 函数式程序 ): (define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* counter product) (+ counter 1)))) (iter 1 1)) 用命令式技术写这个程序, 可以通过赋值直接修改 product 和 counter 的值, 不需要通过参数传递 程序设计技术和方法裘宗燕, /29 命令式编程的缺陷 按命令式方式写出的程序 : (define (factorial n) (let ((product 1) (counter 1)) (define (iter) (if (> counter n) product (begin (set! product (* counter product)) (set! counter (+ counter 1)) (iter)))) (iter))) 上面过程里有两个赋值, 调换其顺序后程序还正确吗? (set! counter (+ counter 1)) (set! product (* counter product)) 显然不是! 在命令式程序设计里, 赋值顺序非常重要, 而函数式程序设计没有这种问题 后面还会看到命令式程序设计的更多问题 程序设计技术和方法裘宗燕, /30
16 回顾 : 有局部状态的对象 扩充的创建银行账户的过程, 账户可以提款和存款 : (define (make-account balance) (define (withdraw amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds")) (define (deposit amount) (set! balance (+ balance amount)) balance) (define (dispatch m) (cond ((eq? m 'withdraw) withdraw) ((eq? m 'deposit) deposit) (else (error "Unknown req -- MAKE-ACCOUNT" m)))) dispatch) 这个过程返回一个具有局部状态的对象 ( 也是一个过程 ) 以相应消息作为输入, 该对象将返回过程 withdraw 或 deposit 程序设计技术和方法裘宗燕, /31 C 语言 : 带局部状态的过程? 在 C 语言里, 可以定义有局部状态的过程 ( 函数 ) 吗? 考虑利用函数的局部静态变量 定义一个简单的计数器过程 : typedef enum ACCmd {reset, inc, dec} ACCmd; int counter(accmd command) { static int count = 0; switch (command) { case reset: count = 0; break; case inc: count++; break; case dec: count--; break; } return count; } 只能定义单一的包含简单状态的对象, 定义包含复杂状态的对象或者对象生成器需要更复杂的结构和使用规则 更一般情况, 通常需要通过存储管理和数据结构技术 程序设计技术和方法裘宗燕, /32
17 环境和求值 一般的组合表达式都包含变量 求值表达式的过程中用到变量的值 为能找到变量的值, 需要在某个地方记录它 记录变量约束值的结构称为 环境 环境确定了表达式求值的上下文 没有环境, 表达式求值就没有意义 即使求值 (+ 1 1), 也需要环境为 + 提供意义 代换模型 ( 回忆 ): 整数和实数的值直接取得, 变量代换为约束值 组合式求值将过程作用于一组参数, 先求值所有参数, 而后 o 对基本过程, 直接得到它作用于实参的结果 o 对复合过程, 用实参代换过程体的形参后求值得到的过程体 程序设计技术和方法裘宗燕, /33 环境和求值 有了赋值后, 代换模型就失效了 变量已不再是代表值的简单名字, 而表示某种 存储位置 有关位置保存着值, 而保存的值可以随计算进展而改变 可行的求值模型必须能反映变量值的变化 处理赋值的求值模型需要有存储的概念 下面的新模型称为环境模型 几个概念 : 环境 : 框架 (frame) 的链接结构 框架 : 可空的表格, 项表示变量约束 在一个框架里, 每个变量至多有一个约束 每个框架有一个指向其外围框架的指针 ( 外围框架指针 ), 全局框架在最上层, 没有外围框架 一个变量在一个环境里的值, 就是它在该环境里的第一个有其约束的框架里的约束值 例 :x 在环境 A 中的值, 在环境 B 中的值 程序设计技术和方法裘宗燕, /34
18 求值的环境模型 实际上, 前面代换模型也需要环境的支持 由 define 定义的变量, 其定义值需要保存到环境里 基本过程和用户定义过程的定义都需要保存在环境里, 使用时, 通过检索环境得到相应的定义 为描述解释器的意义, 我们假定有一个全局环境 它只有一个全局框架, 其中包含所有基本过程名的意义约束 没执行任何程序之前, 系统的当前环境就是全局环境 随着程序的执行, 当前环境不断变化 o 可能在已有框架 ( 包括全局框架 ) 中增加新约束 o 可能修改某个 ( 某些 ) 已有框架里的约束 o 可能增加新的框架作为当前框架, 原来的当前框架可能变成新框架的外围框架 程序设计技术和方法裘宗燕, /35 环境模型下的求值 在新求值模型里, 组合表达式的基本求值规则仍是 : 求出组合式的各子表达式的值 将运算符表达式的值作用于运算对象表达式的值 赋值 set! 的执行可能改变当前环境里已有的约束,define 的执行可能导致环境中增加新的约束 在基于新模型的求值过程中, 过程定义, 调用和退出导致的环境变化是最重要最需要关注的事项 首先, 对 lambda 表达式的求值将得到一个过程对象 过程对象是一个对 (c, e), 其中 c 是过程的代码,e 是环境指针 : 代码是 lambda 表达式的体和参数 环境指针指向求值该 lambda 表达式时应该使用的环境 下面通过例子说明求值过程中的一些基本情况, 包括 : 求值过程中框架的创建, 过程对象的创建, 等等 程序设计技术和方法裘宗燕, /36
19 建立过程对象和约束 在全局环境中求值 (define (square x) (* x x)) 实际上就是求值 : (define square (lambda (x) (* x x))) 求值效果是在全局环境增加了 square 的约束, 它约束于新建的过程对象 右图 : 在原有其他变量约束之外, 新建立了 square 的约束 square 约束于一个过程对象 其代码部分包括参数和过程体 环境指针指向全局环境, 也就是这个 lambda 表达式的求值时所在的环境 方框表示框架, 其中是一些变量 - 值约束 两圆圈表示 lambda 表达式求值建立的过程对象 程序设计技术和方法裘宗燕, /37 过程应用 在全局环境中求值组合表达式时, 第一个参数的值是一个过程对象 1. 建立新环境 o 用过程对象的参数表和实参创建一个新框架 o 建立以新框架为当前框架, 以环境指针为外围框架的新环境 2. 在新环境里求值过程体 求值 (square 5): 求值时先创建新环境 E1, 建立一个新框架作为当前框架, 其中 x ( 形参 ) 约束到 5( 实参值 ) 在 E1 中求值过程体 (* x x) 得到结果 25 程序设计技术和方法裘宗燕, /38
20 环境模型下的求值规则 上述规则是一般的 : 规则中的外围环境通过环境指针确定 ( 未必是全局框架 ) 建立过程对象时确定了环境, 建立新环境的规则都一样 求值的两条基本规则 : 在环境 E 里求值一个 lambda 表达式 : 建立一个过程对象 其代码是该 lambda 表达式的体和参数 其环境指针指向 E 将一个过程对象应用于一组实参的过程 : 1. 构造一个新框架, 其中存入过程的形参与对应实参的约束, 该框架以过程对象的环境指针作为外围框架, 形成一个新环境 2. 在这个新环境中求值过程体 程序设计技术和方法裘宗燕, /39 define 和 set! 现在详细说明 define 和 set! 的不同 define 的作用是在当前环境的当前框架里定义一个符号 : 在当前框架里建立一个约束, 将被定义符号约束到给定值 如果当前框架已有这个符号, 则改变其约束 ( 注意书上的注释 ) (set! < 变量 > <value>) 的作用 : 在当前环境里查找 < 变量 > 的约束 如果当前框架里有, 约束就确定了 ; 否则到外围框架去找 查找可以沿外围环境指针前进多步 把找到的约束中变量的约束值修改为由 <value> 算出的值 如果环境中没有 < 变量 > 的约束 ( 查找到达全局框架但仍未找到 ), 就报告变量无定义错误 新求值规则比代换模型复杂很多 它表现了 Scheme 解释器工作方式, 可以根据它实现 Scheme 解释器 ( 第 4 章 ) 下面看几个例子 程序设计技术和方法裘宗燕, /40
21 简单过程的应用 设有定义 (define (square x) (* x x)) (define (sum-of-squares x y) (+ (square x) (square y))) (define (f a) (sum-of-squares (+ a 1) (* a 2))) 三个定义建立起的环境见图 对 (f 5) 的求值 求值时新建一个环境, 其中有一个新约束 每个调用建立新框架, 同一函数的不同调用各建立框架, 相互无关 这里没有特别关注返回值的传递问题 程序设计技术和方法裘宗燕, /41 框架和局部状态 有局部状态的对象计算的情况 提款处理器代码 : (define (make-withdraw balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))) 求值该定义使 make-withdrew 约束于创建的过程对象 调用 (define W1 (make-withdraw 100)) 建立环境 E1, 在其中求值过程体 求值 lambda 表达式建立一个过程对象 ( 左 ), 其环境指针指向 E1, W1 约束于这个过程对象 程序设计技术和方法裘宗燕, /42
22 框架和局部状态 现在求值组合式 ( 过程调用 ): (w1 50) 调用建立起新环境 ( 右 ) 并在其中求值 从环境框架里找变量的值 set! 表达式求值改变环境中 balance 约束, 其值变为 50 再次调用 W1 将建立一个新框架, 与上面建立的框架无关, 但其外围框架仍是 E1 过程求值中将再次找到包含 balance 的框架 E1 并修改 balance 的约束值 程序设计技术和方法裘宗燕, /43 框架和局部状态 建立另一提款处理器 (define W2 (make-withdraw 100)) 新提款处理器 W2 的局部状态与 W1 的局部状态无关 两个提款处理器是两个过程对象, 各自独立变化 两个提款处理器 ( 过程对象 ) 的代码完全相同 两者共享同一代码, 还是各有一份代码, 是系统的实现细节 不同实现方式不影响程序语义, 但可能影响资源消耗和效率 聪明的编译器可能让它们共享代码, 以提高内存利用的效率 程序设计技术和方法裘宗燕, /44
23 内部定义 考虑带有内部定义的过程 : (define (sqrt x) (define (good-enough? guess) (< (abs (- (square guess) x)) 0.001)) (define (improve guess) (average guess (/ x guess))) (define (sqrt-iter guess) (if (good-enough? guess) guess (sqrt-iter (improve guess)))) (sqrt-iter 1.0)) 求值 (sqrt 2) 建立框架 E1, 其中有形参 x 的约束和内部过程约束 ( 右图只表示了一个过程 ) 内部过程名约束到过程对象 ( 代码和一个环境指针 ) 它们的环境指针都指向 E1 首次调用 good-enough? 时的现场情况如右图 程序设计技术和方法裘宗燕, /45 内部定义 与内部过程定义有关的一些情况 : 在建立过程对象时 内部过程的名字与相应过程对象的约束在一个局部框架里, 与其他框架里的同名对象 ( 变量或过程 ) 无关 内部过程对象的环境指针指向外围过程调用时的环境, 因此内部过程可以直接使用其外围过程的局部变量 ( 形式参数等 ) 每次调用有内部过程定义的过程时, 将新建一个框架 包括重新建立其中的各内部过程对象 代码的处理见前面说明, 不同过程对象之间是否共享代码是系统的实现细节, 不影响语义 应注意过程对象的环境指针的作用, 它决定所建新环境的结构, 即, 决定新的当前框架的外围框架是哪个框架 程序设计技术和方法裘宗燕, /46
24 set! 和 define 的不同 ( 总结 ) 在执行 set! 时 1. 找到被赋值变量在当前环境中的约束 2. 修改这个约束中的约束值 查找变量的过程从当前框架开始 如果在一个框架里没找到要找的变量, 就到其外围框架里去找 如果这一查找到达全局框架仍未找到变量的约束, 报错 执行 define 时 只考虑当前框架, 不考虑当前环境中的其他框架 在当前框架里为被定义变量建立约束 o 如果当前框架里不存在这个变量, 就建立新变量约束 o 如果当前框架里已有该变量, 就改变其约束 ( 有些 Scheme 实现在这种情况下报错或发出警告 ) 程序设计技术和方法裘宗燕, /47 总结 变动和赋值 (set!), 是模拟复杂系统的有力手段也导致计算的代换模型失效, 需要更复杂的模型来解释计算过程 用有局部状态的过程实现具有局部状态变量的对象 引入状态和状态变化带来的效益和问题 模块化手段, 变化的封装 同一和变化, 引用透明性的丧失 操作和时间 求值的环境模型 lambda 表达式的求值建立新过程对象 调用过程时需要创建新框架 注意 set! 和 define 的意义, 局部定义等 程序设计技术和方法裘宗燕, /48
OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double
More informationMicrosoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]
指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++
More informationOOP with Java 通知 Project 4: 4 月 19 日晚 9 点
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d
More informationSDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基
开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些
More informationchap07.key
#include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,
More information无类继承.key
无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255
More information什么是函数式编程?
函数式编程 FUNCTIONAL PROGRAMMING byvoid@byvoid.com 什么是函数式编程? 真相是 从停机问题开始 Bug 假设有停机判定算法 function halting(func, input) { } return if_func_will_halt_on_input; 充分利用停机判定 function ni_ma(func) { if (halting(func,
More information100 5 ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ 1 7 30 13 19 1 7 40 56 13 19 1 7 405 58 13 19 (0 5 10 15 20 40 ) ( ) 14 80 160 320 20 X = x1 + x2 + x3 + Λ Λ x n X X x x x x 1 + 2 + 3+ Λ Λ n = n X X
More information第 期 曹 源 等 形式化方法在列车运行控制系统中的应用
第 卷 第 期 年 月 交通运输工程学报 曹 源 唐 涛 徐田华 穆建成 为了确保列车运行控制系统设计和开发的正确性 比较了仿真 测试和形式化 种能够验证 系统设计正确性的方式 根据列车运行控制系统对安全的苛求性 提出了 个与系统安全相关的重要特性 即实时性 混成性 分布 并发 性 反应性 并分析了与这些特性相关的具体形式化方法 通 过对每种形式化方法的数学基础和应用范围的分析和归类 给出了各种方法的优势和不足
More informationMicrosoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]
函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)
More information《C语言程序设计》教材习题参考答案
教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,
More information4.C ( 详细解析见视频课程 绝对值 01 约 21 分 15 秒处 ) 5.E ( 详细解析见视频课程 绝对值 01 约 32 分 05 秒处 ) 6.D ( 详细解析见视频课程 绝对值 02 约 4 分 28 秒处 ) 7.C ( 详细解析见视频课程 绝对值 02 约 14 分 05 秒处 )
[ 说明 ] 1. 以下所指教材是指朱杰老师的 管理类联考综合能力数学套路化攻略 2. 该文档中所标答案和参见的教材答案, 与视频有冲突的, 以视频答案为准! 基础篇 第 1 章 数 1.2.1 整数例题答案 : 1. A ( 详细解析见教材 P7 例 2) 2. D ( 详细解析见视频课程 数的性质 约 10 分 53 秒处 ) 3. C ( 详细解析见教材 P7 例 3) 4.E ( 详细解析见视频课程
More informationOOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP
More informationMicrosoft PowerPoint - sicp01-3.ppt
1. 构造过程抽象 (3) 要点 : 高阶过程 : 以过程为参数和 / 或返回值的过程 lambda 表达式 let 表达式 用过程作为解决问题的通用方法 求函数的 0 点 求函数的不动点 返回过程值 过程是语言里的一等公民 (first-class object) 程序设计技术和方法裘宗燕,2014-3-6 - (1) 高阶过程 过程是抽象, 一个过程描述了一种对数据的复合操作 如求立方过程 :
More informationé ê
廖光洪 朱小华 杨成浩 徐晓华 基于南海 年夏季调查航次诊断计算的流函数场 选取越南以东偶极子发生海域 进行 不同的声层析观测站位设置实验 模拟计算声线传播时间信息 然后应用基函数重建方法进行了 流函数场的模拟反演研究 讨论了不同随机观测误差对反演结果的影响 研究结果表明该方法是 可行的 在所选取的约 海域内 在观测海域外围配置 个声层析观测站位就能够很好地重构原流函数场 空间分辨率约为 可以分辨模拟海域中尺度涡场结构
More information帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)
More information论文,,, ( &, ), 1 ( -, : - ), ; (, ), ; ;, ( &, ),,,,,, (, ),,,, (, ) (, ),,, :. : ( ), ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ), ( ),,,, 1 原译作 修补者, 但在英译版本中, 被译作
* 夏传玲 : 本文简要回顾了国内外定性研究在最近 多年的发展概况, 总结 了定性研究的六个发展趋势和分析策略上的三种流派 在上述两种背景下, 本文探讨了计算机辅助的定性分析给定性研究带来的机遇和挑战, 特别是它和手工操作对比时的优势和劣势, 以及应用这种定性分析技术所可能面临的困难 : 定性研究定性分析 文化差异,, (, ),,,, ( - ) ( - ) ( - ) ( - ) ( - ) (
More informationPython a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2
Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790
More informationMicrosoft PowerPoint - sicp01-2.ppt
1. 构造过程抽象 (2) 表达式, 值,define 过程的内部定义和块结构 分析过程 ( 静态, 描述 ) 产生的计算进程 ( 动态, 行为 ) 计算进程的类型 线性递归 线性迭代 树形递归 计算的代价 程序设计技术和方法裘宗燕,2014-3-6 / 1 表达式的一些情况 变量如果一个变量没定义, 对它求值是错误, 求值中断如果变量有定义, 求值得到它当时的关联值 内部过程对内部过程名求值得到某种特殊信息
More informationWWW Slides
函数和环境 通用和专用的方法, 实例 局部函数定义 变量和作用域 ( 全局和局部 ) 嵌套的作用域 名字和变量 ( 函数 ) 的约束关系 global 和 nonlocal 声明, 变量查找 函数执行中的环境变化 计算概论 (Python 程序设计 ) 裘宗燕,2015/4/2//-1- 通用和专用的方法 解决计算问题, 存在一些通用的方法, 针对具体问题也可能开发出一些具体的专用方法 前面讨论过几个计算中常用的通用方法
More information工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 A B C D E F G 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 甘特图的优点 : 直观明了 ( 图形化概要 ); 简单易懂 ( 易于理解 ); 应用广泛 ( 技术通用 ) 甘特图的缺点 : 不能清晰表示活动间的逻辑关系 WBS 责任分配矩阵 ( 负责〇审批
More informationCC213
: (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,
More information¼ ½ ¾ ¼ ½ ¾
回归传统 历史学视野中的资本主义 刘光临 虽然明清资本主义萌芽研究和西方现代史学都使用了资本主义一词 但双方并无相同的理论背景 资本主义作为一个成熟的学科概念是由 世纪末 世纪初的历史学家和强调历史面向的政治经济学家 可简称为 德国历史学派 一起创造出来的 强调从历史而不是从抽象的理论中寻求社会变化的原因 资本主义萌芽这一概念的启用 实际上是对欧洲近代历史的严重误读 有鉴于此 在今后的中国历史研究中应该用资本主义来取代资本主义萌芽
More informationOOP with Java 通知 Project 4: 5 月 2 日晚 9 点
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =
More informationMicrosoft Word - 新1-12.doc
实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性
More informationOOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double
More informationC/C++ 语言 - 循环
C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf
More information《C语言程序设计》第2版教材习题参考答案
教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =
More information器之 间 向一致时为正 相反时则为负 ③大量电荷的定向移动形成电 流 单个电荷的定向移动同样形成电流 3 电势与电势差 1 陈述概念 电场中某点处 电荷的电势能 E p 与电荷量 q Ep 的比值叫做该点处的电势 表达式为 V 电场中两点之间的 q 电势之差叫做电势差 表达式为 UAB V A VB 2 理解概念 电势差是电场中任意两点之间的电势之差 与参考点的选择无关 电势是反映电场能的性质的物理量
More informationMicrosoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]
Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];
More information第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持
第 一 篇 知 己 知 彼, 百 战 不 殆 基 本 评 估 篇 第 一 章 认 识 自 我 我 就 是 一 座 金 矿 人 啊, 认 识 你 自 己! 塔 列 斯 ( 希 腊 学 者 ) 要 想 知 道 去 哪 儿, 必 须 先 知 道 你 现 在 在 哪 儿 和 你 是 谁 茜 里 娅. 德 纽 斯 ( 美 国 职 业 指 导 学 家 ) 本 章 提 要 了 解 认 识 自 我 在 职 业 生
More informationPowerPoint Presentation
Typed Lambda Caculus,+, 程序设计语言理论 张昱 0551-63603804,yuzhang@ustc.edu.cn 中国科学技术大学计算机科学与技术学院 References PFPL Chapters: 4 Statics, 5 Dynamics, 6 Type Safety, 7 Evaluation Dynamics Chapters: 10 Product Types,
More information社会科学战线 年第 期跨学科研究 ( ),, (, ),,, 1 ( ), ( -, ),,,,,,,,, (, ) ( ),,,,,,,,,,,, ( ) ( ),,,, ;,,,,,,, ( ),,,,,,,, ( ), ( ),,,,, :,,, (,, ),,, :,, ( % ),,,,,
: 汪丁丁贾拥民 (, ) 本文是一个从理论出发, 最终又回到理论的 案例研究 在特定的社会网络中, 人与人之间的交互作用形成习俗 习俗如果能够经受住不断发生的独僻性冲击, 就可以成为传统 这是对梅纳德史密斯的演化稳定策略概念的拓展 独僻性相当于变异或者突变, 演化稳定策略只经受了一次独僻性的冲击, 只有在随机地不断出现的冲击下保持稳定的习俗, 才能成为培顿杨所定义的传统, 这就是随机稳定均衡 义乌市场的发展,
More informationOOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;
More information大侠素材铺
编译原理与技术 词法分析 Ⅱ 计算机科学与技术学院李诚 13/09/2018 主要内容 记号 (token) 源程序 词法分析器 getnexttoken 语法分析器 符号表 词法分析器的自动生成 正则表达式 NFA DFA 化简的 DFA 词法分析器的生成器 Lex: flex jflex Fst lexicl nlyzer genertor 2/51 Regulr Expr to NFA 正则表达式
More informationKubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.
Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes
More information新版 明解C++入門編
511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,
More informationFY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
More information1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->
目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController
More information数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数
.. 数学分析 (I) 短课程 [Part 2] 自然数 整数和有理数 孙伟 华东师范大学数学系算子代数中心 Week 2 to 18. Fall 2014 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014 1 / 78 3. 自然数理论初步 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014
More information,,,,,,, ;,, ;, ;, (, / ),, ;,,.,,,,,,,,,,,,,,,,, ;,,,,,,, 1, :,,, ;,,,, (, ),,,,, 1,,, (,, )
刘世定 内容提要 : 本文在嵌入性视角的引导下, 进入关系合同理论领域 对关系合同的 分析, 以威廉姆森的合同治理结构理论作为基点 在分析了他的理论脉络和隐含假 设后, 本文提出了三个假定, 即约前关系导入 多元关系属性 对关系属性的有限控 制 在新的假设下, 首先讨论了合同治理结构和嵌入关系结构之间不同的对应关系, 并特别探讨了两者间的结构性摩擦 继而, 在关系合同的研究中引入了委托 - 代理关系,
More information<4D6963726F736F667420576F7264202D20313034B0EABB79A4E5B8D5C344BBBCB065AAA9>
嘉 義 縣 104 年 新 港 溪 北 六 興 宮 正 黑 麵 三 媽 盃 小 六 學 藝 競 試 國 文 試 卷 一 一 般 選 擇 題 : 1. 下 列 選 項 中, 哪 一 組 字 的 讀 音 是 相 同 的?(A) 躡 足 / 攝 影 (B) 淒 慘 / 妻 兒 (C) 漠 不 關 心 / 眼 角 膜 (D) 韋 編 / 偉 人 2. 下 列 內 的 部 首, 何 者 正 確?(A) 黎 明
More information凡 例 一 高 淳 县 历 史 悠 久, 文 物 古 迹 颇 丰, 为 全 面 系 统 地 保 存 各 类 文 物 资 料, 介 绍 文 物 工 作 情 况, 达 到 教 育 后 人, 提 供 专 业 研 究 的 目 的, 特 编 纂 本 志 二 本 志 采 用 记 志 述 图 表 等 多 种 体 裁, 翔 实 记 载 高 淳 县 自 旧 石 器 时 代 至 民 国 年 间 的 文 化 遗 存 文
More information康體藝術
320 321 0.12% (340 ) 3.44% (1.001 ) 0.30% (860 ) 5.93% (7.542 ) 7.83% (2.277 ) ( 7,960 1,810 ) 3.36% (9,770 ) 9.08% (2.642 ) 20.27% (5.898 ) ( ) 29.67% (8.63 ) 322 π 323 324 325 326 327 328 329 330 331
More information新・明解C言語入門編『索引』
!... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177
More information不对称相互依存与合作型施压 # # ( # ( %
世界政治 年第 期 不对称相互依存与 合作型施压 美国对华战略的策略调整 王 帆! 尽管中美两国间的相互依存度在加深 但保持不对称的相互依存 关系仍是美国对华政策的重点 在不对称相互依存的前提下 美国对中国开始实施了 一种新的合作型施压策略 该策略成为美国对华战略的手段之一 作者分析了在相互 依存条件下美国对华实施合作型施压政策的背景 目的 相关议题和实施手段 并以谷歌事件 哥本哈根气候谈判以及人民币汇率问题这三个案例
More information硕士论文正文
... 3... 11... 18... 21... 26... 29... 31... 35... 41... 44... 48... 52... 54... 56... 58... 61... 62... 64... 65... 67... 69... 71... 73... 76... 78... 80... 82... 84 ... 85... 87... 92... 93... 94...
More information2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二
2015 年 度 部 门 决 算 报 表 ( 含 三 公 经 费 决 算 ) 2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二 上 级 补 助 收 入
More information目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016
档 案 局 2016 年 度 部 门 预 算 1 目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016 年 度 市 级 部 门 财 政 拨 款 支 出 预
More information中国与欧洲关系 年
中国与欧洲关系 年 周 弘 本文全面回顾了中国与欧洲共同体 欧洲联盟及其成员国 年至 年间政治和经济关系的发展历程 分析了当前中欧关系取得的进展和存在的问题 作者认为 年来中国与欧洲关系的发展变化见证并体现了世界格局的演变以及中国和欧洲这两大很不相同的世界力量自身的发展变化 中欧之间不断深入和拓展的交往使双方都从中获益 而这种交往所创造出来的体制机制和方式方法也堪为人先 中欧关系能否在第二个 年中顺利发展
More information邱 江 吴玉亭 张庆林 西南师范大学心理学院 重庆 选取 个具体内容的条件命题作为实验材料 以小四 初一 高一 大三的学生为被试 探讨了命题内容对青少年条件推理的影响机制及其发展特点 结果表明 对同一年级而言 不同内容的条件命题的相同推理 之间表现出显著的差异 对不同年级而言 相同内容的条件命题的四种推理之间也存在显著的差异 青少年的条件推理过程似乎是一种基于对事件发生概率估计的直觉判断 这一判断过程主要取决于个体知识经验的增长和主体认知水平的提高
More informationMicrosoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx
运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;
More informationMechanical Science and Technology for Aerospace Engineering March Vol No. 3 赵海新, 刘夫云, 杨运泽, 许 坤 参数的传递在装配件变型设计中非常重要, 而构造尺寸约束
2013 3 32 3 Mechaical Sciece a Techology for Aerospace Egieerig March Vol. 32 2013 No. 3 赵海新, 刘夫云, 杨运泽, 许 坤 541004 参数的传递在装配件变型设计中非常重要, 而构造尺寸约束方程式是实现参数传递的有效方法通过分析装配约束的特点, 阐明了装配约束语义的表达和装配约束关系的定义构造了基 于装配语义和约束关系的装配约束库在装配语义表达和装配约束关系定义的基础上,
More informationuntitled
1 Outline 流 ( ) 流 ( ) 流 ( ) 流 ( ) 流 ( ) 狀 流 ( ) 利 來 行流 if () 立 行 ; else 不 立 行 ; 例 sample2-a1 (1) 列 // 料 Console.Write(""); string name = Console.ReadLine(); Console.WriteLine(" " + name + "!!"); 例 sample2-a1
More information56,,,,, :,, 1953,, 1953,1953,,1953,,,,,,,,, () ,30118, 34, ;,4912 %,5614 %, 1,1953, 1119, ,, , , 1111 (
2003 1 1812 ( 200433) :,,,,,, :1812 19 :, ;,,20, 1887 ;,1822 1887,,,1812 ( ) 9 :, ;,,;,,,,9,,,,,, :,1991,232 301 ::, :,1988 92 56,,,,, :,, 1953,, 1953,1953,,1953,,,,,,,,, () 1953 1 9518,30118, 34, 13313
More information从马克思东方社会理论出发所作的分析 唐永春 苏联法学对中国法学产生过深刻的消极影响 其原因除了社会制度 意识形态 国际环境等直接因素外 还存在着更深层次的历史传统的因素 这就是两国传统政治文化的同质性 基于古代东方亚细亚生产方式而形成的东方专制主义传统 的遗存及其影响 马克思东方社会理论是理解这一同质性的钥匙 认识这种深层原因 对我国今后法学研究及法治建设的发展具有重要意义 苏联法学 中国法学 亚细亚生产方式
More informationNOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p
NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.
More information電機工程系認可證照清單 2011/7/1
南 台 科 技 大 學 電 機 工 程 系 專 業 證 照 課 程 實 施 要 點 96 年 10 月 05 日 系 務 會 議 通 過 100 年 06 月 30 日 系 務 會 議 修 正 通 過 101 年 06 月 21 日 系 務 會 議 修 正 通 過 一 本 系 為 提 升 學 生 的 專 業 技 能, 特 訂 定 本 辦 法 二 實 施 對 象 : 本 系 日 間 部 96 學 年
More information黄 永 润 带 队 参 加 市 场 营 销 与 物 流 管 理 培 训 班... 6 黄 永 润 出 席 茶 业 集 团 春 茶 生 产 经 营 分 析 会... 6 大 明 山 茶 文 化 生 态 家 园 项 目 签 约 仪 式 在 邕 举 行... 7 广 西 职 业 技 术 学 院 开 展 庆
( 第 34 期 ) 广 西 壮 族 自 治 区 农 垦 局 办 公 室 编 2015 年 7 月 9 日 本 期 目 录 重 要 信 息 广 西 农 垦 与 贵 港 市 垦 地 合 作 座 谈 会 在 邕 举 行... 1 广 西 南 方 机 电 技 术 师 资 培 训 与 技 术 服 务 中 心 落 户 广 职 院... 1 刘 刚 到 防 城 精 制 糖 公 司 调 研... 2 糖 业 集
More information中山市**局2005年部门预算基本情况说明
中 山 市 文 化 广 电 新 闻 出 版 局 2016 年 部 门 预 算 情 况 一 单 位 基 本 情 况 本 单 位 主 要 履 行 的 公 共 职 能 包 括 : 1 贯 彻 执 行 国 家 和 省 市 有 关 文 化 广 播 电 视 新 闻 出 版 版 权 的 方 针 政 策 和 法 律 法 规, 把 握 正 确 的 舆 论 导 向 和 创 作 导 向 拟 定 文 化 广 播 电 视 新
More information机动车驾驶证申领和使用规定(公安部令第91号)
机 动 车 驾 驶 证 申 领 和 使 用 规 定 中 华 人 民 共 和 国 公 安 部 令 第 91 号 现 发 布 修 订 后 的 机 动 车 驾 驶 证 申 领 和 使 用 规 定, 自 2007 年 4 月 1 日 起 施 行 公 安 部 部 长 周 永 康 二 OO 六 年 十 二 月 二 十 日 目 录 第 一 章 总 则 第 二 章 机 动 车 驾 驶 证 的 申 领 第 一 节 机
More information<4D6963726F736F667420576F7264202D20A2B0A1D0A2B0A1D0A2B0A240A6CBAA4FC554BC4DB7ABA240A7D6AA4FBD6DB2DF2E646F63>
節 拍 與 文 字 的 遊 戲 \ 板 眼 旋 律 板 眼 : 傳 統 術 語, 即 節 拍 之 意 以 強 弱 區 別, 強 拍 叫 板, 弱 拍 叫 眼 在 板 書 類 的 曲 種 中, 以 前 半 拍 與 後 半 拍 組 成 一 拍, 結 合 文 字 數 唱, 形 成 各 種 板 式 為 了 學 習 的 方 便, 我 們 將 前 半 拍 叫 板, 後 半 拍 叫 眼 數 唱 : 傳 統 術 語,
More information<4D6963726F736F667420576F7264202D203033C8ABC8D5D6C6B1BEA1A2D7A8BFC6C9FAD1A7B7D6D6C6D1A7BCAEB9DCC0EDB9E6B6A82E646F63>
上 海 对 外 贸 易 学 院 全 日 制 本 专 科 生 学 分 制 学 籍 管 理 规 定 第 一 章 总 则 第 一 条 为 维 护 学 校 正 常 的 教 学 秩 序, 保 障 学 生 的 学 习 权 利 和 义 务, 规 范 学 籍 管 理 行 为, 根 据 中 华 人 民 共 和 国 高 等 教 育 法 和 教 育 部 普 通 高 等 学 校 学 生 管 理 规 定 等 文 件, 结 合
More information黄 河 两 岸 耸 立 着 万 丈 高 山 战 士 们 站 在 河 畔 仰 起 头 看, 天 像 一 条 摆 动 的 长 带 子 人 要 站 在 河 两 岸 的 山 尖 上, 说 不 定 云 彩 就 从 耳 边 飞 过, 伸 手 也 能 摸 着 冰 凉 的 青 天 山 峡 中, 浑 黄 的 河 水
保 卫 延 安 作 者 : 杜 鹏 程 正 文 第 一 章 延 安 字 数 :39132 一 一 九 四 七 年 三 月 开 初, 吕 梁 山 还 是 冰 天 雪 地 西 北 风 滚 过 白 茫 茫 的 山 岭, 旋 转 啸 叫 黄 灿 灿 的 太 阳 光 透 过 干 枯 的 树 枝 -- 照 在 雪 地 上, 花 花 点 点 的 山 沟 里 寒 森 森 的, 大 冰 凌 像 帘 子 一 样 挂 在
More informationMicrosoft Word - 雲林縣學校轉型優質計畫.docx
雲 林 縣 學 校 轉 型 優 質 計 畫 97.06.10 府 教 國 字 第 0970403986 號 函 102.05.23 府 教 國 字 第 1025413652 號 函 修 訂 壹 依 據 : 一 教 育 基 本 法 第 13 條 二 雲 林 縣 政 府 97.06.10 府 教 國 字 第 0970403986 號 函 頒 雲 林 縣 學 校 轉 型 優 質 實 施 計 畫 貳 目 標
More information<4D6963726F736F667420576F7264202D20BDADCBD5CAA1B9A9CFFABACFD7F7D7DCC9E7BCF2B1A8B5DA3239C6DA2E646F63>
江 苏 省 供 销 合 作 总 社 简 报 第 29 期 江 苏 省 供 销 合 作 总 社 办 公 室 编 2016 年 8 月 17 日 无 锡 市 农 产 品 经 纪 人 协 会 着 力 提 升 行 业 服 务 功 能 近 年 来, 无 锡 市 农 产 品 经 纪 人 协 会 通 过 构 建 农 产 品 经 纪 人 工 作 平 台, 在 农 民 与 政 府 之 间 农 民 与 市 场 之 间
More information<4D6963726F736F667420576F7264202D20C3F1D3C3BBFAB3A1BDA8C9E8B9DCC0EDB9E6B6A8B7A2B2BCB8E52E646F63>
中 国 民 用 航 空 总 局 令 第 129 号 民 用 机 场 建 设 管 理 规 定 已 经 2004 年 10 月 12 日 中 国 民 用 航 空 总 局 局 务 会 议 通 过, 现 予 公 布, 自 2004 年 12 月 1 日 起 施 行 局 长 杨 元 元 二 四 年 十 月 十 二 日 民 用 机 场 建 设 管 理 规 定 第 一 章 总 则 第 一 条 为 加 强 民 用
More information慈宗彌勒淨土法門的殊勝
法 明 寺. 台 灣 慈 宗 學 會 印 贈 慈 宗 彌 勒 淨 土 法 門 的 殊 勝 2 目 錄 目 錄 作 者 簡 介 5 自 序 7 彌 勒 淨 土 法 門 初 探 11 彌 勒 淨 土 略 說 31 太 虛 大 師 的 彌 勒 淨 土 思 想 簡 說 -- 慈 宗 三 要 大 意 51 附 錄 印 度 佛 教 瑜 伽 學 之 綱 要 顯 揚 聖 教 論 結 構 試 析 79 太 虛 大 師
More information5.1施工企业会计核算办法
法 规 标 题 : 施 工 企 业 会 计 核 算 办 法 文 号 : 财 会 [2003]27 号 发 文 单 位 : 财 政 部 发 文 日 期 :2003 年 9 月 25 日 实 施 日 期 :2004 年 1 月 1 日 财 政 部 关 于 印 发 施 工 企 业 会 计 核 算 办 法 的 通 知 财 会 (2003)27 号 国 务 院 有 关 部 委, 各 省 自 治 区 直 辖 市
More information論文全.doc
1 6 7 2 3 8 4 5 8 9 15 6 28 19 36 ~ 113 7 8 22 23 9 20 25 10 11 1990 28 29 31 32 33 35 36 12 56 13 14 144 6 150 15 16 17 1. 3 2. 18 4 19 5 20 1. 6 21 7 8 22 ( ) ( ) 9 1. 11 12 14 2. 23 24 15 16 25 19 20
More information专科疾病诊治(十二)
...1...13...25...43...59...67...70...72...93...99... 105... 115... 125... 137... 184... 198... 200 I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 3 4 23 24 25 26 27 28 29 30 31 32 33 34
More information2009 189 2009 2013 2009 2013 OO 2009 2013 2 2007 17 2008 2012 2008 56 1 3 2 3 4 3 4 1 5 2 1 2009 2013 2009 90% 60% 2010 2010 95% 70% 2 2011 2012 2011 100% 80% 85% 5 6 2012 95% 90% 3 2013 100% 95% 1 2 7
More information文档2
2002 40-1 2002 3 3 5 6 7 8 9 13 14 16 40 40-2 2002 1 15,642,778.15 16,946,855.96 16,982,495.67 15,984,821.37 39,850,399.31 16,346,971.89-668,554.03 / -35,639.71-4,801,281.73-16,093,628.17 40-3 2002 2 2002
More information1811 1884 1847 1860 1862 1871 1875 1823 1884 1851 1876 1878 1879 1880 1884 20 1858 1861 1864 1862
1768 1842 1788 1842 1766 1848 1805 1864 1853 1862 1811 1884 1847 1860 1862 1871 1875 1823 1884 1851 1876 1878 1879 1880 1884 20 1858 1861 1864 1862 1833 1884 1855 1861 500 1862 1864 1868 1875 1829 1888
More information<4D6963726F736F667420576F7264202D203234A8E2A9A4B142ABC3AABAB7C5B1A1ADB1BB50AA6BA8EEADB1>
專 題 論 述 兩 岸 婚 姻 的 溫 情 面 與 法 制 面 蔡 漢 賢 林 姹 君 壹 引 言 一 九 八 七 年 十 一 月 政 府 開 放 臺 灣 地 區 人 民 赴 大 陸 探 親, 兩 岸 婚 姻 關 係 隨 即 興 起 波 瀾, 舊 有 的 再 續 連 理 枝, 新 增 的 添 加 了 不 少 比 翼 鳥, 兼 之 近 年 臺 商 西 進, 大 陸 成 為 臺 灣 最 大 出 口 市
More informationMicrosoft Word - 02 002207 薪酬管理制度.doc
新 疆 准 东 石 油 技 术 股 份 有 限 公 司 薪 酬 管 理 制 度 第 一 部 分 员 工 工 资 管 理 办 法 第 一 条 第 一 章 总 则 为 了 建 立 与 现 代 企 业 制 度 相 适 应 的 薪 酬 分 配 体 系, 调 动 员 工 积 极 性, 提 高 工 作 效 率, 激 励 员 工 为 公 司 创 造 更 高 的 价 值, 增 强 新 疆 准 东 石 油 技 术 股
More information利 润 预 计 为 360,216.20 万 元 ; 假 设 2016 年 归 属 母 公 司 所 有 者 的 净 利 润 较 2015 年 度 预 测 值 的 基 础 上 增 长 15%, 为 414,248.63 万 元 上 述 利 润 值 不 代 表 公 司 对 未 来 利 润 的 盈 利 预
证 券 代 码 :600177 证 券 简 称 : 雅 戈 尔 公 告 编 号 :2015-078 雅 戈 尔 集 团 股 份 有 限 公 司 关 于 非 公 开 发 行 A 股 股 票 摊 薄 即 期 收 益 及 填 补 措 施 ( 修 订 稿 ) 的 公 告 本 公 司 及 董 事 会 全 体 成 员 保 证 公 告 内 容 的 真 实 准 确 和 完 整, 对 公 告 的 虚 假 记 载 误
More informationAz b.doc
, , OO OO 191,904,774.12 297,110,448.79 190,753,347.38 292,972,187.76 36,045,126.94 55,629,371.31 36,045,126.94 55,629,371.31 296,286,176.11 323,860,641.25 299,904,945.80 325,041,549.49 45,460,963.46
More informationChinaBI企业会员服务- BI企业
商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户
More information2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%
2013 ( 28 ) ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 10 B 1 C 1 D 5 E 5 F 1 G II 5 H 30 1 2013 C 1 #include 2 int main(void) 3
More information<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>
能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO
More information(京)新登字063号
教 育 部 职 业 教 育 与 成 人 教 育 司 推 荐 教 材 Java 程 序 设 计 教 程 ( 第 二 版 ) 沈 大 林 主 编 沈 昕 肖 柠 朴 曾 昊 等 编 著 内 容 简 介 Java 是 由 美 国 SUN 公 司 开 发 的 一 种 功 能 强 大 的, 具 有 简 单 面 向 对 象 分 布 式 可 移 植 等 性 能 的 多 线 程 动 态 计 算 机 编 程 语 言
More informationGenerated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3
浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.
More informationPs22Pdf
C ( CIP) C /. :, 2001. 7 21 ISBN 7-5624 -2355-5. C........ C. TP312 CIP ( 2001 ) 034496 C * * : 7871092 1 /16 : 14. 25 : 356 20017 1 20017 1 : 1 6 000 ISBN 7-5624-2355-5 / TP311 : 21. 00 C, C,,,, C,, (
More informationebook45-5
5 S Q L SQL Server 5.1 5-1 SQL Server 5-1 A B S A C O S A S I N ATA N AT N 2 C E I L I N G C O S C O T D E G R E E S E X P F L O O R L O G L O G 10 P I P O W E R R A D I A N S R A N D R O U N D S I G N
More information概述
OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3
More informationOOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜
More information软件工程文档编制
实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,
More informationMicrosoft PowerPoint - sicp05-1.ppt
5. 寄存器机器的计算 (1) 本书的最后一章讨论更底层的计算, 以及从抽象层的程序 ( Scheme 程序 ) 到底层程序的翻译 ( 编译 ) 本节课的内容 : 寄存器机器 描述寄存器机器的计算过程 寄存器机器语言 子程序和递归带来的问题 寄存器机器语言的模拟器 ( 解释器 ) 模拟器的实现 程序设计技术和方法裘宗燕,2014-6-11 (1) 求值器的控制和寄存器机器 前面研究了计算 ( 过程
More information第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(
第一章三角函数 1. 三角函数的诱导公式 A 组 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C ( 中诱导公式 ) B. cos( B C) cos A D. sin( B C) sin A sin60 cos( ) sin( 0 )cos( 70 ) 的值等于
More information四川省普通高等学校
四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9
More information未命名-1
1 2 3 4 5 6 7 8 9 10 11 12 ss a c y e vg 13 14 15 16 17 18 19 H 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 发现生命的螺旋 克里克在提出 中心法则 时曾指出 遗传信息是沿 D N A - R N A - 蛋白质的方向流动的 遗传信息不可能从 R N A 回到 D N
More information