
正文
vb.netfft代码 vbnet wcf
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
求vb.net的源代码,最好说明其解决问题,越多越好,满意加50分。
下面这段代码,是我用来计算每个月存500元进银行,连续30年,最后连本带利能有多少钱。这里面涉及复利计算。界面中右边的文本框用来输出每一次计算的结果。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nianxian As Integer '年限变量
Dim dingcun As Integer '定存变量
Dim fuli_big As Long '大复利
Dim fuli_small As Long '小复利
Dim i As Integer '循环变量
Dim DATAstring As String '数据字符串
nianxian = Val(年限_TextBox.Text)
dingcun = Val(定存_TextBox.Text)
DATAstring = ""
For i = 1 To nianxian
fuli_small = dingcun * (1 + 0.1875)
dingcun = fuli_small
fuli_big = fuli_big + fuli_small
DATAstring = DATAstring + "[" + Trim(Str(i)) + "]" + Str(fuli_big) + Chr(13) + Chr(10)
'DATAstring = DATAstring + "[" + Trim(Str(i)) + "]" + Str(fuli_small) + Chr(13) + Chr(10)
Next
'fuli_big = fuli_small
TextBox1.Text = DATAstring
结果_TextBox.Text = Str(fuli_big) + "元"
End Sub
相关问答
Q1: VB.NET中的动态代码生成技巧
本文的讨论也将着眼于这两种情况 首先是当程序员需要动态建立一个控件并将代码附着于控件之上时 例如 你或许想创建一个链接列表 但是不知道需要创建链接的数量或是链接中会出现什么样的数据 第二种是当程序员需要定义代码以反映出特殊需求的时候 例如 你或许要执行能反映用户系统配置的代码
类似上述的情况当然不会每天都上演 事实上 它们只在非常情况下才出现 然而 作为程序员 仍然要意识到 NET为解决动态情形提供了方案 有了正确的技巧 你就可以写出能灵活处理动态情况的应用程序了
使用动态控件
许多程序员总会遇到需要动态创建控件的时候 我们所展示的例子中程序员向FlowLayoutPanel中添加了LinkLabels 或许你可以个这样的设置来记录和保存常用的URL 文件 网络地址或是其他资源所在位置的数值 这一示例没有真正保存链接 但是你可以使用XML序列化功能来实现保存
每次当用户点击Test按钮时 示例代码就会动态创建一个新的LinkLabel控件 真正的演示代码并不复杂 例一就展示了创建这类控件以及将控件放入FlowLayoutPanel lstLabel中通常所需要做的一切
例一 向FlowLayoutPanel中添加新的链接 Private Sub btnTest_Click() Handles btnTest Click Create a link Dim NewLink As LinkLabel =New LinkLabel() Add some properties to it NewLink Text = DateTime Now ToLongTimeString() Set the click event handler AddHandler NewLink Click AddressOf NewLink_Click Place the button on the form lstLinks Controls Add(NewLink) End Sub
如你所料 该代码开始的时候创建了一个新的LinkLabel并为其赋予了一些值 这一示例使用的是当前时间 你的代码或许能够对某一真实资源进行访问
请注意该代码也向链接的Click事件中指定了一个处理程序 你必须使用示例中的AddHandler技巧 因为普通的Handles关键词路径不起作用 一方面 设计应用程序的时候你并不清楚控件的名称 即便你为控件指定了一个名称 你也不知道用户要创建的控件数量 所以我们没有办法清楚会有多少处理程序会被创建 处理程序的代码与控件代码类似 因此没有必要创建多个处理程序 用于这个示例的处理代码见例二 例二 处理动态控件点击事件 Private Sub NewLink_Click( _ ByVal sender As System Object ByVal e As System EventArgs) Verify that you actually have a LinkLabelIf Not sender GetType() Is GetType(LinkLabel) ThenMessageBox Show( Wrong control type provided! )ReturnEnd If Convert the input sender to a Button Dim ThisLink As LinkLabel = sender Show that we have the correct button MessageBox Show( You created this link at: + ThisLink Text)End Sub
你可能已经注意到例一中的事件处理器使用的是宽松代表——它没有将ByVal发送器作为System Object 也没有将ByVal e作为System EventArgs作为参数因为它不需要这二者 然而 当你创建一个事件处理器来动态创建控件时 通常你需要将ByVal发送器作为System Object参数 这意味着将这两者都包含其中
有些程序员在创建事件处理器的时候会出现一个错误 即没有检查传入控件的类型 发送器对象可能包含多选择 而如果未对事件处理器进行事件处理类型的设置 那么你就会面临更多的选择 我们的示例代码一开始就检查了传入控件对象的类型 这样以来发送器就不会像下面所展示的代码一样 Private Sub btnTest _Click() Handles btnTest Click Create a link Dim NewButton As Button = New Button() Add some properties to it NewButton Text = DateTime Now ToLongTimeString() Set the click event handler AddHandler NewButton Click AddressOf NewLink_Click Place the button on the form lstLinks Controls Add(NewButton)End Sub
此代码在FlowLayoutPanel中创建了一个按钮 大多数情况下这都能正常运行 除非事件处理器不按照按钮所示的进行操作 如果你打算服务多个控件类型 那么每个控件类型都需要一个独特的处理 你可以使用多事件处理器或者为某些类型提供选择标准
NewLink_Click()事件处理器照常将传入发送器转换成指定类型 在这个示例中则是LinkLabel 该代码可以访问LinkLabel属性并能用其他方式进行互动 在我们的示例中 只显示了一个能在创建链接的时候告知我们的对话框
使用动态代码
在运行时创建一个控件是在无法确定应用程序功能的时候采取的一种策略 但是动态创建控件并不适用于所有的情况 有些时候你必须建立可执行代码 虽然你的应用程序运行的目的是补偿不同极其之间的配置 不同用户的需求 不同的环境需求或是其他要求 当应用程序所运行的电脑不存在控件 那么通常是需要创建动态代码的
幸运的是 NET为我们提供了一系列动态代码选项 例如 你可以创建一个可执行的能独立运行的程序或是可以想运行中的程序加载一个DLL然后再执行 当你需要演示一个外部任务的时候可以使用选择可执行 如运行一种脚本——该DLL选项最适合扩大现有的应用程序功能
你可以运行来自文件或内存的动态代码 当你需要不止一次地运行代码时 可以使用文件 对代码的检查可以再次运行外部文件而不需要对其进行二次编译 当你需要多次演示任务的时候 如一个安装请求 那可以使用内存图像
当然我们也可以更改源代码 例如 你可以使用字符串来建立需要在应用程序中直接使用的代码 如果你需要代码具有高度灵活性 且代码本身不是很长时 这一方法的优势就非常显著 也可以从文件里建立代码 就如同VS一样 这一方法最适用于相对稳定且不需要复杂编码的需求 第三种选择是使用Documentation Object Model来创建代码并将其作为CodeDom树型结构的一个系列 该树型结构包括了CodeCormpileUnits 这就像是用DOM模式创建了一个XML文件
使用动态创建代码的最好方式是用示例来检查一下 例三展示了一个基本 Hello World 示例 该示例用源代码直接创建了代码因此你可以看到整个运行以及生成一个外部可执行文件的过程
例三 动态编码示例 Private Sub btnTest _Click() Handles btnTest Click Create a piler Dim Comp As VBCodeProvider = New VBCodeProvider() Define the parameters for the code you want to pile Dim Parms As CompilerParameters = New CompilerParameters) We do want to create an executable rather than a DLL Parms GenerateExecutable = True The piler will create an output assembly called Output Parms OutputAssembly = Output The piler won t treat warnings as errors Parms TreatWarningsAsErrors = False Add any assembly you want to reference Parms ReferencedAssemblies Add( System Windows Forms dll ) Define the code you want to run Dim SampleCode As StringBuilder = New StringBuilder() SampleCode Append( Imports System Windows Forms + vbCrLf) SampleCode Append( Module TestAssembly + vbCrLf) SampleCode Append( Sub Main() + vbCrLf) SampleCode Append( MessageBox Show( + Chr( ) + _ Dynamically Created Code! + _Chr( ) + ) + vbCrLf)SampleCode Append( End Sub + vbCrLf)SampleCode Append( End Module + vbCrLf) Define the code to run Dim Executable As CompilerResults = _ Comp CompileAssemblyFromSource(Parms SampleCode ToString()) Display error messages if there are any If Executable Errors HasErrors ThenFor Each Item As CompilerError In Executable ErrorsMessageBox Show(Item ErrorText)NextElse If there aren t any error messages start the executable Process Start( Output )End IfEnd Sub
一开始你创建了一个使用VBCodeProvider的编译器Comp 旧一点的 NET版本使用的是不同的方法但是这里所讲的是微软推荐的一个新方法
为了使用编译器 你必须创建能描述应用程序的参数 这些参数类似于VS中你创建的参数 只是现在你可以对它们进行定义 该代码一开始就将GenerateExecutable设置为True 这意味着你需要的是一个EXE文件而不是DLL
Parms OutputAssembly属性包含了输出文件的名称 你只需要在想创建文件时提供这一信息即可 而不需要生成可执行内存了 如果你ixiang生成可执行文件的内存版本 可以将Parm GenerateInMemory属性设置为True
使用Parm TreatWarningsAsErrors属性来确定如何处理警告信息 默认的设置会使其为错误 这意味着你的应用程序可能无法对其进行编译 大多数程序员使用默认设置 尽管他们开发了程序 但是在开发完成的程序中却将其设置为False
大多数应用程序需要外部DLL以正常运行 当然 你不能创建任意的没有引用外部DLL的Windows表单程序 通常 你要使用Reference文件夹来完成这一任务 不过 当你动态创建代码的时候可以依赖于Parms ReferencedAssemblies属性 如下所示 只需添加你要的DLL即可
现在 你已经定义了项目 接下来需要为其创建源代码 如前文所述 你可以依赖于一个外部文件或DOM模式 然后 该示例创建了代码因此你可以看到整个过程 下面是代码的原始形式 Imports System Windows Forms Module TestAssemblySub Main()MessageBox Show( Dynamically Created Code! )End SubEnd Module
这个简单的例子显示了一个对话框 注意vbCrLf的使用 如果你不使用这一方法 那编译器会发送给你一个错误信息 vbCrLf条目在该代码中所起的作用与在程序代码中的作用相同 只是添加的方式不一样
从这一点老说 你最后会用Comp CompileAsseblyFromSource()方法编译代码 当使用DOM模式和文件的时候可以使用这一方法 而在所有三种情况中 编译器用参数和源代码创建了你请求的输出 该运算的输出出现在Executable中 是CompilerResults类型
编译的失败次数多于程序员的预计 无论你是在哪里使用动态编码技巧 你必须假设会出现失败的情况以及处理失败的方案 在本例中 代码寻找的是错误并在编译失败时将其展示在了信息框中 否则 代码会依赖于Process Start()方法来启用可执行文件
底线
动态编码技巧并不是万能钥匙 当你为开发问题找到了好的静态解决方案时 当然也可以使用 但是在我们所列出的情况中没有可行的静态方案 因此要选择动态编码技巧 大多数情况下 要用动态编码技巧解决以下问题
◆ 用户的环境会以不可预见的方式更改时
◆ 无法控制用户电脑的安装
◆ 用户或应用程序都添加了你要用控件执行的数据要素
◆ 应用程序必须执行很早以前的安装任务 且这些任务与电脑 环境 网络或其他不确定因素联系紧密时
◆ 应用程序要执行了处理级别的任务 且这些任务取决于机器连接或其他状况
lishixinzhi/Article/program/ASP/201311/21812
Q2: 一组数据,用vb求fft,数据需要归一化吗
一组数据,用vb求fft,数据需要归一化。
归一化后求FFT和没有归一化的值幅值相差一个倍数,各次谐波的角度不变。这个倍数就是归一化的过程缩小的倍数。
FFT是快速傅立叶分解,FFT后出来的数据不是点,第一个结果是直流分量,其模需要除以采样点数,才能是幅值。如果是150点,出来的150个数据是0,1,2,.....75,74,73.....2,1。所以直流量没有对称数据。
数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是常用的归一化方法:
min-max标准化(Min-Max Normalization)
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 , 1]之间。转换函数如下:
其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。
Q3: 求VB的FFT和FFT的反变换代码
晕 还有找快速傅立叶变换的
这个哥们博客有很多相关的
这个好像可以进行FFT和IFFT
前几天刚考完数字信号处理 学的这个晕啊
呵呵
这个是FFT的
*模块********************************************************
'FFT0 数组下标以0开始 FFT1 数组下标以1开始
'AR() 数据实部 AI() 数据虚部
'N 数据点数,为2的整数次幂
'NI 变换方向 1为正变换,-1为反变换
'***************************************************************
Public Const Pi = 3.1415926
Public Function FFT0(AR() As Double, AI() As Double, N As Integer, ni As Integer)
Dim i As Integer, j As Integer, k As Integer, L As Integer, M As Integer
Dim IP As Integer, LE As Integer
Dim L1 As Integer, N1 As Integer, N2 As Integer
Dim SN As Double, TR As Double, TI As Double, WR As Double, WI As Double
Dim UR As Double, UI As Double, US As Double
M = NTOM(N)
N2 = N / 2
N1 = N - 1
SN = ni
j = 1
For i = 1 To N1
If i j Then
TR = AR(j - 1)
AR(j - 1) = AR(i - 1)
AR(i - 1) = TR
TI = AI(j - 1)
AI(j - 1) = AI(i - 1)
AI(i - 1) = TI
End If
k = N2
While (k j)
j = j - k
k = k / 2
Wend
j = j + k
Next i
For L = 1 To M
LE = 2 ^ L
L1 = LE / 2
UR = 1#
UI = 0#
WR = Cos(Pi / L1)
WI = SN * Sin(Pi / L1)
For j = 1 To L1
For i = j To N Step LE
IP = i + L1
TR = AR(IP - 1) * UR - AI(IP - 1) * UI
TI = AI(IP - 1) * UR + AR(IP - 1) * UI
AR(IP - 1) = AR(i - 1) - TR
AI(IP - 1) = AI(i - 1) - TI
AR(i - 1) = AR(i - 1) + TR
AI(i - 1) = AI(i - 1) + TI
Next i
US = UR
UR = US * WR - UI * WI
UI = UI * WR + US * WI
Next j
Next L
If SN -1 Then
For i = 1 To N
AR(i - 1) = AR(i - 1) / N
AI(i - 1) = AI(i - 1) / N
Next i
End If
End Function
Public Function FFT1(AR() As Double, AI() As Double, N As Integer, ni As Integer)
Dim i As Integer, j As Integer, k As Integer, L As Integer, M As Integer
Dim IP As Integer, LE As Integer
Dim L1 As Integer, N1 As Integer, N2 As Integer
Dim SN As Double, TR As Double, TI As Double, WR As Double, WI As Double
Dim UR As Double, UI As Double, US As Double
M = NTOM(N)
N2 = N / 2
N1 = N - 1
SN = ni
j = 1
For i = 1 To N1
If i j Then
TR = AR(j)
AR(j) = AR(i)
AR(i) = TR
TI = AI(j)
AI(j) = AI(i)
AI(i) = TI
End If
k = N2
While (k j)
j = j - k
k = k / 2
Wend
j = j + k
Next i
For L = 1 To M
LE = 2 ^ L
L1 = LE / 2
UR = 1#
UI = 0#
WR = Cos(Pi / L1)
WI = SN * Sin(Pi / L1)
For j = 1 To L1
For i = j To N Step LE
IP = i + L1
TR = AR(IP) * UR - AI(IP) * UI
TI = AI(IP) * UR + AR(IP) * UI
AR(IP) = AR(i) - TR
AI(IP) = AI(i) - TI
AR(i) = AR(i) + TR
AI(i) = AI(i) + TI
Next i
US = UR
UR = US * WR - UI * WI
UI = UI * WR + US * WI
Next j
Next L
If SN -1 Then
For i = 1 To N
AR(i) = AR(i) / N
AI(i) = AI(i) / N
Next i
End If
End Function
Private Function NTOM(N As Integer) As Integer
Dim ND As Double
ND = N
NTOM = 0
While (ND 1)
ND = ND / 2
NTOM = NTOM + 1
Wend
End Function
'*使用**********
Const fftIn = 128
Dim i As Integer
Dim xr(128) As Double
Dim xi(128) As Double
'赋值,IaIn(i)是采得的数据。
For i = 0 To 128
xr(i) = 100 * IaIn(i)
xi(i) = 0
Next
'FFT变换
Call FFT0(xr(), xi(), 128, 1)
'绘图
picI_FFT.Scale (0, 100)-(fftIn - 1, -10)
picI_FFT.DrawWidth = 2
For i = 0 To fftIn - 1
picI_FFT.Line (i, Abs(xr(i)))-(i + 1, Abs(xr(i + 1))), vbBlue
Next i
Q4: 完整的VB.NET的语法解析程序
比较长 不过支持全部的关键字 直接就可以用了 using System;using System Text;using System Text RegularExpressions;
namespace Com OSLeague Component{/// summary/// 语法分析器 将所有Code根据语法进行变色/// list type= VB 支持VB NET/list/// list type= CS 支持CS/list/// author掉掉/author/// date 年 月 日/date/// Memo/// 练习正则表达式/// /Memo/// /summarypublic class CodeAnalysis{
////定义HTML开始和结束的语句 用于语法变色//
const string TAG_FNTRED = @ font color= red ;const string TAG_FNTBLUE = @ font color= blue ;const string TAG_FNTGRN = @ font color= green ;const string TAG_FNTMRN = @ font color= maroon ;const string TAG_FNTBLACK = @ font color= black ;const string TAG_EFONT = @ /font ;const string TAG_SPNYELLOW = @ span style= background color: yellow; ;const string TAG_ESPAN = @ /span ;const string TAG_B = @ b ;const string TAG_EB = @ /b ;const string TAG_MENT = @ font colr=# ;const string TAG_EMENT = @ /font ;
//
public CodeAnalysis(){//// TODO: 在此处添加构造函数逻辑//}
/// summary/// 处理VB NET代码 彩色化 /// /summary/// param name= Code 传入的Code/param/// returns处理过后的代码/returnspublic string ParseVB(string Code){////定义VB NET中关键字 将其存为数组//
string[] VB_Keyword = new string[]{ AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType Date Decimal Declare Default Delegate Dim DirectCast Do Double Each Else ElseIf End Enum Erase Error Event Exit False Finally For Friend Function Get GetType GoTo Handles If Implements Imports In Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing NotInheritable NotOverridable Object On Option Optional Or OrElse Overloads Overridable Overrides ParamArray Preserve Private Property Protected Public RaiseEvent ReadOnly ReDim RemoveHandler Resume Return Select Set Shadows Shared Short Single Static Step Stop String Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until Variant When While With WithEvents WriteOnly Xor };
////设定转换代码颜色//
lishixinzhi/Article/program/net/201311/14615
关于vb.netfft代码和vbnet wcf的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







