当前位置:文档之家› Codesys标准函数说明

Codesys标准函数说明

Codesys标准函数说明
Codesys标准函数说明

一、标准库函数Standard Library

标准库函数就是STANDARD.LIB中的一些常用的函数。

1.1双稳功能块Bistable Function Blocks

1.1.1SR功能块

功能描述:

本功能块是对变量进行置位与复位。也就是说等同与PLC中的SET与RESET命令。当SET1为TRUE是则输出Q1置位,值为TRUE并保持。当RESET为TRUE时复位,值为FALSE并保持。注意:当SET1与RESET同时为TRUE时输出为FALSE。(RS功能块此时为TRUE)

功能块如下图:

输入:SET1,BOOL型

RESET,BOOL型

输出:Q1,BOOL型

1.1.2RS功能块

功能描述:

本功能块的主要功能同SR块。也是用来实现置位与复位的功能。当SET为TRUE是则输出Q1置位,值为TRUE并保持。当RESET1为TRUE时复位,值为FALSE并保持。注意:当SET与RESET1同时为真时输出为TRUE。(SR功能块此时为FALSE)功能块如下图:

输入:SET,BOOL型

RESET1,BOOL型

输出:Q1,BOOL型

1.1.3SEMA功能块

功能描述:

本功能块的主要功能同SR块。也是用来实现置位与复位的功能。当CLAIM为TRUE时输出为TRUE。当RELEASE为TRUE时输出为FALSE。当两者同是为TRUE是输出为FALSE。本功能块与SR以及RS功能块的最大的不同就是本功能块是同过一个内部变量X来传递值的。语句如下:

BUSY := X;

IF CLAIM THEN X:=TRUE;

ELSE IF RELEASE THEN BUSY := FALSE; X:= FALSE;

END_IF

功能块如下图:

输入:CLAIM,BOOL型

RELEASE,BOOL型

输出:BUSY,BOOL型

1.2计数器功能块Counter

1.2.1 CTD功能块

功能描述:

本功能块是自减记数器。也就是说当信号由低电频变为高电频时进行自减记数。其中CD是输入信号,LOAD是初始化信号,也就是说当LOAD输入为TRUE时功能块开始工作。PV是初始化记数值,也就上通过PV来初始化CV的值。当每有一个输入信号时,则CV减一,直到CV减到0时输出Q有输出为TRUE。

功能块如下图:

输入:CD,BOOL型

LOAD,BOOL型

PV,INT型

输出:Q,BOOL型

CV,INT型

1.2.2CTU功能块

功能描述:

本功能块是自加记数器。也就是说当信号由低电频变为高电频时进行加一记数。其中CU是输入信号,RESET是复位信号,也就是说当LOAD输入为TRUE时功能块复位。CV 是当时记数值。当每有一个输入信号时,则CV加一,直到CV加到CV=PV时输出Q有输出为TRUE。

功能块如下图:

输入:CU,BOOL型

RESET,BOOL型

PV,INT型

输出:Q,BOOL型

CV,INT型

1.2.3CTUD功能块

功能描述:

本功能块是一个可以进行自减也可以进行自加的功能块,也就是说它整合了前面两个功能块的功能。当输入用CU、RESET及PV,也就是说当RESET有一个信号,则CV会被初始化为0,此时功能块是用作为自加计数器,对CU进行记数。当CV=PV时在QU端有输出。功能同CTU功能块。

当LOAD有一个信号时,则CV会被初始化为PV,此时本功能块会被用作为一个自减计数器。当有输入时则CV减一,当CV=0是QD有输出。

功能块如下图:

输入:CU,BOOL型

CD,BOOL型

RESET,BOOL型

LOAD,BOOL型

PV,INT型

输出:QU,BOOL型

QD,BOOL型

CV,INT型

1.3 字符串操作函数String Functions

1.3.1 CONCAT函数

功能描述:

这是一个串连接函数。它的主要功能就是把两个输入串连成一个串。

函数块如下图:

输入:STR1,STRING型

STR2,STRING型

输出:由于功能块与函数的区别,函数的输出即返回值是用户自己定义的变量,是STRING 型。

1.3.2 DELETE函数

功能描述:

本函数是从给定的串中删除给定位置开始的字符串。STR是输入串,LEN是要删除的长度,POS是开始的位置。

函数块如下图:

输入:STR,STRING型

LEN,INT型

POS,INT型

输出:完成操作后的串,STRING型

1.3.3 FIND函数

功能描述:

本函数就是在给定的串中查找所要查的串的位置。给出第个一个字符的位置。

函数块如下图:

输入:STR1,STRING型

STR2,STRING型

输出:STR2首字符在STR1中的位置。INT型

1.3.4 INSERT函数

功能描述:

本函数就是在串的给定的位置中插入一个串。STR2串插入STR1中的POS位置。

函数块如下图:

输入:STR1,STRING型

STR2,STRING型

POS,INT型

输出:完成操作后的串,STRING型

1.3.5 LEFT函数

功能描述:

从给定的串的左开始取字符串SIZE位。

函数块如下图:

输入:STR,STRING型

SIZE,INT型

输出:完成操作后的串,STRING型

1.3.6 LEN函数

功能描述:

计算字符串的长度。

函数块如下图:

输入:STR,STRING型

输出:给定的字符串的长度,INT型

1.3.7 MID函数

功能描述:

取给定的字符串的第POS位开始的LEN位。

函数块如下图:

输入:STR,STRING型

LEN,INT型

POS,INT型

输出:完成操作后的串,STRING型

1.3.8 REPLACE函数

功能描述:

把STR1中第P位开始的L位替换成STR2。

函数块如下图:

输入:STR1,STRING型

STR2,STRING型

L,INT型

P,INT型

输出:完成操作后的串,STRING型

1.3.9 RIGHT函数

功能描述:

从给定的串的右开始取字符串SIZE位。

函数块如下图:

输入:STR,STRING型

SIZE,INT型

输出:完成操作后的串,STRING型

1.4定时器功能块Timer

1.4.1RTC功能块

功能描述:

当输入为TRUE时,则把PDT的时间付给CDT同时CDT开始记时,输出Q为TRUE。当输入EN为假是CDT为默认时间。

