当前位置: 首页 > 期刊 > 《包头医学院学报》 > 2000年第3期
编号:10239484
百分位数的程序计算法
http://www.100md.com 《包头医学院学报》 2000年第3期
     作者:白金牛 杜鹏飞 郑恩洋

    单位:白金牛 郑恩洋(包头医学院计算机教研室,包头 014010);杜鹏飞(包头市运管处)

    关键词:

    包头医学院学报000308 中图分类号 TP311.11 文献 标识码 B 文章编号 1006-740X(2000)03-0186-02

    医学统计学中经常需要计算百分位数,如果用手工计算,运算量往往较大, 特别在样本例数较多时,往往需手工排序或列频数表,特别烦琐,而且容易出错,一般的软 件包也不具有此项功能,笔者用程序设计的方法,用很 短的一段程序就实现了此项功能,用同样的编程思想,也可利用其它的高级语言实现。下面 笔者以FoxBase编程为例,介绍具体的实现方法,以期为卫生统计工作者提供一种计算百分 位数的简便算法。

    1 建立数据库文件

    设数据库文件名为SJK.DBF,结构如下:

    Structure for database: C:\\FOX\\SJK.DBF

    Field Field Name Type Width Dec

    1 SAMPLE Numeric 10 2

    **Total** 11

    2 将原始数据录入上面的库中

    3 编程

    程序清单如下:

    CLEA ALL

    SET TALK OFF

    USE SJK

    SORT TO SJK1 ON SAMPLE

    USE SJK1

    COUNT TO N

    @ 10,10 SAY“输入百分位数时,以小数形式输入,如第95%位数输入0.95”LNPUT“请输 入要计算的百分位数”TO P

    N1=INT(P*(N+1))

    N0=P*(N+1)

    M=N0-N1

    N2=INT(P*N+1)

    GO N1

    P0=SAMPLE

    GO N2

    P1=SAMPLE

    PX=P0+(P1-P0)*M

    PP=P*100

    @10,10 SAY“所要求的第”

    @ROW(),COL() SAY PP

    @ROW(),COL() SAY’%百分位数为’

    @ROW(),COL() SAY PX

    SET TALK ON

    RETU

    上面程序的主要思想是,首先求出样本例数N,算出百分位所在记录号(N1,N2),P为从键盘 输入的百分位数,程序找到百分位数所在记录号(N1,N2),与确定百分位数所在组段方法类 似,然后将变量值取出,赋给P0,P1,用直线内插法求出百分位数的精确值,最后显示出结 果。由于程序的算法是按记录号查找百分位数的,所以不管例数多少都能计算。

    作者简介:白金牛(1967-),男,内蒙古杭锦旗人,学士 ,讲师。

    收稿日期:2000-04-25, 百拇医药