版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章智能仪器中的数据处理技术§4.1数学运算及常用函数法§4.2数据结构与典型的数据操作4.1.1数的表示方法浮点数浮点数(1)4字节浮点数D7D6D5D4D3D2D1D0地址数符尾数高7位DPTR+3尾数中8位DPTR+2尾数低8位DPTR+1阶码(+127)DPTR浮点数(1)3字节浮点数D7D6D5D4D3D2D1D0地址数符阶符阶码(+127)DPTR+2尾数高8位DPTR+1尾数低8位DPTR浮点数的加减运算(1)对阶(小阶对大阶)(2)结果数的规格化操作(3)浮点数的加减4.1.3常用函数的算法多项式运算泰勒级数基于迭代法的运算1)多项式运算
写成便于具有循环结构的形式初值:循环体:2)泰勒级数1、对SIN的计算(2)自然指数的计算(一)利用x/ln2求出结果的阶码(二)对后面部分展开得尾数(2)自然对数的计算3)基于迭代法的运算§4.2数据结构与典型的数据操作4.2.1线形表查找技术4.2.2排序4.2.1线形表查找技术
1、循序查找2、对半查找3、直接查找一、查表
所谓查表法就是把事先计算或测得的数据按照一定顺序编制成表格,根据被测参数的值或者中间结果,查出最终所需要的结果。
循序查找顺序查找就是从头开始,按照顺序把表中的元素项逐一地与给定的关键字进行比较。直接查找(LED)AJCB:MOVDPTR,#TABMOVA,R0MOVCA,@A+DPTRMOVDPTR,#PORTMOVX@DPTR,ARETTAB:DB3FH,06H,5BH,4FH,66H,6DH;DB7DH,07H,7FH,6FH;对半查找有序表的数据排列有一定规律,可以采用对半查找;就是每次截取表的一半,确定元素在哪一部分,逐步细分,缩小检索范围,从而大大加快查找速度。下页上页返回1.取数组中间的值mid和要搜索的值key相比较2.若key=mid,查找完毕。3.若,继续查找,取之间的中间值与key比较取之间的中间值与key比较4.直到找到搜索的数值或搜索区间为0。适用范围:数组已按大小顺序排列好采用对分查找减少搜索次数。进行对半查找时,需要设置两个指针LO和HI,分别保存低界和高界元素的序号。1、开始时,LO=0,HI=N-1。中心为[(LO+HI)/2]2、计算中心元素的地址AM=表首地址+(MI)*L根据中心元素的地址的位置可找出中心元素,并比较。如小于中心元素,则取低半表。
修改高界指针HI。
HI=MI-L。3、如相等,则成功。YYN开始i
0,j
N-1计算midd(mid)=key?Ni
mid+1j
mid-1N继续查找?输出“未找到”Y输出找到的信息结束i≤jmid=(i+j)\2d(mid)<key?对半查找子程序int
BinSearch(SeqList
R,KeyType
k,int
low,inthigh)//试写出二分查找的递归算法
#definen10
typedef
int
KeyType;
typedef
struct{
KeyTypekey;
InfoType
otherinfo;}NodeType;
typedef
NodeTypeSeqList[n+1];
int
BinSearch(SeqList
R,KeyType
k,int
low,inthigh){
intmid=(low+high)/2;
if(R[mid].key==k)return(mid);elseif(low>=high)return(0);elseif(R[mid].key>k)return(BinSearch(R,k,low,mid-1));elsereturn(BinSearch(R,k,mid+1,high));}int
BinSearch(SeqList
R,KeyTypek)//写一算法在有序表R[1..n]中进行二分查找,成功时返回结点的位置,失败时返回零
#definen10
typedef
int
KeyType;
typedef
struct{KeyType
key;InfoType
otherinfo;}NodeType;
typedef
NodeTypeSeqList[n+1];
int
BinSearch(SeqList
R,KeyTypek){intlow=1,high=n,mid;
while(low<=high){mid=(low+high)/2;
if(R[mid].key==k)return(mid);
if(R[mid].key>k)
high=mid-1;elselow=mid+1;}return(0);}4.2.2排序
1、冒泡排序2、希尔排序冒泡排序依次比较两个相邻的一对数据,如不符合规定的递增顺序,则交换两个数据的位置,比较依次进行,直到最后位置完成第一轮比较。而后进行第二轮比较,直到完成。冒泡排序
voidBubbleSort(SeqListR)//写一算法R[1..n]是待排序的记录,采用自下而上扫描对R作冒泡排序
#definen10
typedef
int
KeyType;
typedef
struct{KeyTypekey;InfoType
otherinfo;}RecType;
typedef
RecTypeSeqList[n+1];voidBubbleSort(SeqListR){int
i,j;Booleanexchange;
for(i=1;i<n;i++){exchange=FALSE;
for(j=n-1;j>=i;j--)if(R[j+1].key<R[j].key){R[0]=R[j+1];R[j+1]=R[j];
R[j]=R[0];exchange=TRUE;}
if(!exchange)return;}}希尔排序首先确定比较两个数据的间距,按等间距进行规定的排序比较,若符合排序要求,则保持现状,继续向前比较;若不符合排序要求,则交换两个数据的位置,并沿反向逐一比较,直到若符合排序要求,继续向前比较;直到排序正确为止。然后取间距为原一半,重复1直到间距为1
voidShellSort(SeqListR)//写一算法对顺序表R中的记录R[1..n]作希尔排序
#definen10
typedef
int
KeyType;
typedef
struct{
KeyTypekey;
InfoType
otherinfo;}RecType;
typedef
RecTypeSeqList[n+1];voidShellSort(SeqListR){
intincrement=n;do{increment=increment/3+1;
ShellPass(R,increment);}while(increment>1);}希尔排序//希尔排序
voidShellPass(SeqList
R,intd)//写一算法进行希尔排序中的一趟排序,d为当前增量
#definen10
typedef
int
KeyType;
typedef
struct{KeyType
key;InfoType
otherinfo;}RecType;typedef
RecTypeSeqList[n+1];voidShellPass(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品交付异常情况函6篇
- 热爱生命,珍惜时光小学主题班会课件
- 确认项目进度汇报频率与内容范围通知函(4篇范文)
- 文学沙龙:著名童话与寓言故事会小学主题班会课件
- AI生成式技术传统节日活动策划与执行
- 2025-2026学年浅析皮肤科临床教学设计
- 关于提交参展材料的函(7篇范文)
- 遵守交通规则,确保平安出行,小学主题班会课件
- 外语学习者掌握高级语法应用技能指导书
- 制造业质量管理体系与检测规范指南
- 2024年无人机测绘操控员(高级)技能鉴定理论考试题库资料(含答案)
- DL∕T 2010-2019 高压无功补偿装置继电保护配置及整定技术规范
- 青岛版五年级下册分数的加减法练习200题及答案
- 房屋居住权合同
- 《电路分析基础》网孔分析法
- 磁浮风机技术说明(招标专用)
- GB/T 4437.1-2023铝及铝合金热挤压管第1部分:无缝圆管
- NB-T 11022-2022 架空导线用绞合型碳纤维复合材料芯
- 公文识读与写作培训课件
- 生理学第四章第二节 心脏的泵血功能
- 入团志愿书空白表格最完整的
评论
0/150
提交评论