功能块如下图:

输入:EN,BOOL型

PDT,DT型

输出:Q,BOOL型

CDT,DT型

1.4.2TOF功能块

功能描述:

当输入IN由高电频变为低电频时开始记时,当ET记时达到给定的时间PT时,输出由高电频变为低电频。

功能块如下图:

输入:IN,BOOL型

PT,TIME型

输出:Q,BOOL型

ET,TIME型

1.4.3TON功能块

功能描述:

当输入IN由低电频变为高电频时开始记时,当ET记时达到给定的时间PT时,输出由低电频变高低电频。

功能块如下图:

输入:IN,BOOL型

PT,TIME型

输出:Q,BOOL型

ET,TIME型

1.4.4TP功能块

功能描述:

使输入的信号IN保持PT时间,也就是说当有输入是输出Q就为TRUE,同时保持,此时ET开始记时,当ET=PT是,输出变为FALSE,同时保持。

功能块如下图:

输入:IN,BOOL型

PT,TIME型

输出:Q,BOOL型

ET,TIME型

1.5触发保持功能块Trigger

1.5.1F_TRIG功能块

功能描述:

输入每有一个由高电频向低电频的跳变时输出Q就有一个输出TRUE。

功能块如下图:

输入:CLK,BOOL型

输出:Q,BOOL型

1.5.2R_TRIG功能块

功能描述:

输入每有一个由低电频向高电频的跳变时输出Q就有一个输出TRUE。

功能块如下图:

输入:CLK,BOOL型

输出:Q,BOOL型

二、模拟量标定库AnalogFilter Library

模拟量标定库就是指AnalogFilter.lib中的一些库函数。

2.1 CUT功能块

功能描述:

把输入值进行预处理,调整斜率,消除两端非线性影响。调整效果见图:

功能块如下图:

输入:(1)Input,UINT型,要处理的信号。

(2)PAR_InputILowLimit,UINT型,用来控制输出的下限。当

Input<=256*PAR_InputILowLimit时输出为0。

(3)PAR_InputHighLimit,UINT型,用来控制输出的上限。当

Input>=256*PAR_InputHighLimit时输出就为0。

输出:(1)Output,UINT型,处理完的信号。

(2)LowLimit,BOOL型,Input<=256*PAR_InputILowLimit时LowLimit为TRUE。

(3)HighLimit,BOOL型,Input>=256*PAR_InputHighLimit时HighLimit为TRUE。

2.2 HP功能块

功能描述:

设置一个死区,把死区以内的值都设为0。功能如图:

功能块如下图:

输入:(1)Input,UINT型,输入信号。

. (2)PAR_CutLimit,UINT型,死区控制参数。当Input<=65535*PAR_CutLimit%时输出为0。

输出:(1)Output,UINT型,处理完的信号。

2.3 JoyFilter功能块

功能描述:

JoyFilter块是一个双向的模拟量标定块,也就是说它对输入的模拟量进行预处理,把输出范围调整为-32767~32767。

功能块如下图:

输入:

(1)AnalogInput,UINT型,模拟量的输入信号。

(2)DI_JoystickDirSwitchPOS,BOOL型,正向微动开关。当

PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向正向移动,那么只有正向微动开关TRUE,OUTPUT才会有输出。

(3)DI_JoystickDirSwitchNEG,BOOL型,负向微动开关。当

PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向负向移动,那么只有负向微动开关TRUE,OUTPUT才会有输出。

(4)PAR_NegFull,UINT型,负向输入的调节参数。取值范围:0~255,主要用于当负向输入最大时,调节参数使得OUTPUT也为负向最大。

(5)PAR_POSFull,UINT型,正向输入的调节参数。取值范围:0~255,主要用于当正向输入最大时,调节参数使得OUTPUT也正负向最大。

(6)PAR_Zero,UINT型,零输入的调节参数。取值范围:0~255,主要用于当手柄在零位时,即零输入时,调节参数使得OUTPUT也为零。

(7)PAR_DeadBand,UINT型死区设置参数。取值范围:0~100。当输入进入参数设置范围,输出为零

(8)PAR_NegProgression,SINT型。取值范围:-100~100,设置负向输出缓冲曲线度,手柄负向输出值相对于输入值的一个响应曲线,曲线如图:

x

(9)PAR_PosProgression,SINT型。取值范围:-100~100,设置正向输出缓冲曲线度,手柄正向输出值相对于输入值的一个响应曲线。

(10)PAR_MinErrorDifference,UINT型,取值范围:0~100,设置出错范围,当输入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。

(11)PAR_Fault O nDelay,UINT型,取值范围:0~255,过载延时。

(12)PAR_DirSwitchDiagnosticNotUse,BOOL型,此参数为TRUE时,微动开关无效,为FALSE时,微动开关有效

输出:

(1)OutputEable,BOOL型,输出使能,为TRUE是块才会有输出。

(2)Output,INT型,调整后的信号量,输出数值范围-32767~32767

(3)ErrorHigh,BOOL型,当输入超出PAR_Full +5000范围时,ErrorHigh为TRUE,输出置零。

(4)ErrorLow,BOOL型,输入超出PAR_Zero–PAR_MinErrorDifference范围,ErrorHigh为TRUE,并把输出置零。

(5)JoystickDirSwitchPOSMissing,BOOL型,正向微动开关出错时,值为TRUE。

(6)JoystickDirSwitchNEGMissing,BOOL型负向微动开关出错时,值为TRUE。(7)JoystickDirSwitchPOSAndNEGOn,BOOL型,正、负向微动开关同时为TRUE时,值为TRUE。

2.4 JoystickAllnputOutOfRange功能块

功能描述:

本功能块是用来实现对一个模拟量输入的观察。

功能块如下图:

输入:

(1) Allnput,UINT型,需要观察的模拟量信号。

(2) PAR_PosFull,UINT型,正向最大调整参数。

(3) PAR_NegFull,UINT型,负向最大调整参数。

(4) PAR_MinErrorDifference,UINT型,设置出错范围,当输入超出范围时,激活ErrorInputTooHighOut或ErrorInputTooLowOut开关,并使输出为零。

输出:

(1) ErrorInputTooHighOut,BOOL型,AIInput > PAR_PosFull*256 +

