• halcontuple元组计算


    在HDevelop中

    算数 

    a:=[-10,100,130]
    t:=[-0.5,0.5,1]
    
    tuple_abs (a, Abs)
    *计算一个元组的绝对值
    *[10, 100, 130]
    
    tuple_acos (t, ACos)
    *计算一个元组的反余弦
    *参数1:输入元组。  限制:-1<=t<=1
    *[2.0944, 1.0472, 0.0]
    
    tuple_add (a, t, Sum)
    *两个元组相加
    *[-10.5, 100.5, 131]
    
    tuple_asin (t, ASin)
    *计算一个元组的反余弦
    *参数1:输入元组。  限制:-1<=t<=1
    *[-0.523599, 0.523599, 1.5708]
    
    tuple_atan (a, ATan)
    *计算一个元组的反正切
    *[-1.47113, 1.5608, 1.5631]
    y:=[10,-10,10,5,0,10]
    x:=[10,10,20,0,5,-10]
    a:=[10.5,-10.5,0,3.0]
    b:=[3.1415, 0,1.5708, 0.785]
    
    
    tuple_atan2 (y, x, ATan)
    *计算一个元组四个象限的反正切
    *参数1:输入y值的元组
    *参数2:输入x值的元组
    *参数3:返回元组的反正切--单位:弧度
    *说明:tanA=y/x, 则 A=arctany/x
    *[0.785398, -0.785398, 0.5235]
    
    
    tuple_ceil (a, Ceil)
    *计算一个元组的上限函数--大于或等于元素的最小整数
    *上限函数始终作为浮点数返回
    *[11.0, -10.0, 0.0, 3.0]
    
    tuple_cos (b, Cos)
    *计算一个元组的余弦
    *参数1:单位:弧度
    *[-1.0, 1.0, -3.67321e-006, 0.707388]
    
     tuple_cumul (y, Cumul)
    *计算一个元组的累计和
     *[10, 0, 10, 15, 15, 25]
    y:=[1,2,10,5,0,10]
    x:=[10,10,20,0,5,-10]
    a:=[10.5,-10.5,0,3.0]
    b:=[3.1415, 0,1.5708, 0.785]
    c:=[2,1,-2,3,5,-10]
    
    tuple_deg (b, Deg)
    *将一个元组从弧度转换为角度
    
    tuple_div (x, c, Quot)
    *将两个元组相除
    *[5, 10, -10, 0, 1, 1]
    
    
    tuple_exp (y, Exp)
    *计算以e为底的指数【eⁿ】
    *参数1:指数
    *[2.71828, 7.38906, 22026.5, 148.413, 1.0, 22026.5]
    
    tuple_fabs (a, Abs)
    *计算一个元组(例如浮点数)的绝对值
    *[10.5, 10.5, 0.0, 3.0]
    
    tuple_floor (a, Floor)
    *返回小于等于元素的整数---地板函数
    *[10.0, -11.0, 0.0, 3.0]
    y:=[1,2,10,5,0,10]
    c:=[2,1,-2,3,5,-10]
    
    tuple_ldexp (y, c, Ldexp)
    *计算两个元组的返回长双精度指数函数
    *[4.0, 4.0, 2.5, 40.0, 0.0, 0.00976563]
    *计算公式:看下面

    b:=[2,1,20,3,5,10]
    
    tuple_log (b, Log)
    *自然对数
    *自然对数是以常数e为底数的对数,记作lnN(N>0

    y:=[1,2,10,5,0,10]
    b:=[2,1,20,3,5,10]
    x:=[3.5,6,8.9,4,1.1,6.5]
    c:=[2.8,1.4,20.3,3.5,5.9,10.0]
    
    tuple_log10 (b, Log)
    *底为10的对数
    *[0.30103, 0.0, 1.30103, 0.477121, 0.69897, 1.0]
    
    tuple_max2 (y, b, Max2)
    *对应位置的最大值
    *[2, 2, 20, 5, 5, 10]
    
    tuple_min2 (y, b, Min2)
    *对应位置的最小值
    *[1, 1, 10, 3, 0, 10]
    
    tuple_mod (y, b, Mod)
    *功能:整型数相除的余数
    *[1, 0, 10, 2, 0, 0]
    
    tuple_fmod (x, c, Fmod)
    *浮点数相除的余数
    *[0.7, 0.4, 8.9, 0.5, 1.1, 6.5]
    
    tuple_mult (b, x, Prod)
    *两个元组相乘
    *[7.0, 6, 178.0, 12, 5.5, 65.0]
    
    tuple_neg (y, Neg)
    *取反---乘-1
    y:=[1,2,10,5,0,10]
    b:=[2,1,20,3,5,10]
    x:=[3.5,6,8.9,4,1.1,6.5]
    c:=[2.8,1.4,20.3,3.5,5.9,10.0]
    
    tuple_pow (b, y, Pow)
    *冥函数
    *参数1:底
    *参数2:指数
    *[2.0, 1.0, 1.024e+013, 243.0, 1.0, 1e+010]

    指数为常数的函数称为幂函数。例如函数y=x0 、y=x1、y=x2、y=x-1等都是幂函数

    y:=[1,2,10,5,0,10]
    b:=[2,1,20,3,5,10]
    x:=[3.5,6,8.9,4,1.1,6.5]
    c:=[2.8,1.4,20.3,3.5,5.9,10.0]
    a:=[90,180,45,0,30,270]
    a1:=[1.5708, 3.14159, 0.785398, 0.0, 0.523599, 4.71239]
    d:=[1,-2,10,-5,0,10]
    
    tuple_rad (a, Rad)
    *角度转换为弧度
    *[1.5708, 3.14159, 0.785398, 0.0, 0.523599, 4.71239]
    
    tuple_sgn (d, Sgn)
    *计算一个元组的正负
    *[1, -1, 1, -1, 0, 1]
    
    tuple_sin (a1, Sin)
    *正弦-->sin函数
    *参数1:单位:弧度
    *[1.0, 2.65359e-006, 0.707107, 0.0, 0.5, -1.0]
    
    tuple_sqrt (b, Sqrt)
    *平方根(二次方根)
    *[1.41421, 1.0, 4.47214, 1.73205, 2.23607, 3.16228]
    
    tuple_sub (x, y, Diff)
    *相减
    *[2.5, 4, -1.1, -1, 1.1, -3.5]
    d:=[1,-2,10,-5,0,10]
    tuple_tan (d, Tan)
    *计算一个元组的正切

    位操作

    a:=[3,2,1]
    b:=[4,2,3]
    tuple_band (a, b, BAnd)
    *位与-->对应位都是1才是1
    *[0, 2, 1]
    
    tuple_bor (a, b, BOr)
    *按位或-->对应位有1就是1
    *[7, 2, 3]
    
    tuple_bnot (a, BNot)
    *逐位取逻辑非
    *[-4, -3, -2]
    
    tuple_bxor (a, b, BXor)
    *异或-->如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0
    *[7, 0, 2]
    
    tuple_lsh (a, b, Lsh)
    *逐位左移
    *参数1:待移位的元组
    *参数2:移位次数
    *如果没有发生溢出,此操作相当于乘以2^b
    *如果a为负值,结果取决于硬件
    *如果移位为负数或大于32,则结果未定义
    *[48, 8, 8]
    
    tuple_rsh (a, b, Rsh)
    *逐位右移
    *相当于除以2^b
    *如果a为负值,结果取决于硬件
    *如果移位为负数或大于32,则结果未定义
    *[0, 0, 0]

    比较

    a:=[3,2,1]
    b:=[4,2,3]
    c:=[4,3,3]
    
    tuple_equal (a, b, Equal)
    *两个元组是否相同
    *0--不同    1--相同
    
    tuple_greater (b, c, Greater)
    *一个元组是否大于另一个元组
    *按顺序比较
    *0--b不大于c     1--b大于c
    
    tuple_greater_equal (b, c, Greatereq)
    *一个元组是否大于等于另一个
    *0--b<c     1--b>=c
    
    tuple_less (b, c, Less)
    *一个元组是否小于另一个元组
    0--b不小于c     1--b小于c
    
    tuple_less_equal (b, c, Lesseq)
    *一个元组是否小于等于另一个
    *0--b>c     1--b<=c
    
    tuple_not_equal (b, c, Nequal)
    *两个元组是不是不等
    * 0--相等    1--不等

    转换

    a:=[65,97,49]
    b:=[4.5,-2.9,3.4567]
    c:='6814031a'
    d:='12345678'
    e:=['A', 'a', '1']
    
    tuple_chr (a, Chr)
    *根据ASCII码将整型元组转换为字符
    *参数1:ASCII吗
    *['A', 'a', '1']
    
    tuple_chrt (a, Chrt)
    *根据ASCII码将整型元组转换为字符串
    *'Aa1'
    
    tuple_int (b, Int)
    *一个元组转换为一个整型元组
    *小数部分直接抛弃,不四舍五入
    *[4, -2, 3]
    
    
    tuple_is_number (c, IsNumber)
    *检测一个字符串元组是否表示数字
    * 1--数字字符串   0--非数字字符串
    
    tuple_number (d, Number)
    *将一个字符串元组转换为一个数值
    *如果d不是数字字符串,就返回原字符串
    *12345678
    
    tuple_ord (e, Ord)
    *将长度为1的字符串的元组转换为它们相应的ASCII码元组
    *[65, 97, 49]
    a:=[-65,97.8,49,0]
    f:='liming'
    b:=[-65,97.8,49.2,0]
    c:=-123456.8763
    d:=254
    e:=0xff
    
    tuple_ords (f, Ords)
    *将一个字符串的元组转换为它们ASCII码的元组
    *[65, 97, 49]
    
    tuple_real (a, Real)
    *转换为浮点数
    *[-65.0, 97.8, 49.0, 0.0]
    
    tuple_round (b, Round)
    *转换为整型数--四舍五入
    *[-65, 98, 49, 0]
    
    tuple_string (f, '-10.3s', String)
    *转换为字符串
    *参数1:输入
    *参数2:格式
    *       数值时:
    *       '10.2f'   总长度10位,小数点2位   f表示浮点数
    *       '-10.2f'   -表示左对齐  否则右对齐
    *       '.7f'     总长度不限,小数点7位
    *       '+10.3f'   +表示前面加上+-*       'x'        转化为小写16进制
    *       'X'        转化为大写16进制
    *       '.8d'       转化为十进制,总长度8位 
    *       字符串时:
    *        '10s'     转换为总长度10位的字符串
    *        '-10s'    -表示左对齐  否则右对齐
    *        '-10.3s'   总长度10位,截取前3个字符   'lim       '

    创建

    a:=[1,2,3]
    b:=[10,20,30]
    
    tuple_concat (a, b, Concat)
    *合并
    *[1, 2, 3, 10, 20, 30]
    
    tuple_gen_const (5, 0, Newtuple)
    *创建一个特殊长度的元组和初始化它的元素
    *参数1:新元组长度
    *参数2:用于初始化元组元素的常量
    *参数3:新元组
    *[0, 0, 0, 0, 0]
    
    tuple_rand (6, Rand)
    *返回0到1之间的随机数元组
    *参数1:要生成的元组的长度
    *参数2:随机数的元组
    *[0.693658, 0.168389, 0.895945, 0.365523, 0.332642, 0.601562]

    元素顺序 

    a:=[1,2,3]
    b:=[10,20,30]
    c:=[500,200,400]
    
    
    tuple_inverse (b, Inverted)
    *将一个元组反置(反转)
    *[30, 20, 10]
    
    tuple_sort (c, Sorted)
    *按升序排序
    *[200, 400, 500]
    
    tuple_sort_index (c, Indices)
    *先按升序排序,返回排序后的元素在原元组中的索引(从0开始)
    *[1, 2, 0]

    特征

    a:=[1,2,3]
    b:=[10.2,20,30.4,80,90,60,50]
    c:=[500,200,400]
    
    
    tuple_deviation (a, Deviation)
    *返回元组元素的标准差
    *1.0
    
    tuple_length (a, Length)
    *返回元组元素数目
    *3
    
    tuple_max (c, Max)
    *返回元组的最大元素
    *500
    
    tuple_min (a, Min)
    *返回元组的最小元素
    *1
    
    tuple_mean (a, Mean)
    *返回元组的平均值
    *2.0
    
    tuple_median (b, Median)
    *返回一个元组元素的中值
    *50  
    
    tuple_sum (a, Sum)
    *返回所有元素的和
    *6
      
      

    逻辑运算 

    a:=[1,2,3,0,4]
    b:=[2,1,4,5,0]
    c:=[5,0,3,0,0]
    
    
    tuple_and (a, b, And)
    *数值与--对应位数值都不等于0才是1
    *[1, 1, 1, 0, 0]
      
    tuple_not (a, Not)
    *数值非---非0返回0,0返回1
    *参数1:只能包含整数
    *如果输入元组为空,则会引发异常
    *[0, 0, 0, 1, 0]
      
    tuple_or (a, c, Or)
    *数值或--对应位有非0返回1,都是0返回0
    *[1, 1, 1, 0, 1]
    
    tuple_xor (a, c, Xor)
    *数值异或
    *对应位一个是0一个不是0时其结果是1,否则结果为0
    *【相同是0,不同是1】
    *[0, 1, 0, 0, 1]

    选择

    a:=[3,'liming',5,6,1,2,3,'liming',0]
    b:=[3,'liming']
    c:=[7,1]
    
    tuple_find (a, b, Indices)
    *返回参数2在参数1中出现的索引
    *如果没有返回-1
    *如果其中一个或两个输入元组都为空,则运算符返回一个空元组
    *允许混合字符串和数字
    *[0, 6]
    
    
    tuple_first_n (a, 5, Selected)
    *选择前面的元素,直到索引n[包含索引n的元素]
    *参数2:索引n
    *索引从0开始,总共返回索引+1个元素
    *如果参数1为空,则会引发异常
    *[3, 'liming', 5, 6, 1, 2]
    
    tuple_last_n (a, 3, Selected1)
    *选择从索引“n”开始到元组末尾的所有元素,包含索引n的元素
    *元组元素的索引从0开始,如果Tuple为空,则会引发异常
    *[6, 1, 2, 3, 'liming', 0]
    
    tuple_remove (a, c, Reduced)
    *移出索引n的元素
    *参数2:需要移除的索引
    *元组元素的索引从0开始,即第一个元组元素的索引为0。将忽略超出范围的重复项和索引
    *如果元组为空,则运算符返回一个空元组
    *[3, 5, 6, 1, 2, 3, 0]
    
    tuple_select (a, c, Selected2)
    *返回指定索引的元素
    *参数2:需要返回的索引
    *元组元素的索引从0开始
    *如果Tuple为空,则会引发异常
    *['liming', 'liming']
    
    tuple_select_range (a, 3, 5, Selected3)
    *返回指定索引区域的元素
    *参数2:起始索引
    *参数3:终止索引
    *参数2和参数3的元素都包含;如果索引相等,则只选择一个元素
    *如果Leftindex和Rightindex是空元组,则运算符返回空元组。如果这些参数或元组中只有一个是空元组,则会引发异常
    *[6, 1, 2]
    
    
    d:=[4,30,5,6,1,2,3,20,0]
    tuple_select_rank (d,4, Selected4)
    *先升序排序,再返回排序后指定索引的元素
    *参数2:索引
    *4
    
    e:=['abc','liming','mKbc','5842']
    f:=[1,2,0,3]
    tuple_str_bit_select (e, 1, Selected5)
    *返回指定索引的字符
    *参数2:索引
    *['b', 'i', 'K', '8']
    
    g:=[0,0,1,1,1,2,0,1]
    tuple_uniq (g, Uniq)
    *连续相同元素只取一个
    *允许在输入元组中混合字符串和数字
    *[0, 1, 2, 0, 1]

    字符串运算符

    a:=['abc,mkb/jkb','tangu,liming/qwe']
    b:=[',','/']
    
    tuple_split (a, b, Substrings)
    *分割字符串
    *参数2:分隔符
    *      如果就一个,那么所有元素都用这个分隔符
    *      如果参数2与参数1元素个数相同,那么一一对应使用分隔符
    *['abc', 'mkb/jkb', 'tangu,liming', 'qwe']
    
    c:=[3,5]
    tuple_str_first_n (a, c, Substring)
    *从起始字符开始截取到指定索引位置(包含索引)
    *参数2:索引
    *['abc,', 'tangu,']
    
    tuple_str_last_n (a, c, Substring1)
    *从指定索引到末尾进行截取
    *参数2:索引
    *[',mkb/jkb', ',liming/qwe']
    
    c1:=[',','/']
    a1:=['ab/c,mk,b/jkb','tan/gu,liming/q,we']
    tuple_strchr (a1, c1, Position)
    *返回指定字符的索引--找到左边第一个匹配的字符就停止
    *参数2:指定字符
    *[4, 3]
    
    
    tuple_strrchr(a1, c1, Position1)
    *返回指定字符的索引--找到右边第一个匹配的字符就停止
    *[7, 13]
    
    a2:=['liming李明','tangu塘沽']
    tuple_strlen (a2, Length)
    *返回字符串的长度
    *一个汉子算一个字符
    *[8, 7]
    
    a3:=['lim塘沽ing塘沽sgfe','ta李明ngu李明sdfghj']
    c2:=['塘沽','李明']
    tuple_strrstr (a3, c2, Position2)
    *返回指定字符串的索引--找到右边第一个匹配的字符串就停止
    *参数2:指定字符串
    *[8, 7]
    
    
    tuple_strstr(a3, c2, Position3)
    *返回指定字符串的索引--找到左边第一个匹配的字符串就停止
    *参数2:指定字符串
    *[3, 2]

  • 相关阅读:
    Linux 命令大全
    MySQL 存储 utf8mb4
    PHP房贷计算器代码,等额本息,等额本金
    laravel 原生 sql
    include_once 问题
    laravel count distinct
    微信小程序显示cms里的html文章
    PHP文件上传
    Ajax做无刷新分页
    PHP封装返回Ajax字符串和JSON数组
  • 原文地址:https://www.cnblogs.com/liming19680104/p/16012358.html
Copyright © 2020-2023  润新知