上没大面代码不是基本完成了吗
#include <stdio.h>#include <string.h>
#include <stdlib.h>
int KToD(char str[],int k)
int main()
{
int n,k,i,*a,max
char ch[64]
scanf("%d",&n)
fflush( stdin )
汪察搭a = (int*)malloc( sizeof(int)*n )
for(i=0i<ni++)
{
memset( ch, 0, 64 )
fscanf( stdin, "%s %d", &ch, &k )
a[i] = KToD(ch,k)
}
max=a[0]
for(i=1i<困拿ni++)
max=(max>a[i])? max:a[i]
printf("%d\n",max)
return 0
}
int KToD(char str[],int k)
{
int d,i
d=0
for(i=0str[i]!=0i++)
d=d*k+(str[i]-'0')
return d
}
一、说明:公式:Y=K*X+b
信号:4-20mA
PLC模拟量输入数据范围(变量X):0-32000
仪表量程(变量Y):10-100
对应关系:4-20mA 转换为6400-32000转换为10.0-100.0
二、求解过程
通过代入法求系数K、b
1、当X=6400时,Y=10,即:
10=K*6400+b ------(1)
2、当X=32000时,Y=100,即:
100=K*32000+b ------(2)
3、由(1)、(2)求解,得
Y=X*90/25600-12.5
三、程序
Network1
LD SM0.0
MOVW AIW0, VW100
-I +6400, VW100
Network2
LD SM0.0
ITD VW100, VD102
Network3
LD SM0.0
DTR VD102, VD106
Network4
LD SM0.0
MOVR VD106, VD110
*R 90.0, VD110
Network5
LD SM0.0
MOVR VD110, VD114
/R 25600.0, VD114
Network6
LD SM0.0
MOVR VD114, VD118
-R 12.5, VD118
注:在带入X求Y的过程中,如果系数K的分子与分母相除的结果是无限小数,X应先乘以分子并碰,锋腊再除以分母,最后再加上常数b。银蔽滑
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)