PAR_MinErrorDifference, 则输出为TRUE。

(2) ErrorInputTooLowOut,BOOL型,AIInput <

PAR_NegFull*256-PAR_MinErrorDifference,则输出为TRUE。

2.5 JoystikDirSwitchDiagnostic功能块

功能描述:

本功能块是用来观察手柄模拟量输入时微动开关的状态。

功能块如下图:

输入:

(1)AnalogInput,UINT型,需要观察的模拟量信号。

(2)DI_JoystickDirSwitchPOS,BOOL型,正向微动开关。当

PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向正向移动,那么只有正向微动

开关TRUE,OUTPUT才会有输出。

(3)DI_JoystickDirSwitchNEG,BOOL型,负向微动开关。当

PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向负向移动,那么只有负向微动开关TRUE,OUTPUT才会有输出。

(4) PAR_PosFull,UINT型,正向最大调整参数。

(5) PAR_NegFull,UINT型,负向最大调整参数。

(6) PAR_Zero,UINT型,零输入的调节参数。主要用于当手柄在零位时,即零输入时,调节参数使得OUTPUT也为零。

(7) PAR_Fault O nDelay,UINT型,过载延时。

输出:

(1)JoystickDirSwitchPOSMissing,BOOL型,正向微动开关出错时,值为TRUE。

(2)JoystickDirSwitchNEGMissing,BOOL型负向微动开关出错时,值为TRUE。

(3)JoystickDirSwitchPOSAndNEGOn,BOOL型,正、负向微动开关同时为TRUE 时,值为TRUE。

2.6 MeanValue功能块

功能描述:

对给的数组进行求平均数操作。

功能块如图:

输入:

(1) Input,UINT型,数据输入。

(2) PAR_Length,UINT型,取数长度,如值为5,则每5个值求一次平均值,并输出到output。

(3) Reset,BOOL型,复位信号,值为TRUE时不进行平均值运算。

输出:

(1) Output,UINT型

2.7 PedalFilter功能块

功能描述:

PedalFilter功能块是一个单向的标定模块,主要用于把输入模拟量进行预处理,把输出量范围调整到0~65535。

功能块如下图:

输入:

(1)AbalogInput,UINT型,来自于传感器的输入量

OutPutEnable,BOOL型,使能开关。参数值为TRUE时,模块按当前值输出;

为FALSE时,保持上一次输出值。

(2)PAR_Full,UINT型,取值范围:0~255,此参数用于调整最大输出值,当输

入最大时,使输出接近65535,小于65535。

(3)PAR_Zero,INT型,取值范围:0~255,此参数用于调整零位,使输出为零。

(4)PAR_DeadBand,UINT型,取值范围:0~100,设置死区,当输入进入参数设

置范围,输出为零。

(5)PAR_Progression,SINT型,取值范围:-100~100设置输出缓冲曲线度。

(6)PAR_MinErrorDifference,UINT型,取值范围:0~100,设置出错范围,当输

入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。

(7)OutputEnable,BOOL型,使能开关。

输出:

(1)Output,UINT型,取值范围:0~65535,输出信号。

(2)ErrorHigh,BOOL型,高位出错开关。输入>PAR_Full + PAR_MinErrorDifference

范围,ErrorHigh为TRUE,并把输出置零。

(3)ErrorLow,BOOL型,低位出错开关,输入

2.8 RC功能模块

功能描述:

RC功能块是滤波功能块,它是对传感器信号的输入信号进行滤波。滤波公式为:

z0.6

x()

y()

z.

功能块如下图:

输入:

(1) Input,UINT型,输入信号。

输出:

(1)Output,UINT型,输出信号。

2.9 Scale功能块

功能描述:

Scale功能块的主要作用是把一个0~65535量变换成为两个0~65535的量,如下图:

功能块如下图:

输入:

(1)Input,UINT型

(2)PAR_Zero,INT型,设置零位,当输入为PAR_Zero * 256时,输出为0。

(3)PAR_PosFull,UINT型,当input值>=PAR_PosFull * 256时, 输出为65535 ,PosValue 为TRUE。

(4)PAR_NegFull,UINT型,当input值<= PAR_NegFull * 256, 输出为-65535 ,PosValue 为FALSE。

输出:

(1)Output,UINT型

(2)PosValue BOOL型,PAR_Zero * 256 > Input值,值为TRUE;PAR_Zero * 256 < Input 值,值为FALSE。

2.10 Transfer功能块

功能描述:

Transfer 模块用于设置缓冲曲线度,当Zero为TRUE时,输出为零,当Full为TRUE,而Zero不为零时,输出为65535。

缓冲曲线度公式: Y2表正向,Y3 表负向。

,00.0011progr50

x..

y()x x3

y1()x x

y2()

,x progr

,x progr1

y3()

曲线如下图:

功能块如下图:

输入:

(1)Input,UINT型

(2)Zero,BOOL型,当Zero为TRUE时,输出为零。

(3)Full:BOOL型,当Full为TRUE,而Zero不为零时,输出为65535。

(4)PAR_Progression,INT型,曲线度设置参数。

(5)OutputEnable,BOOL型,当此参数值为TRUE时,模块按预定算法执行;为FALSE时,保持上一次输出

输出:

(1)Output,UINT型

三、CANII IEC库

本库就是一些基于CAN2.0协议的一些功能块。也就是Can2.lib中的一些函数与功能块。

3.1 CAN_II_BUFF_INIT函数

功能描述:

本功能块的主要作用是用来初始化CAN接受信息对象的。注意CAN_II_BUFF_INIT,必须用在CAN_II_INIT前面。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE,BOOL型。函数的使能变量。

(2)OBJ,对象号,输入数值,1~14,0是用来传输的号。

(3)ID,信息ID,11或29位ID。

(4)EXTENDED,BOOL型,用来扩展ID为29位。

输出:

(1)ERROR,BOOL型。当OBJ超出范围时有输出。

3.2 CAN_II_GET_MSG功能块

功能描述:

当CAN总线上有新的CAN信息是接受数据。

功能块如下图:

输入:

(1)ESSAGE,用户想接受的信息。

输出:

