清华大学程序设计课件-------第6章
C语言程序设计第五版谭浩强 ppt课件
Ctrl+KV--------块移动
Ctrl+KY-------块删除 Ctrl+KH--------块隐藏
窗口操作:
F5-----窗口缩放 F6-----窗口切换
程序调试:
<>
F8-----Step over
F7-------Trace into
/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
预处理命令
/* This is the main program */
void main() { int a,b,sum; /*定义变量*/ 函数
注释
的
a=10;
和
b=24;
sum=add(a,b);
空类型void
短整型short 整型int 长整型long 单精度型float
双精度型double
<
定义类型typedef
C语言程序设计
第一章 C语言概述
§1.3 简单的C程序介绍
例1.1 第一个程序This is a c program .
/* example1.1 The first C Program*/
第一章 C语言概述
C语言结构特点
❖函数与主函数
程序由一个或多个函数组成
必须有且只能有一个主函数main(),可以放在程序中任一 位置
程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
❖程序语句
C程序由语句组成 用“;”作为语句终止符
❖注释
/* */为注释,不能嵌套
C语言运算符丰富(附录C)
第6章(486)
第6章 VHDL程序设计实验 图6.3 工程属性参数
第6章 VHDL程序设计实验
2.逻辑门的RTL描述 编写MY_AND2实体的VHDL代码。 (1) 选择菜单栏中的 Project→New Source。 (2) 在 Select Source Type 窗口中,选择左侧VHDL Module,在右侧 File Name栏中填入文件名MY_AND2,单 击Next按钮后弹出Define Module窗口,如图6.4所示。
entity MY_AND2 is port ( A: in STD_LOGIC; B: in STD_LOGIC; C: out STD_LOGIC);
end MY_AND2;
architecture BEHAVIORAL of MY_AND2 is begin
C <= A and B; end BEHAVIORAL;
(2) 将AND_OR.VHD的输入定义为一个总线,即STD_ LOGIC_VECTOR类型。
(3) 在AND_OR模块中,必须声明和例化被调用的下层 模块MY_AND2和MY_OR2。
(4) 在AND_OR模块中,必须显式地定义用于下层模块 互联的连线信号。
(5) MY_OR2和AND_OR模块的代码可以参照本实验后 面给出的代码实例。
本实验中会用到3个文件,文件对应的代码分别下:
MY_AND2.VH D
library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH. all; use IEEE.STD_LOGIC_UNSIGNED. all;
第6章 VHDL程序设计实验
end MY_AND2;
第6章 VHDL程序设计实验
C++语言程序设计(清华大学)ppt课件
引用 必须先声明,后使用。 只能逐个引用数组元素,而不能一次引用整个数组 例如:a[0]=a[5]+a[7]-a[2*3]
4
例6. 1一维数组的声明与引用
数 #include <iostream>
组
using namespace std;
int main()
{int A[10],B[10];
int i;
指 指针名=地址
针
“地址”中存放的数据类型与指针类型必须相符。
向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可 以赋值为整数0,表示空指针。
指针的类型是它所指向变量的类型,而不是指针本身数据值的类型, 任何一个指针本身的数据值都是unsigned long int型。
允许声明指向 void 类型的指针。该指针可以被赋予任何类型对象 的地址。
Point(id Move(int x,int y);
int GetX() {return X;}
int GetY() {return Y;}
private:
int X,Y;
};
#endif
24
//6-2.cpp
#include<iostream>
变量 j
声明 例:static int i; static int *i_pointer=&i;
指向整型变量的指针
3010
2000
变量 i_pointer
引用 例1:i=3; 例2:*i_pointer=i;
i_pointer 2000
*i_pointer
3
i
2000 29
指针变量的初始化
指 语法形式
对形参数组的改变会直接影响到实参数17例62使用数组名作为函数参数主函数中初始化一个矩阵并将每个元素都输出然后调用子函数分别计算每一行的元素之和将和直接存放在每行的第一个元素中返回主函数之后输出各行元素的和
大一C语言实用课件
• Visual C++是Microsoft公司推出的基于 Windows平台的C++可视化开发环境。使用版 本Visual C++ 6.0
数值范围 10-38~1038 10-308~10308 10-4932~104932
double 16(8) 19
如:
float x,y;
double z;
五、 字符型数据
1. 字符常量 • 用单引号括起来的单个字符,如‘a’,’b’等。 • 转义字符:以\开头的特殊字符。
如:\n 表示回车换行
• 各种C语言的版本都是按照ANSI C作为标准的。 • 主要版本有:
Microsoft C, Turbo C, BORLAND C等。
• 实验环境:
Visual C++ 6.0
二、特点
1 语言简洁、紧凑,使用方便、灵活 2 运算符丰富 3 数据结构丰富 4 具有结构化的控制语句 5 程序设计自由度大
• 不合法的标识符:2a,x/y,a>b等。
使用标识符应注意:
• C语言中标识符区分大小写字母。即:大 写字母和小写字母被认为是两个字母。如: Sum,SUM,sum是不同的标识符。 • 标识符的长度没有统一的规定。
二、常量与变量
1. 常量与符号常量 • 常量:在程序运行过程中,值保持不变的量叫 ~。如:10,0,-3,4.2,-1.3,‘a’,’b’等。 • 符号常量:用标识符表示的一个常量称为~。 通常用大写字母表示。 如:#define PI 3.14159 main() 符号常量 { float r,area; r=10; area=PI*r*r; printf(“area=%f\n”,area); }
第6章 详细设计 软件工程-课件
图6.2 其他常用的控制结构
6.2 人机界面设计
人机界面的设计质量,直接影响用户对软 件产品的评价,从而影响软件产品的竞争力 和寿命
6.2.1 设计问题
4个问题: 系统响应时间、 用户帮助设施、 出错信息处理 命令交互。
“结构程序设计是尽可能少用GO TO语句 的程序设计方法。最好仅在检测出错误时才 使用GO TO语句,而且应该总是使用前向 GO TO语句。”
如果只允许使用顺序、IF-THEN-ELSE型 分支和DO-WHILE型循环这3种基本控制结 构,则称为经典的结构程序设计;
如果除了上述3种基本控制结构之外,还允 许使用DO-CASE型多分支结构和DO-UNTIL 型循环结构,则称为扩展的结构程序设计
集成
附加
(1) 在用户与系统交互期间,是否在任何时候都能 获得关于系统任何功能的帮助信息?有两种选择: 提供部分功能的帮助信息和提供全部功能的帮助信 息。
(2) 用户怎样请求帮助?有3种选择:帮助菜单,特 殊功能键和HELP命令。
(3) 怎样显示帮助信息?有3种选择:在独立的窗口 中,指出参考某个文档(不理想)和在屏幕固定位置 显示简短提示。
用户界面的评估周期如下所述:
完成初步设计之后就创建第一级原型;
用户试用并评估该原型,直接向设计者表述对界 面的评价;
设计者根据用户意见修改设计并实现下一级原型。
上述评估过程持续进行下去,直到用户感 到满意,不需要再修改界面设计时为止。
也可以在创建原型之前就对用户界面的设 计质量进行初步评估。
在创建了用户界面的设计模型之后,可以 运用下述评估标准对设计进行早期复审。
传热学课件-清华大学 (6)
§6-1 管内受迫对流换热第六章单相流体对流换热及准则关联式学习对流换热的目的:学会解决实际问题;会计算表面传热系数h大多数是由大量的实验研究确定的本章给出的具体函数形式Pr)(Re,Nu f =工程上、日常生活中有大量应用:暖气管道、各类热水及蒸汽管道、换热器流动进口段:10[ : Re;05.0 ∈≈dLd L 紊流层流:∂u流动进口段: : Re;05.0 ∈≈dLd L 紊流层流:∂u热充分发展段:常物性流体在热充分发展段:h = const(1)管内流体平均速度3、管内流体平均速度及平均温度∫∫=⋅==RRm urdrrdru f u G 0022πρπρρrdr u df u dG πρρ2⋅=⋅=G —质量流量[kg/s];V —体积流量[m 3/s];G=ρV∫∫===Rm R m urdrRu urdr R u G 02022 ;2πρπρt∆(管内对流换热进口段的局部Nusselt数2、流体热物性变化对换热的影响对于液体:主要是粘性随温度而变化流体平均温度相同的条件下,液体被加热时的表面传热系数高于液体被冷却加热时的值↓⇒↑η t 对于气体:除了粘性,还有密度和热导率等↑↓↑⇒↑λρη,,t液体:1=C R+—R螺旋管曲率半径4、管壁粗糙度的影响粗糙管:铸造管、冷拔管等湍流:粗糙度∆>层流底层厚度δ时: 换热增强层流:影响不大粗糙度∆<层流底层厚度δ时: 影响不大If water at 300K flowsthrough a 3cm -diameterpipe at 5m/s, the thicknessof the viscous sublayer isonly about 20mµ有时利用粗糙表面强化换热—强化表面(1)迪图斯-玻尔特(Dittus-Boelter )关联式:⎩⎨⎧<>==)( 3.0)( 4.0 ;Pr Re 023.08.0f w f w m f f f t t t t m Nu 由于没有考虑变物性,只适用于壁面和流体的温差不很大的情况:Petukhov 等人的研究表明:上式只在有限的范围内适用。
第6章 STEP7结构化程序设计(1)
②Name(名称):输入数组的符号名。如PRESS、 Motor_data等。 ③Type(数据类型):数组的数据类型。如BOOL、WORD、 INT、STRACT、UDT等基本数据类型或复合数据类型,注意不能 用ARRAY类型。 ④Initial Value(初值):如果不想用缺省值可输入初值。如 “30、22、-3、3(0)”(这里的3(0)表示后3个数组元素全为0, 是一种简化的写法)。当数据块第一次存盘时,若用户没有明确地 声明实际值,则初值将被用于实际值。 ⑤Comment(注释):用于栏目的文字注释,最多可为80 个字符。如“2×3数组”。 (2)访问数组。利用数组中指定元素的下标可访问数组中的 元素数据,这时数据块名、数组名及下标一起使用并用英语的句号 分开。如图6-5中声明的数组在DB3(假设符号名MOTOR)数据块 中,可用以下符号地址或绝对地址访问存在DB3中数组的第3个元素 (数据类型为整数INT,占用一个字或2个字节): MOTOR.PRESS[1 ,3] 或DB3.DBW5
第六章
STEP7结构化程序设计
一个复杂的生产过程或大规模的分散被控对象,总是可以把它分 解为若干个较小的分过程。自动化过程的这种分解处理,得到了 STEP7 “开发软件包”在各个技术层次上的支持。它将控制任务分为 项目,项目可以由一个或多个CPU 程序组成,而每个CPU 程序又是
由它的各种逻辑块和数据块构成,逻辑块中的功能块总是对应一个控
用户根据生产控制的复杂程度,将程序放在不同的逻辑块(包括 OB、FC和FB)中。程序运行时所需的大量数据或变量存储在数据块中, 调用功能块FB 时也必须为其指定一个相应的背景数据块DI ,它随功 能块FB 的调用而打开,随功能块FB的结束而关闭。在块调用时,调 用块可以是任何逻辑块( OB 、FB 、FC 、SFB 、SFC ) ,被调用的 块只能是功能块(除OB 外的逻辑块)。 块调用时,OB的临时变量数据压入L堆栈,所有OB要求至少20字 节的L堆栈中的内存空间。所以OB1 即使没有声明使用其他额外的临 时变量,也要使用20 字节的L堆栈中的内存空间。 二、PLC中断 S7 系列PLC 采用循环程序处理与中断程序处理结合的工作方式。 中断处理方式在计算机和PLC 中均得到广泛应用。这种工作方式是当 有中断申请时,CPU 将暂时中断现有程序的执行,转而执行相关的中 断程序,中断程序执行完毕后,再返回原程序执行。但不同PLC 对中 断的处理可能各有不同,下面介绍S7-300 /400 系列PLC 的中断。
飞行程序设计-第6章-直线离场
中国民航大学空中交通管理学院
一、直线离场对航迹设置的要求
起始离场航迹与跑道中线方向夹角≤15°为直线离场。 当起始离场航迹不经过跑道起飞末端(DER)时, 在正切跑道起飞末端处的横向距离不得超过300m。 直线离场航线必须在20.0km(10.8NM)以内取得航迹引导。 直线离场允许不超过15°的航迹调整,航空器在航迹调整前,
5m(16ft)
OIS面
DER
HOIS=5m + 距离( DER 飞机所在位置)×2.5%
如果没有障碍物穿透OIS面,则离场程序按标准的梯度 (3.3%)进行设计。
如果有障碍物穿透OIS面,则必须考虑用规定一个航迹以 横向避开这个障碍物,或规定一个程序设计梯度(PDG) 以保证航空器在飞越障碍物时有足够的余度。
End of the Runway)为起点 离场程序的终点:飞机沿固定的飞行航迹到达下一飞行阶
段(航路,等待或进近)允许的最低安全高度/高为止。人
仪表离场程序的形式: —直线离场 —转弯离场 —全向离场
标准的程序设计梯度(PDG: procedure design gradient)为 3.3%。PDG起始于跑道起飞末端(DER)之上5m(16ft)的 一点。
2. 程序设计梯度(PDG)
如果没有障碍物穿透OIS面,则程序设计梯度规定为3.3%, 即等于OIS面的梯度加上0.8%的超障余度。
如果有一个障碍物穿透OIS面,并且无法用规定一条新的 离场航迹避开此障碍物,则首先应算出从OIS面起点至障 碍物最高点的梯度,此梯度加上0.8%的超障余度即为程序 设计梯度,此梯度及这个障碍物必须予以公布。公布的梯 度必须规定至一个高度/高,在此高度以后恢复使用3.3%的 爬升梯度。
清华大学数字信号处理课件--第六章7双线性变换法
c c ctg
c
2
特定频率处频率响应严格相等,可以较准确地 控制截止频率位置
3、逼近情况
1)s c
1 z 1 z
1 1
c
1 e 1 e
j j
jc tg
2
j
s平面虚轴
2) z
cs cs
z平面单位圆
z (c )
2 2 2
0
0
缺点: 除了零频率附近, 与 之间严重非线性
1)线性相位模拟滤波器
非线性相位数字滤波器
2)要求模拟滤波器的幅频响应为分段常数型,不 然会产生畸变 分段常数型模拟滤波器 经变换后仍为分段常数 型数字滤波器,但临界 频率点产生畸变
1 1 / T
2 tg
1
1 1 c
预畸变
给定数字滤波器的截止频率 1 ,则
1 c tg
1
2
按 1设计模拟滤 波器,经双线性 变换后,即可得 到 1 为截止频率 的数字滤波器
6、模拟滤波器的数字化方法
H ( z) H a (s) 1 z 1 Ha c 1 1 z
c j c j
(c )
2
s平面
0
z 1 z 1 z 1
z平面 单位圆内 单位圆外 单位圆上
左半平面
0 0
右半平面
虚轴
4、优缺点
优点:避免了频率响应的混迭现象
c tg
2
s 平面与 z 平面为单值变换
0 0
1 1
i 1, 2,..., m
可分解成并联的低阶子系统
第6章 汇编语言程序设计
格式:重复次数 DUP(表达式)
将括号( )内的表达式重复预置, 重复的次数由DUP前面的常数决定。
图4.2中这种表达式的格式为
DATA9 DATA10 DB DW 3 DUP (00) 2 DUP(?)
5) (符号)地址表达式(指变量或地址标号) 当变量为DW和DD类型时,才可以作为地址表达式, 此时应遵循以下规则: (1) 当用DW定义地址表达式时,地址表达式中的变 量名称表示该变量的第一个存储单元的偏移地址。 (2) 当用DD定义地址表达式时,低位字用于预置偏移 地址,高位字用于预置段地址。 (3) 地址表达式中的变量或标号可与常数值相加减。 对于变量来说,运算结果的类型不变;对标号来说,运算 结果仍表示原标号所在段中的地址。 (4) 变量或标号不能与变量或标号相加,但可相减, 结果是没有属性的纯数值。
汇编语言不能直接被机器识别和执行,必须先经具有 “翻译”功能的系统程序——汇编程序(assembler)的帮助, 才能将汇编语言转换成相应的机器语言(称为目标代码程序),
如图6.1所示。
注意:汇编语言源程序与汇编程序是不同的。
图6.1 汇编语言如何变为机器语言
3.高级语言 机器语言和汇编语言使用很不方便,它与人类的自然语 言和一般数学语言相距甚远,属于低级语言。 与此相比,高级语言更接近人类自然语言,编制程序直 观、简练、易掌握、通用性强。它无论是面向问题或面向过 程,一般总是独立于具体机器的,程序员可不必了解机器的 指令系统和内部的具体结构,而把主要精力集中在掌握语言 的语法规则和算法的程序实现上。高级语言常用于科学计算、 离线仿真、商用、管理等。 高级语言程序必须借助于更强有 力的翻译系统——编译程序(compiler)才能将高级语言源程序 翻译成能被计算机直接执行的目标程序。 高级语言的种类很多,目前使用较广泛的高级语言有 BASIC、Visual Basic、Visual C、C++、JAVA、Delphi、 ASP、Matlab、Labview等。
清华大学有限元分析课件6-3 Finite Element
Postprocessing
⎡0⎤
m(1)
=
EI
d 2u(1) dx2
=
⎡ EI ⎣⎢
d2 Nu1 dx2
= −240.64 + 25.785x
d2 Nθ1 dx2
d2Nu2 dx2
d2 Nθ 2 dx2
⎤⎢
⎦⎥
⎢ ⎣⎢
0
uy2 θ2
⎥ ⎥ ⎦⎥
⎡0⎤
s(1)
=
− EI
d 3u(1) dx3
= −25.785
4/13
School of Aerospace, Tsinghua University
Finite Element Method
6.3 有限元离散
Discrete Equations
Beam elements loaded in tension and bending
d e = [ ux1 uy1 θ1 ux2 uy2 θ2 ]T
第6章 梁问题的有限元格式
6.3 有限元离散 Finite Element Discretization
Finite Element Method
6.3 有限元离散
Approximation
C1 functions ² Hermite polynomials
y ξ = 2x − 1, − 1 ≤ ξ ≤ 1 le
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
uy1 = 0 θ1 = 0
uy2 θ2 uy3 θ3
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
=
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣⎢
−9 + ru1
−15.3+ rθ1 −4 15.3 −20 20
第6章 智能Agentppt课件
2020/2/22
《人工智能》
6
1987 Gasser等持研制了一个实验型的分布式人工智 能系统开发环境MACE 系统。
MACE中每一个计算单元都称作Agent,它们具有 知识表示和推理能力,它们之间通过消息传送进行通 信。MACE是一个类面向对象环境,但避开了并发对 象系统中难于理解和实现的继承问题。MACE的各个 机构并行计算, 并提供了描述机构的描述语言, 具有跟 踪的demons机制。 该课题研究的重点是在实际并行环 境下运行分布式人工智能系统,保持概念的清晰性。
该系统采用逻辑------对象知识模型,研究了知识共 享和协作求解等问题。
2020/2/22
《人工智能》
8
90年代,多Agent系统(Multi-agent systems---MAS)的研 究成为分布式人工智能研究的热点。MAS主要研究自主的智 能体之间智能行为的协调,为了一个共同的全局目标,也可 能是关于各自的不同目标,共享有关问题和求解方法的知识, 协作进行问题求解。
2020/2/22
《人工智能》
3
1 分布式人工智能
一个分布式系统是把各种不同地理位置上的计 算资源连接起来形成一个系统。
分布式人工智能主要研究在逻辑上或物理上分散 的智能系统如何并行的、相互协作地实现问题求解。 有两种主要的方法:
(1)自顶向下:分布式问题求解。在多个合作和 共享的知识模块或系统之间划分任务,并求解问题。
第六章万维网PPT课件
(FrontPage的简化版); (4) Media Player 和Real Player网络多媒体工具; (5) Netmeeting网络会议软件; (6) Microsoft Chat聊天软件; (7) 通信簿。
6.4.2 Internet Explorer 5.0的安装
用装有IE5.0的光盘安装或用FTP从Interne某个站点 上将ie5setup.exe智能安装程序传送到本地硬盘, 然后安装。微软Internet Explorer 5.0Web 页面见 图6.2所示,地址为。在这里用户可下载Internet Explorer5.0智能安装向导。它是一个506K的应 用程序ie5setup.exe,一旦下载到本地机,用户就 可执行它,并开始Internet Explorer5.0下载和安
用HTML可编辑网页。目前,高版本的浏览器(例 如,Netscape3.0)已内嵌了可视化网页制作工 具。也就是说不用HTML编写就很容易制作 出简单的多媒体网页。另外在Office 97中除 了OutLook外都可存成HTML格式的文件。 1998年3月微软正式推出了FrontPage 98 for Windows 95,它是一个全新的网页制作和 Web站点网页创建管理工具,是目前功能最 强、最为流行的网页可视化写作工具。
飞行程序设计-第6章进场进近程序设计
T或Y型程序
居中的起始进近航段可从IF开始。 如果一侧或两侧没有IAF,则不能全向直接进入。这时,可在IAF设置等待航线,以便加入程序。 为便于下降和进入程序,可提供终端进场高度(TAA)。 IAF、IF和FAF均为旁切航路点。复飞航段起始于飞越航路点(MAPt),终止于复飞等待定位点(MAHF)。对转弯复飞,可设置复飞转弯定位点(MATF)来规定转弯点。 保护区宽度可根据适用于程序所用导航系统的容差确定。
5.2%
MINI
2NM+最小稳定距离
0度
0度
-
150米
最优
10NM
70度
0度
平飞
中间进近航段要保证(2NM+转弯最小稳定距离)的航段长度;且要保证至少1.5NM(C/D),1NM(A/B)的平飞段。
中间进近航段约束
*
GNSS保护区半宽
Basic GNSS支持的标准中,RNAV5只能用于航路设计。
*
保护区半宽计算方法
直线保护区半宽+外形连接
*
*
#2022
当XTT或飞行阶段发生变化时,计算保护区宽度有可能发生变化: BV发生改变时,计算保护区宽度需要使用哪个值 使用前一飞行阶段的BV值 (FAF点使用终端的BV,MAPt点使用最后进近航段的BV ) XTT发生改变时,计算保护区宽度需要使用哪个值 使用较小的XTT值
IMAL
ATT
XTT
BV
1/2AW
保护区举例
*
IAF
30NM
5NM
2.5NM
30 °
IF
3.5NM
保护区举例
*
2.5NM
0.95NM
1.45NM
第5、6章-java2实用教程PPT课件
ng,java.io,java.math,java.util
java.applet,java.awt,java.awt.datatransfer
java.awt.event,java.awt.image,java.beans
,java.rmi,java.security,java.sql等
第五、六章 Java基础类
-字符串、日期、时间、数字
JAVA语言程序设计
清华大学 郑莉
4.6.1 Java 基础类库简介
(Java2实用教程-4.18、第5、6章)
Java基础类库
– Java提供了用于语言开发的类库,称为
包 的 应 用
Java基础类库(JFC,Java Foundational Class) , 也称应用程序编程接口(API,Application Programming Interface),分别放在不同的包中
包
的类,包括
的
Object类
应
数据类型包裹类(the Data Type Wrapper)
用
字符串类(String、StringBuffer)
数学类(Math)
系统和运行时类(System、Runtime)
类操作类
.
4
JAVA语言程序设计
清华大学 郑莉
4.6.1 Java基础类库简介(续)
– Float.parseFloat(“123.11”) //返回float型
– Long.parseLong(“123456”) //返回long型
.
8
JAVA语言程序设计
清华大学 郑莉
4.6.1 Java基础类库简介(续) (参加补充章节) ——常量字符串类String
飞行程序设计-第6章 气压垂直导航
TCORR计算公式
TCORR =H*((15-t0)/(273+t0-0.5*L0*(H+H ss)))
其中: H为中间进近航段的OCH(以高度表拨正值来源处为基准) L0=0.0065 ℃/m或0.00198 ℃/ft H ss为高度表拨正值来源处的高度(通常为机场标高) T aerodrome为机场温度 H aerodrome为机场标高
Baro-VNAV程序利用类似ILS的OAS面对障碍物进行评价
OAS面由三个面组成:最后进近面(FAS)、水平面
(horizontal plane)、中间和最后复飞面(Zi和Zf), 每个面
的两侧都有侧面。
OAS面的水平范围使用水平导航(LNAV)保护区的水平范围; 使用LNAV程序的FAF和MAPt来限定保护区范围,但它们不 是VNAV程序的组成部分;
更多细节参见PBN手册 VOL II att 4.3 垂直方向FTE<200ft 垂直方向精度<100ft 水平方向精度满足LNAV PNP APCH的要求
Baro-VNAV的APV 航段航迹设置要求:
APV 航段必须与跑道中线延长线一致
APV航段包括最后进近航段和复飞的起始、中间及最后阶段
第六章 气压垂直导航
传统导航 非精密进近 NPA
VOR/DME NDB LOC
GNSS-ABAS DME/DME VOR/DME APV BaroVNAV GNSS-ABAS +Barometer
区域导航 (水平引导)
带垂直引导的 进近 APV
区域导航 (水平引导 +垂直引导)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将单个字符转换为字符串
原型:STRING TransformCharIntoString(char c); 意义:将单个字符 c 转换为字符串后返回 示例:若字符为 ‘a’,则转换后的字符串为”a”
字符串与数字之间的转换
原型:STRING TransformIntegerIntoString( int n ); 意义:将整数转换为字符串,如整数 12 转换为”12” 原型:int TransformStringIntoInteger( STRING s ); 意义:将字符串转换为整数,如”12”转换为 12 原型:STRING TransformRealIntoString( double d ); 意义:将实数转换为字符串,如 -1.2 转换为”-1.2”
字符串的复制
字符串的复制操作 函数原型:STRING DuplicateString( STRING s ); 意义:接受字符串参数 s,返回该字符串的副本 字符串复制示例 STRING s1, s2 = "Hello"; s1 = DuplicateString( s2 );
STRING s1, s2 = "Hello"; s1 = s2;
字符串的合并
字符串的合并操作
原型: STRING ConcatenateString( STRING s1, STRING s2 ); 意义:接受字符串参数 s1、s2,返回合并后的字符串 合并结果:s1 在前,s2 在后
字符串合并示例
STRING s, s1 = "Hello", s2 = "World"; s = ConcatenateString( s1, s2 ); 合并后的字符串为“HelloWorld”
原型:double TransformStringIntoReal( STRING s ); 意义:将字符串转换为实数,如”-1.2”转换为 -1.2
字符串的查找
查找单个字符
原型:unsigned int FindCharFirst( char key, STRING s ); 意义:在字符串 s 中从前向后查找指定字符 key 返回值:key 在字符串中的第一次出现位置(从 0 开始编号) 注意:若指定字符不存在,返回 inexistent_index
原型:
意义:在字符串 s 中从位置 pos 处(包含位置 pos 本身的字 符)开始从前向后查找指定字符 key 返回值:key 在字符串中的下一次出现位置 注意:若指定字符不存在,返回 inexistent_index
extern const unsigned int inexistent_index = 0xFFFFFFFF;
←
% / 9 C M W a k u
┗
& 0 : D N X b l v
↔
' 1 ; E O Y c m w
x
y
z
{
|
}
~
DEL
字符量的数学运算
编写函数,判断某个字符是否为数字
BOOL IsDigit( char c ) { if( c >= 48 && c <= 57 ) return TRUE; else return FALSE; }
……
……
数组的定义
定义格式:元素类型 数组名称[常数表达式]; 示例一:int a[8]; /* 定义包含 8 个整数元素的数组 */ 示例二:STRING strs[4]; /* 定义包含 4 个字符串元素的数组 */
说明
常数表达式必须是常数,不允许为常量或变量 错误示例一:const int counts = 8; int b[counts]; 错误示例二:int numbers = 8; int c[numbers]; 数组元素编号从 0 开始计数,元素访问格式为 a[0]、a[1]、…… 不允许对数组进行整体赋值操作,只能使用循环逐一复制元素 错误示例三:const int a[8], b[8]; a = b;
BOOL IsDigit( char c ) { if( c >= '0' && c <= '9' ) return TRUE; else return FALSE; }
编写函数,将小写字母转换为大写字母
char TransformIntoUpperCase( char c ) { if( c >= 'a' && c <= 'z' ) return c – 'a' + 'A'; else return c; }
字符表示的等价性
char a = 'A'; char a = 65; char a = 0101; char a = 0x41;
ASCII 码表
0 0 10 20 30 40 50 60 70 80 90 100 110 120
\0 \n
1
☺ \v
2
☻ \f
3
♥ \r
4
♦ ♫
5
♣ ☼
标准字符特征库
C 标准字符特征库:ctype.h 标准字符特征库常用函数
BOOL isalnum( char c ); BOOL isalpha( char c ); BOOL isdigit( char c ); BOOL islower( char c ); BOOL isspace( char c ); BOOL isupper( char c ); char tolower( char c ); char toupper( char c );
6
♠ ►
7
\a ◄
8
\b ↕
9
\t ‼
¶ ▲
( 2 < F P Z d n
§
▼ ) 3 = G Q [ e o
_
(Space) * 4 > H R \ f p
↖
! 5 ? I S ] g q
↑
" , 6 @ J T ^ h r
↓
# 7 A K U _ i s
→
$ . 8 B L V ` j t
unsigned int FindCharNext(char key,STRING s,unsigned int pos);
在字符串中查找指定字符,记录其在字符串中的出现次数
unsigned int GetOccurrencesOfCharInString(char c,STRING s) { unsigned int pos = 0, count = 0; pos = FindCharFirst( c, s ); while( pos != inexistent_index ) { count++; pos = FindCharNext( c, s, pos + 1 ); } return count; }
字符串的比较
字符串的比较操作 原型:int CompareString( STRING s1, STRING s2 ); 意义:接受字符串参数 s1、s2,按照字典顺序比较两个字 符串的大小 返回值:若 s1 在前返回负值;相等返回 0;否则返回正值 必须使用此函数比较两个字符串的大小关系,不能直接使 用关系操作符 字符串比较示例 STRING s1 = "Hello", s2 = "World"; if( CompareString( s1, s2 ) < 0 ) …… 并不仅限字典顺序,确切地讲……
第6章 复合数据类型
学习目标
字符 字符串 数组 结构体 数据集
6.1 字 符
字符类型、字符文字与量
定义格式:char ch; const char cch = 'C'; 字符文字使用单引号对 实际存储时字符类型量存储字符的对应 ASCII 值 可使用 signed 与 unsigned 修饰字符类型
字符串的内容
获取字符串的特定字符
原型:char GetIthChar( STRING s, unsigned int pos ); 意义:获取字符串 s 中位置为 pos 处的字符 注意:字符位置从 0 开始编号
获取字符串的子字符串
原型:
STRING GetSubString(STRING s,unsigned int pos,unsigned int n);
6.3 数 组
数组的意义与性质 数组的存储表示 数组元素的访问 数组与函数 多维数组
数组的意义与性质
数组是具有相同数据类型且按一定次序排列的一组 变量的集合体。
内存
a[0]
a[1]
例: float array[10]; int a[8];
// 数值型数组
a[2] a[3] a[4]
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
意义:获取字符串 s 中从 pos 处开始的连续 n 个字符构成的 子字符串 注意:字符位置从 0 开始编号;若不存在连续 n 个字符,
字符串大小写转换