首页 > 范文大全 > 正文

基于VB的测量数据有效数字取位程序开发

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于VB的测量数据有效数字取位程序开发范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要: 测量数据有效数字取位时存在舍入问题,合理的舍入法则会减小误差,同时本文根据测量数据量大的特点开发了批量处理的程序。

Abstract: Effective digital position of measurement data has rounding problems. Reasonable rounding rules will reduce the error. This paper develops batch processing program of measurement data according to the characteristics of the large amount of measured data.

关键词: VB开发;有效数字取位;测量数据

Key words: VB development;effective digital position;measurement data

中图分类号:TP311.1 文献标识码:A 文章编号:1006-4311(2013)24-0174-02

0 引言

实际测量工作中经常遇到测量与计算结果数据有效数字的取位问题,取位时会引入误差,若舍入得当则此误差就会变小。

同时由于测量数据量的较大,若单数据进行手工取位则是一项较为繁琐且易出错的过程,因此本文针对此问题进行了程序的开发可以对测量数据进行批量的处理。

1 数据舍入法则

1.1 “四舍五入”法则

“四舍五入”法则规定,有效数字右一位为4或者小于4时则舍去,有效数字右一位为5或者大于5时则进1。

如数字3.145,若要求保留两位有效数字,由于有效数字右一位为4则取位后为3.1;若要求保留三位有效数字,由于有效数字右一位为5,则取位后为3.15。

但是由于测量数据的特殊性,在其取位时一般不采用此法则而是采用“四舍六入尾留双”法则。

1.2 “四舍六入尾留双”法则

此法则为国家科技部推荐使用的,其要点有:

a、有效数字右一位为4或者小于4时则舍去,如数字5.532,若保留两位有效数字,取位后为5.5;

b、有效数字右一位为6或者大于6时则进1,如数字7.378,若保留三位有效数字,取位后为7.38;

c、有效数字右第一位为5,后面的数字不全为0时则进1,如数字7.452,若保留两位有效数字,取位后为7.5;

d、有效数字右第一位为5,后面的数字全为0时,则有效位最后一位为奇数时则进1,若有效位最后一位为偶数时(包括0)则舍去,如数字8.35,若保留两位有效数字,取位后为8.4;数字8.25,若保留两位有效数字,取位后为8.2。

2 VB程序设计

2.1 单数据有效数字取位程序

首先,进行转换前数据的输入;

第二,选择需要保留的有效数字位数;

最后,输出转换后的数据。

Private Sub Command1_Click()

Dim bedata As Double ‘定义转换前数据

Dim afdata As Double ‘定义转换后数据

Dim sigdata As integer ‘有效数字位数

Select Case sigdata ‘选择有效数字位数

Case 0

‘保留整数位

Afdata=*

Case 1

‘保留2位有效数字

Afdata=*.*

Case 2

‘保留3位有效数字

Afdata=*.**

…………………

End select

2.2 文件批量处理有效数字取位程序

首先,定义待处理文件格式及数据组织格式;文件格式为文本文件(*.dat、*.txt),数据组织格式为:ID,data1,data2,data3;第二,打开文件读取数据,对数据进行取位处理;第三,保存取位后的数据。

Private Sub Command3_Click()

…………………

CommonDialog1.Filter = "Text (*.txt;*.dat)|*.txt;*.dat" ‘文本格式

…………………

Open ff11 For Input As #1 ‘打开文件

Do While Not EOF(1)

Line Input #1, str1

‘数据提取

data = Split(str1, ","):dh(j, 0) = data(0) :xx(j, 0) = data(1)

‘选择有效数字位数

Select Case sigdata

Case 0

‘保留整数位

xx(j, 0)=*:yy(j, 0)=*::hh(j, 0)=*

Case 1

‘保留2位有效数字

xx(j, 0)=*.*:yy(j, 0)= *.*:hh(j, 0)= *.*

…………………

End select

Loop

Close #1

3 实例检验

新疆维吾尔自治区基础测绘2012年禾木南测区共156图幅,每幅图4个图廓坐标8个数据,共1248个数据,要求保留小数点后一位。

若进行手工单数据取位则相当繁琐,因此使用本程序进行了处理取得了较好的结果。

4 结束语

测量中对数据有效数字的合理取位会减小误差,同时由于测量数据量较大,人工取位不仅容易出错且较为繁琐,本文的程序较好地解决了此问题并在实际运用中得到了检验。

参考文献:

[1]辛海涛.VB数据库访问原理研究[J].哈尔滨商业大学学报(自然科学版),2001(03).

[2]叶水仙,林国忠.基于vb的数据库应用开发关键技术的解决方案[J].科学技术与工程,2006(10).

[3]王志东.用VB访问数据库[J].集宁师专学报,2002(04).