(1)EXTENDED,BOOL型,当信息ID为29位时为TRUE。

(2)ID,信息的ID。

(3)DLC,信息的长度。

(4)DATAn,信息的数据,其中n=DLC。

(5)CUSTOMER,没有定义。

(6)NEW_DATA,BOOL型,当缓存中有新的数据时为TRUE。

3.3 CAN_II_INIT函数

CAN_II设备的初始化函数。

功能块如下图:

输入:

(1)ENABLE,BOOL型,使函数可以工作。

(2)SPEED,CAN设备的波特率。

(3)GBML (GloBal Mask Long) 29bit 全球码。

(4)GBMS(GloBal Mask Short)11bit 全球码。

(5)TERM_RES CAN 的接受终端On/Off.

3.4 CAN_II_RTR函数

功能描述:

发送远距离传送请求。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE,BOOL型,使能。

(2)OBJ 选择对象号,1~13。

输出:

(1)ERROR,当输出为TRUE时,就是选择的对象好有问题。

3.5 CAN_II_STATUS功能块

功能描述:

本功能快就是用来返回CAN设备的状态。

功能块如下图:

输出:

(1)LEC,就是返回最近的一个出错的代码。

(2)TXOK 为TRUE时就表示传输成功。

(3)RXOK 为TRUE时就表示接受成功。

(4)EWARN_COUNT 出错记数器。

(5)BUSOFF_COUNT,总线关闭记数器。

3.6 CAN_IIRX 功能块

功能描述:

从更高的message对象来接受新的CAN信息。

功能块如下图:

输出:

(1)EXTENDED,BOOL型,扩展信息的ID位为29位。

(2)ID ,信息ID。

(3)DLC ,数据长度 1..8。

(4)DATAn ,信息数据,其中n=DLC

(5)CUSTOMER ,没有定义。

(6)NEW_DATA ,当有新的数据到了缓存中时为TRUE。

3.7 CAN_IITX功能块

功能描述:

向更高的message对象来发新的CAN信息。

功能块如下图:

C语言函数手册(DOC)

一、字符测试函数 isupper()测试字符是否为大写英文字 ispunct()测试字符是否为标点符号或特殊符号isspace()测试字符是否为空格字符 isprint()测试字符是否为可打印字符 islower()测试字符是否为小写字母 isgraphis()测试字符是否为可打印字符 isdigit()测试字符是否为阿拉伯数字 iscntrl()测试字符是否为ASCII码的控制字符isascii()测试字符是否为ASCII码字符 isalpha()测试字符是否为英文字母 isalnum()测试字符是否为英文或数字 isxdigit()测试字符是否为16进制数字 二、字符串操作函数 strtok()字符串分割函数 strstr()字符串查找函数 strspn()字符查找函数 strrchr()定位字符串中最后出现的指定字符 strpbrk()定位字符串中第一个出现的指定字符strncpy()复制字符串 strncat()字符串连接函数 strncasecmp()字符串比较函数(忽略大小写) strlen()字符串长度计算函数 strdup()复制字符串 strcspn()查找字符串 strcpy()复制字符串 strcoll()字符串比较函数(按字符排列次序) strcmp()字符串比较函数(比较字符串) strchr()字符串查找函数(返回首次出现字符的位置) strcat()连接字符串 strcasecmp()字符串比较函数(忽略大小写比较字符串) rindex()字符串查找函数(返回最后一次出现的位置) index()字符串查找函数(返回首次出现的位置) toupper()字符串转换函数(小写转大写) tolower()字符串转换函数(大写转小写) toascii()将整数转换成合法的ASCII码字符 strtoul()将字符串转换成无符号长整型数

Sprintf函数的用法

Sprintf函数的用法: 函数简介: 函数功能:把格式化的数据写入某个字符串 头文件:stdio.h 函数原型:int sprintf( char *buffer, const char *format, [ argument] … ) ; 返回值:字符串长度(strlen) 参数说明及应用举例 sprintf格式的规格如下所示。[]中的部分是可选的。 %[指定参数][标识符][宽度][.精度]指示符 若想输出`%'本身时, 请这样`%%'处理。 1. 处理字符方向。负号时表示从后向前处理。 2. 填空字元。0 的话表示空格填0;空格是内定值,表示空格就放着。 3. 字符总宽度。为最小宽度。 4. 精确度。指在小数点后的浮点数位数。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 转换字符 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=- %% 印出百分比符号,不转换。 %c 整数转成对应的ASCII 字元。 %d 整数转成十进位。 %f 倍精确度数字转成浮点数。 %o 整数转成八进位。 %s 整数转成字符串。 %x 整数转成小写十六进位。 %X 整数转成大写十六进位。 我们的用法: Uchar sf[20],sd[20]; d=124; a = sprintf(sf,"%.0f",d); // Long(Int)到char字符串 d=12422.422; a = sprintf(sd,"%f",d); // float 到char字符串 a = sprintf(sd,"%.6f",d); // float 到char字符串 这两句相等;即浮点型转换时,小数位不指定情况下为最大6位; 注意:以防sd缓冲区溢出,待转换数据先做判断,大于0xFFFFFFFF

函数用法大全

EXCEL 函 数 用 法

