轻轻松松学VB第一期自己动手做称手工具软件Word格式.docx
《轻轻松松学VB第一期自己动手做称手工具软件Word格式.docx》由会员分享,可在线阅读,更多相关《轻轻松松学VB第一期自己动手做称手工具软件Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
>
"
"
AndText2.Text<
AndText3.Text<
AndText4.Text<
Then
MsgBox"
请保证输入的数据只有三个已知量!
vbYes,"
注意"
Else
Ifd>
cAndc<
0Then
请设置输入电压高于输出电压"
Ifc=d<
a=0
Text3.Text="
∞"
Text2.Text=0
IfText2.Text="
e=b*(c-d)/d
Text2.Text=e
IfText3.Text="
e=a*d/(c-d)
Text3.Text=e
IfText1.Text="
e=d*(a+b)/b
Text1.Text=e
IfText4.Text="
e=b*c/(a+b)
Text4.Text=e
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text="
Text2.Text="
Text4.Text="
PrivateSubCommand3_Click()
本工具由小猛为结婚的电感制作,版权没有,翻版不究,本计算为知三求一形式,输入变量时请输入三个,再次计算请先清除或者保证一个变量为空,输入电压务必大于输出电压。
数值为单精度,正数范围在1.401298E-45到3.402823E38之间,不填写数值默认为0"
vbYes+0,"
工具说明"
PrivateSubCommand4_Click()
End
习惯不好,没加注释,大家忍着看吧,是不是感觉重复的语句很多,其实就这么简单,不用很牛B的句子,毕竟咱们是玩电的,不是专业程序员。
下面说一下解方程的。
这个一般的程序书上算法都有。
话不多说,直接上代码:
Form1.Show
Form2.Hide
DimaAsSingle,bAsSingle,cAsSingle
DimDAsSingle,X1AsSingle,X2AsSingle
DimRAsSingle,PAsSingle
a=Val(Text1.Text)
'
取数据a
b=Val(Text2.Text)
取数据b
c=Val(Text3.Text)
取数据c
Ifa=0Then
'
当a=0
Text4.Text="
不是二次方程"
Text5.Text="
Else
a<
D=b*b-4*a*c
R=-b/(2*a)
IfD=0Then
D=0
Text4.Text=R
Text5.Text=R
ElseIfD>
0Then
D>
X1=(-b+Sqr(D))/(2*a)
X2=(-b-Sqr(D))/(2*a)
Text4.Text=X1
Text5.Text=X2
D<
P=Sqr(-D)/(2*a)
Text4.Text=R&
+"
&
P&
i"
Text5.Text=R&
-"
Text5.Text="
Dima1,b1,c1,m1,n1,t1,x11,y11AsSingle
a1=Val(Text6.Text)
b1=Val(Text7.Text)
c1=Val(Text8.Text)
m1=Val(Text10.Text)
n1=Val(Text11.Text)
t1=Val(Text12.Text)
IfText6.Text<
AndText7.Text<
AndText8.Text<
AndText10.Text<
AndText11.Text<
AndText12.Text<
AndText6.Text<
Text10.TextAndText7.Text<
Text11.TextThen
y11=(m1*c1-a1*t1)/(a1*n1-b1*m1)
x11=(-c1-b1*y11)/a1
Text9.Text=x11
Text13.Text=y11
IfText6.Text=Text10.TextOrText7.Text=Text11.TextThen
不为二元方程组!
IfText6.Text="
OrText7.Text="
OrText8.Text="
AndText10.Text="
OrText11.Text="
OrText12.Text="
请保证输入数据的完整性!
PrivateSubCommand5_Click()
Text6.Text="
Text7.Text="
Text8.Text="
Text9.Text="
Text10.Text="
Text11.Text="
Text12.Text="
Text13.Text="
大家慢慢看吧……
下面就把波形绘制的贴出来,主要实现方法就是峰值叠加跟折线描图,大家都懂得,废话我就不多说了
OptionExplicit
ConstPiAsSingle=3.14159265358979
Dima()
AsSingle,b()AsSingle,c()AsSingle
DimYMaxAsSingle,AZeroAsBoolean
Dimw
AsInteger,h,aaAsInteger
SubDrawsin(aAsSingle,bAsSingle,cAsSingle)
Dimi
AsInteger,xAsSingle,yAsSingle,jAsSingle
DimoiAsSingle,ojAsSingle
Fori=0TowStep1
x=i/w*6*Pi
y=a*Sin(b*x+c)
j=-h*(y-YMax)/(2*YMax)
Ifi=0Then
Picture1.PSet(i,j),RGB(255,0,0)
Picture1.Line(oi,oj)-(i,j),RGB(255,0,0)
oi=i
oj=j
Next
SubDrawaaddsin()
Dimk
AsInteger
y=0
Fork=1ToUBound(a)
y=a(k)*Sin(b(k)*x+c(k))+y
Next
Picture2.PSet(i,j),RGB(0,0,255)
Picture2.Line(oi,oj)-(i,j),RGB(0,0,255)
SubDrawXY()
WithPicture1
Picture1.Line(0,h/2)-(w,h/2)
Picture1.Line(0,0)-(0,h)
.CurrentX=0
.CurrentY=h/2
Picture1.Print"
0"
.CurrentX=w/3
2π"
.CurrentX=2*w/3
4π"
.CurrentX=w-15
6π"
EndWith
WithPicture2
Picture2.Line(0,h/2)-(w,h/2)
Picture2.Line(0,0)-(0,h)
Picture2.Print"
DimiAsInteger
IfVal(Text1.Text)=0Then
AZero=True
Else
ReDimPreservea(UBound(a)+1)
ReDimPreserveb(UBound(b)+1)
ReDimPreservec(UBound(c)+1)
a(UBound(a))=Val(Text1.Text)
b(UBound(b))=Val(Text2.Text)
c(UBound(c))=Val(Text3.Text)
YMax=YMax+Abs(a(UBound(a)))
Picture1.Cls
Picture2.Cls
DrawXY
Fori=1ToUBound(a)
Drawsina(i),b(i),c(i)
Drawaaddsin
EndIf
Text5.Text=YMax
aa=aa+1
Text4.Text=aa
IfAZeroThenPicture1.Line(0,h/2)-(w,h/2),RGB(255,0,0)
Picture2.Line(0,h/2)-(w,h/2),RGB(255,0,0)
Picture1.Cls
Form_Load
Text1.Text="
Text2.Text="
Text3.Text="
Form111.Hide
PrivateSubForm_Load()
ReDima(0),b(0),c(0)
YMax=0
aa=0
AZero=False
.AutoRedraw=True
.ScaleMode=vbPixels
w=.ScaleWidth
h=.ScaleHeight
DrawXY
Text4.Text=0