1.ABS 用途:返回某一参数的绝对值。 语法:ABS(number) 参数:number 是需要计算其绝对值的一个实数。 实例:如果A1=-16,则公式“=ABS(A1)”返回16。 2.ACOS 用途:返回以弧度表示的参数的反余弦值,范围是0~π。 语法:ACOS(number) 参数:number 是某一角度的余弦值,大小在-1~1 之间。 实例:如果A1=0.5,则公式“=ACOS(A1)”返回1.047197551(即π/3 弧度,也就是600);而公式“=ACOS(-0.5)*180/PI()”返回120°。 3.ACOSH 用途:返回参数的反双曲余弦值。 语法:ACOSH(number) 参数:number 必须大于或等于1。 实例:公式“=ACOSH(1)”的计算结果等于0;“=ACOSH(10)”的计算结果等于2.993223。 4.ASIN 用途:返回参数的反正弦值。 语法:ASIN(number) 参数:Number 为某一角度的正弦值,其大小介于-1~1之间。 实例:如果A1=-0.5,则公式“=ASIN(A1)”返回-0.5236(-π/6 弧度);而公式“=ASIN(A1)*180/PI()”返回-300。 5.ASINH 用途:返回参数的反双曲正弦值。 语法:ASINH(number) 参数:number 为任意实数。 实例:公式“=ASINH(-2.5)”返回-1.64723;“=ASINH(10)”返回2.998223。 6.ATAN 用途:返回参数的反正切值。返回的数值以弧度表示,大小在-π/2~π/2 之间。 语法:A TAN(number) 参数:number 为某一角度的正切值。如果要用度表示返回的反正切值,需将结果乘以180/PI()。 实例:公式“=ATAN(1)”返回0.785398(π/4 弧度);=ATAN(1)*180/PI()返回450。 7.ATAN2 用途:返回直角坐标系中给定X 及Y 的反正切值。它等于X 轴与过原点和给定点(x_num,y_num)的直线之间的夹角,并介于-π~π之间(以弧度表示,不包括-π)。 语法:A TAN2(x_num,y_num) 参数:X_num 为给定点的X 坐标,Y_num 为给定点的Y 坐标。 实例:公式“=ATAN2(1,1)”返回0.785398(即π/4 弧度);=ATAN2(-1,-1)返回-2.35619(-3π/4 弧度);=ATAN2(-1,-1)*180/PI()返回-1350。 8.ATANH 用途:返回参数的反双曲正切值,参数必须在-1~1 之间(不包括-1 和1)。 语法:A TANH(number) 参数:number 是-1 实例:公式“=ATANH(0.5)”返回0.549306144;=ATANH(-0.1)返回-0.10034。

C语言中可变参数的用法

C语言中可变参数的用法 文章导读:我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以有以下不同的调用方法: printf("%d",i); printf("%s",s); printf("the number is %d ,string is:%s", i, s); 究竟如何写可变参数的C函数以及这些可变参数的函数编译器是如何实现的呢?本文就这个问题进行一些探讨,希望能对大家有些帮助.会C++的网友知道这些问题在C++里不存在,因为C++具有多态性.但C++是C的一个超集,以下的技术也可以用于C++的程序中.限于本人的水平,文中如果有不当之处,请大家指正. 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以有以下不同的调用方法: printf("%d",i); printf("%s",s); printf("the number is %d ,string is:%s", i, s); 究竟如何写可变参数的C函数以及这些可变参数的函数编译器是如何实现的呢?本文就这个问题进行一些探讨,希望能对大家有些帮助.会C++的网友知道这些问题在C++里不存在,因为C++具有多态性.但C++是C 的一个超集,以下的技术也可以用于C++的程序中.限于本人的水平,文中如果有不当之处,请大家指正. (一)写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va在这里是variable-argument(可变参数)的意思.这些宏定义在stdarg.h中,所以用到可变参数的程序应该包含这个头文件.下面我们写一个简单的可变参数的函数,改函数至少有一个整数参数,第二个参数也是整数,是可选的.函数只是打印这两个参数的值. void simple_va_fun(int i, ...) {

c语言关键字的用法详解优选稿

c语言关键字的用法详 解 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

1.Static用法 1.1static声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 1.2特点 A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度; B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度; C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题; D.如果我们需要一个可重入的函数,那么,我们一定要避免函数中使用static变量(这样的函数被称为:带“内部存储器”功能的的函数) E.函数中必须要使用static变量情况:比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。 函数前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函

数)。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。 扩展分析:术语static有着不寻常的历史.起初,在C中引入关键字st atic是为了表示退出一个块后仍然存在的局部变量。随后,static在C 中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。最后,C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数(与Java 中此关键字的含义相同)。 1.3关键字static的作用是什么? 1.4 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1.4.1在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 int testStatic() { int x=1; x++; return x; }

常用函数公式及用法

电子表格常用函数公式及用法 1、求和公式: =SUM(A2:A50) ——对A2到A50这一区域进行求和; 2、平均数公式: =AVERAGE(A2:A56) ——对A2到A56这一区域求平均数; 3、最高分: =MAX(A2:A56) ——求A2到A56区域(55名学生)的最高分;4、最低分: =MIN(A2:A56) ——求A2到A56区域(55名学生)的最低分; 5、等级: =IF(A2>=90,"优",IF(A2>=80,"良",IF(A2>=60,"及格","不及格"))) 6、男女人数统计: =COUNTIF(D1:D15,"男") ——统计男生人数 =COUNTIF(D1:D15,"女") ——统计女生人数 7、分数段人数统计: 方法一: 求A2到A56区域100分人数:=COUNTIF(A2:A56,"100") 求A2到A56区域60分以下的人数;=COUNTIF(A2:A56,"<60") 求A2到A56区域大于等于90分的人数;=COUNTIF(A2:A56,">=90") 求A2到A56区域大于等于80分而小于90分的人数; =COUNTIF(A1:A29,">=80")-COUNTIF(A1:A29," =90")

求A2到A56区域大于等于60分而小于80分的人数; =COUNTIF(A1:A29,">=80")-COUNTIF(A1:A29," =90") 方法二: (1)=COUNTIF(A2:A56,"100") ——求A2到A56区域100分的人数;假设把结果存放于A57单元格; (2)=COUNTIF(A2:A56,">=95")-A57 ——求A2到A56区域大于等于95而小于100分的人数;假设把结果存放于A58单元格;(3)=COUNTIF(A2:A56,">=90")-SUM(A57:A58) ——求A2到A56区域大于等于90而小于95分的人数;假设把结果存放于A59单元格; (4)=COUNTIF(A2:A56,">=85")-SUM(A57:A59) ——求A2到A56区域大于等于85而小于90分的人数; …… 8、求A2到A56区域优秀率:=(COUNTIF(A2:A56,">=90"))/55*100 9、求A2到A56区域及格率:=(COUNTIF(A2:A56,">=60"))/55*100 10、排名公式: =RANK(A2,A$2:A$56) ——对55名学生的成绩进行排名; 11、标准差:=STDEV(A2:A56) ——求A2到A56区域(55人)的成绩波动情况(数值越小,说明该班学生间的成绩差异较小,反之,说明该班存在两极分化); 12、条件求和:=SUMIF(B2:B56,"男",K2:K56) ——假设B列存放学生的性别,K列存放学生的分数,则此函数返回的结果表示求该班

sprintf的用法详解

sprintf函数:sprintf函数的使用方法 疯狂代码 https://www.doczj.com/doc/fa14738542.html,/ ?:http:/https://www.doczj.com/doc/fa14738542.html,/BlogDigest/Article75531.html sprintf() 格式化输出函数(图形) 功能: 函数sprintf()用来作格式化的输出。 用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list); 说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。通常在绘图方式下输出数字时可调用sprintf()函数将所要输出的格式送到第一个参数,然后显示输出。函数名: sprintf 功 ; 能: 送格式化输出到字符串中 用 ; 法: int sprintf(char *string, char *farmat [,argument,...]); 程序例:#include #include int main(void) { ; ; char buffer[80]; ; ; sprintf(buffer, "An approximation of Pi is %f\n", M_PI); ; ; puts(buffer); ; ; return 0; } sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。sprintf的第一个参数应该是目的字符串,如果不指定这个参数,执行过程中出现 ; ; ; ; ;"该程序产生非法操作,即将被关闭...."的提示。 因为C语言在进行字符串操作时不检查字符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。即使碰巧,程序没有出错,也不要这么用,因为早晚会出错。所以一定要在调用sprintf之前分配足够大的空间给buf。 ;由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中, 后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。所以本文着重介绍sprintf,有时 也穿插着用用pritnf。 sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] ... ); 除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数: 格式化字符串上。 printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的 格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终 函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。 格式化数字字符串 sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代 itoa。如: //把整数123 打印成一个字符串保存在s 中。

Cyapi使用心得

EZ-USB FX2(68013)Cyapi使用心得(1)--USB连接 2009-11-07 19:23 用Cyapi也有一阵了,这个确实比EZusb的api好用,简单说下Cyapi的使用心得,在编程中应该注意的一些问题,毕竟,说起来,那个CYapi 的说明文档讲的实在太简单了点,好多东西都讲得不明白,只能 在使用中自己慢慢积累了。 首先说下前提,固件架构是EZ-USB FX2/FX2LP(CY7C68013),编译环境VC++ 6.0,驱动是Cyusb.sys。 上位机简单说下,建立一个MFC 单文档/对话框应用程序;在路径项目中包含头文件cyapi.h和cyapi.lib所在的路径,最好移到最上面。然后手动导入cyapi.lib,注意是CV6_7的lib,不要导入BCB的。 下面讲得是按照USB一般工作流程来讲得。 (1)USB连接 1.首先要建立一个USB设备对象 文档里有说的了,copy一下 CCyUSBDevice *USBDevice = new CCyUSBDev(Handle); 括号中的Handle是USB所关联对象的句柄,一般在MFC中直接就是m_hwnd。 2.然后就该是打开USB设备了 可以用到两个函数open();isopen() 这两个都可以用来打开USB设备,isopen()还可以判断能否获得USB设备句柄 一般来说,如果只有一个USB设备连接,可以这样打开: USBDevice->open(0) //打开0号USB设备 如果要判断,可以: if(! USBDevice->open(0)) //打开失败 {messagebox("USB未连接");} 或者 if(!USBDevice->Isopen())

统计函数的简介及用法

2011年2月

统计函数的简介及用法 SUM(number1,number2, ...) 返回某一单元格区域中所有数字之和。 语法 Number1, number2, ... 为1 到30 个需要求和的参数。 说明 直接键入到参数表中的数字、逻辑值及数字的文本表达式将被计算,请参阅下面的示例一和示例二。 如果参数为数组或引用,只有其中的数字将被计算。数组或引用中的空白单元格、逻辑值、文本或错误值将被忽略。请参阅下面的示例三。 如果参数为错误值或为不能转换成数字的文本,将会导致错误。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 操作方法 创建空白工作簿或工作表。 请在“帮助”主题中选取示例。不要选取行或列标题。 从帮助中选取示例。 按Ctrl+C。 在工作表中,选中单元格A1,再按Ctrl+V。 若要在查看结果和查看返回结果的公式之间切换,请按Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。 1 2 3 4 5 6 A 数据 -5 15 30 '5 TRUE 公式说明(结果) =SUM(3, 2) 将 3 和 2 相加 (5) =SUM("5", 15, TRUE) 将5、15 和 1 相加,因为文本值被转换为数字,逻辑值 TRUE 被转换成数字 1 (21) =SUM(A2:A4) 将此列中前三个数相加 (40) =SUM(A2:A4, 15) 将此列中前三个数之和与 15 相加 (55) =SUM(A5,A6, 2) 将上面最后两行中的值之和与 2 相加。因为引用非数值的值 不被转换,故忽略上列中的数值 (2)

c语言关键字的用法详解

1. Static用法 1.1 static声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 1.2 特点 A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度; B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度; C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题; D.如果我们需要一个可重入的函数,那么,我们一定要避免函数中使用static变量(这样的函数被称为:带“内部存储器”功能的的函数) E.函数中必须要使用static变量情况:比如当某函数的返回值为指针类型时,则必须是static 的局部变量的地址作为返回值,若为auto类型,则返回为错指针。 函数前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。 扩展分析:术语static有着不寻常的历史.起初,在C中引入关键字static是为了表示退出一个块后仍然存在的局部变量。随后,static在C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。最后,C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数(与Java中此关键字的含义相同)。 1.3 关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:

常用转换函数汇总

1.计算CRC码(CRC16) 输入一个char数组以及数组的长度。数组长度包含CRC码。数组类似于“01 02 FA 03 A4…00 00”的格式,返回计算出的CRC码值,并存储到最后两位。次低位存储高字节,最低位存储低字节。 unsigned char* CMyCnComm::CalCRC(char buf[], int cnt) { unsigned char CRCHi=0x00,CRCLo=0x00,CRCGXHi=0x10,CRCGXLo=0x21; unsigned char ch; int j = 0; while( j < cnt-2) { ch = buf[j]; unsigned char BD; unsigned short i; bool sCF,lCF,hCF; BD=ch; sCF=false; lCF=false; hCF=false; for(i=0;i<8;i++) { if((BD&0x80)==0x80)sCF=true; if((CRCHi&0x80)==0x80)hCF=true; if((CRCLo&0x80)==0x80)lCF=true; CRCLo=CRCLo<<1; CRCHi=CRCHi<<1; if(lCF)CRCHi=CRCHi|0x01; if(sCF!=hCF) { CRCHi=CRCHi^CRCGXHi; CRCLo=CRCLo^CRCGXLo; } BD=BD<<1; sCF=false; lCF=false; hCF=false; } j++; } unsigned char *crcResult = new unsigned char[2]; crcResult[0] = CRCHi; crcResult[1] = CRCLo return crcResult; }

Excel统计函数COUNTIF的用法及实例

Excel统计函数COUNTIF的用法及实例一:首先介绍COUNTIF函数的用法 英文通用格式是:COUNTIF(range,criteria) 中文通用格式是:COUNTIF(数据区域,条件表达式) 1、返回包含值12的单元格数量 =COUNTIF(range,12) 2、返回包含负值的单元格数量 =COUNTIF(range,"<0") 3、返回不等于0的单元格数量 =COUNTIF(range,"<>0") 4、返回大于5的单元格数量 =COUNTIF(range,">5") 5、返回等于单元格A1中内容的单元格数量 =COUNTIF(range,A1) 6、返回大于单元格A1中内容的单元格数量 =COUNTIF(range,“>”&A1) 7、返回包含文本内容的单元格数量 =COUNTIF(range,“*”) 8、返回包含三个字符内容的单元格数量 =COUNITF(range,“???”) 9、返回包含单词"GOOD"(不分大小写)内容的单元格数量 =COUNTIF(range,“GOOD”)

10、返回在文本中任何位置包含单词"GOOD"字符内容的单元格数量 =COUNTIF(range,“*GOOD*”) 11、返回包含以单词"AB"(不分大小写)开头内容的单元格数量 =COUNTIF(range,“AB*”) 12、返回包含当前日期的单元格数量 =COUNTIF(range,TODAY()) 13、返回大于平均值的单元格数量 =COUNTIF(range,">"&AVERAGE(DATA)) 14、返回平均值上面超过三个标准误差的值的单元格数量 =COUNTIF(range,“>"&AVERAGE(DATA)+STDEV(DATA)*3) 15、返回包含值为或-3的单元格数量 =COUNTIF(range,3)+COUNIF(DATA,-3) 16、返回包含值;逻辑值为TRUE的单元格数量 =COUNTIF(range,TRUE) 二:COUNTIF函数应用举例 假设存在如下图的学生成绩表,现在,让我们一起来使用COUNTIF函数进行统计,下面统计的是不及格的人数! 如下图,首先,选择F列中的F3单元格,之后,在其上方fx函数输入区域,

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

(精华版)_stprintf_s和_stscanf_s函数与UNICODE编码

版权所有。转载请注明出处。 _stprintf_s和_stscanf_s函数与UNICODE编码 一、核心内容 ?该文档适用于微软的visual C++ 平台。 ?需要头文件: ?MSDN上对stprintf_s和_stscanf_s函数的定义: TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined _stprintf_s sprintf_s sprintf_s swprintf_s _stscanf_s sscanf_s sscanf_s swscanf_s 对应的代码为: #ifdef UNICODE #define _stprintf_s swprintf_s #else #define _stprintf_s sprintf_s ?前面的t表示编码,后面的_s表示检查内存溢出,前面的_表示非标准库函数。 ?从上我们可以看出,_stprintf_s和_stscanf_s是为适应不同编码而定义的两个宏,在不同的编码环境下他们所表示的函数是不同的。 ?_s是security的意思,具体含义参见后面的Security Remarks部分。 (1)int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format [, argument] ... ); //ANSI版本 int swprintf_s(wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format [,argument]...); //UNICODE版本

sprintf函数在LCD中使用

#include//包含sprintf函数对于LCD1602/LCD12864显示数字很有用float temperature; char displaytemp[16];//定义显示区域临时存储数组 temperature=(float)temp*0.0625; sprintf(displaytemp,"Temp % 7.3f",temperature);//打印... //sprintf函数功能:把格式化的数据写入某个字符串 //%[指定参数][标识符][宽度][.精度]指示符 //1. 处理字符方向。负号时表示从后向前处理。 //2. 填空字元。0 的话表示空格填0;空格是内定值,表示空格就放着 //3. 字符总宽度。为最小宽度。 //4. 精确度。指在小数点后的浮点数位数 // %% 印出百分比符号,不转换。 // %c 整数转成对应的 ASCII 字元。 // %d 整数转成十进位。 // %f 倍精确度数字转成浮点数。 // %o 整数转成八进位。 // %s 整数转成字符串。 // %x 整数转成小写十六进位。 // %X 整数转成大写十六进位。 LCD_Write_String(0,1,displaytemp);//显示 还有一种显示数字法:show[i]=time_buf1[j]/10+'0';//加上'0'是将数字转成字符 STC12C5A60S2 传统8051单片机执行I/O口操作,由高变低或由低变高,以及读外部状态都是12个时钟,而现在STC12系列单片机执行相应的操作是4个时钟。传统8051单片机如果对外输出为低,直接读外部状态是读不对的。必须先将I/O口置高才能够读对,而传统8051单片机由低变高的指令是12小时钟,该指令执行完成后,该I/O口也确定已变高。故可以紧跟着由低变高的指令后面,直接执行读该I/O口状态指令。而STC12系列单片机由于执行由低变高的指令是4个时钟,太快了,相应的指令执行完以后,I/0口还没有变高,要再过一个时钟之后,该I/O口才可以变高。故建议此状况下增加2个空操作延时指令再读外部品的状态。 最新STC12系列单片机I/O口的灌电流是20mA,驱动能力超强,驱动大电流时,不容易烧坏. 传统STC89Cxx系列单片机I/O口的灌电流是6mA,驱动能力不够强,不能驱动大电流,建议使用STC12系列.

如何使用Excel函数统计各分数段的人数(五种方法)

Excel教程:妙用Excel五个函数统计学生期末考试分 数段 考试结束,老师们都要对学生的考试成绩进行分析。各分数段人数的统计是其中一项必做的工作。在Excel中,怎样快速准确地统计分数段人数呢?以下的方法也许对你有所帮助。 先看看原始的学生成绩表。五门功课的成绩分布在C2:G47单元格区域,如下图所示。 一、利用COUNTIF函数 COUNTIF函数可以统计单元格区域内满足指定条件的单元格数目,所以用来统计分数段人数顺理成章。我们用它来统计C列的语文成绩分数段。

如图2所示,我们需要在N2单元格统计语文分数在90分以上的学生数。那么只需要在N2单元格输入公式“=COUNTIF(C2:C47,">=90")”就可以了。其含义就是统计C2:C47单元格区域中满足大于等于90的单元格数目。所以,要统计80分至89分这一段的学生数,那么就需要输入公式“=COUNTIF(C2:C47,">=80")-COUNTIF(C2:C47,">=90")”。很明显,大于等于80分的人数减去大于等于90分的人数正是我们想要的人数。其他分数段可以依此类推。 二、利用FREQUENCY函数 这是一个专门用于统计单元格区域中数据的频率分布的函数,用它来统计分数段自然名正言顺。以D列的数学成绩的统计为例。 我们先在M8:M12设置好分数段,再在L8:L12单元格区域设置好各分数段的分隔数(即为该分数段的上限数字),如图3所示。选中N8:N12单元格,在编辑栏输入公式“=FREQUENCY($D$2:$D$47,$L$8:$L$12)”,然后按下“Ctrl+Shift+Enter”组合键确认,即可在公式的两端添加数组公式的标志“{}”,同时可以看到各分数段的人数已经统计完成了。需要注意的是公式输入完成后必须按“Ctrl+Shift+Enter”组合键确认以产生数组公式,而且数组公式的标志“{}”也不可以手工输入。

【最新推荐】c语言sprintf实现原理-范文模板 (17页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == c语言sprintf实现原理 篇一:C语言机械原理编程,连杆运动分析图线 编程大作业 基于C语言的机械原理分析图: 只有库函数包含头文件:graphics.h conio.h 才能观看该程序效果; 若已经安装VC++,可以打开文件夹里面的EasyX压缩包,并安装EasyX文件,也可以观看程序效果; 一、角度与l3与角1的关系; #include #include #include #include #define SZ 2 #define PI 3.1415926 float c[SZ][SZ]={0}; void danwei() { char s[5];

int i=0; int k=-5; while(k<=600) { sprintf(s, "%d", i); outtextxy(k, 5, s); k+=75; i+=45; } outtextxy(280,25, "θ1/度"); } void danwei2() { char s[10]; float i=-0.1; int k=-10; while(k>=-400) { sprintf(s,"%0.2f",i); outtextxy(610,k,s); k-=40; i+=0.05; } outtextxy(610,-420, "l3/m/s");

} void danwei1() { char s[10]; int i=-60; int k=-10; while(k>=-400) { sprintf(s,&q uot;%d",i); outtextxy(-30,k,s); k-=20; i+=10; } outtextxy(-85,-420, "θ2、θ3/度"); } int main() { // 创建大小为 800 * 600 的绘图窗口 initgraph(800, 600); // 设置原点 (0, 0) 为屏幕中央(Y轴默认向下为正)setorigin(100, 500); // 使用白色填充背景 setbkcolor(WHITE);

fopen,fprintf 和 sprintf在Matlab中的应用

fopen,fprintf 和sprintf在Matlab中的应用 matlab中fopen函数在指定文件打开的实例如下: *1)“fopen”打开文件,赋予文件代号。 语法1:FID= FOPEN(filename,permission) 用指定的方式打开文件 FID=+N(N是正整数):表示文件打开成功,文件代号是N. FID=-1 : 表示文件打开不成功。 FID在此次文件关闭前总是有效的。 如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数。 打开方式参数由以下字符串确定: r 读出 w 写入(文件若不存在,自动创建) a 后续写入(文件若不存在,自动创建) r+ 读出和写入(文件应已存在) w+ 重新刷新写入,(文件若不存在,自动创建) a+ 后续写入(文件若不存在,自动创建)) w 重新写入,但不自动刷新 a 后续写入,但不自动刷新 文件的存储格式:文件打开的默认方式是:二进制。以文本方式打开,可以在方式参 数“permission”中加入“t”文件将,如“rt”,“wt+” matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为: 数据的格式化输出:fprintf(fid, format, variables) 按指定的格式将变量的值输出到屏幕或指定文件 fid为文件句柄,若缺省,则输出到屏幕 1 for standard output (the screen) or 2 for standard error. If FID is omitted, output goes to the screen. format用来指定数据输出时采用的格式 %d 整数 %e 实数:科学计算法形式 %f 实数:小数形式 %g 由系统自动选取上述两种格式之一 %s 输出字符串 fprintf(fid,format,A) 说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。 例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。 >> a='string'; >> fid=fopen('d:\char1.txt','w'); >> fprintf(fid,'%s',a); >> fclose(fid); >> fid1=fopen('d:\char1.txt','rt'); >> b=fscanf(fid1,'%s') b = string

matlab 基础函数用法总结

1、Size 函数用法 例如:1,2,3;4,5,6]是一个2*3的矩阵,则: d = size(X); %返回矩阵的行数和列数,保存在d中 [m,n] = size(X)%返回矩阵的行数和列数,分别保存在m和n中 m = size(X,dim);%返回矩阵的行数或列数,dim=1返回行数,dim=2返回列数 2、Corrcoef 函数用法 corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x 与y的相关系数和y与x的相关系数,两个是相等的 3、sort函数用法 sort(X) 功能:返回对向量X中的元素按列升序排列的新向量。 [Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序 4、Legend 函数用法 legend(string1,string2,string3,┈) 分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。 例如: plot(x,sin(x),?.b?,x,cos(x),?+r?) legend(…sin?,?cos?) //这样就可以把”.”标识为”sin”,把”+”标识为“cos” 5、find 函数用法 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find(X, k, 'last') 5. [row,col] = find(X, ...) 6. [row,col,v] = find(X, ...) 说明: 1. ind = find(X)

相关主题
文本预览
相关文档 最新文档