关于算法的一些想法

关于算法的一些想法

算法是编程的灵魂。不可想象,没有算法的程序会是一个高水平的程序。窗体的形状、大小涉及到算法;控件自身以及与其它控件的诸多关系需要计算;字符串的查找、截取和替换更离不开它了……总之,从小到一个按钮的安放位置,大到……(哪里呀?我不知道),无不与算法息息相关。
算法或是很简单,或是很复杂。凡事从简单做起,这是捷径吧。本文将从最简单的算法说明一下学习算法从哪开始。
有时简单的事也会让我们做成很复杂。比如:计算a的b次方吧,有人这样处理:
Dim a As Single, Total As Single, b As Integer
a = Text1.Text: b = Text2.Text: Total = 1
Do While b <> 0
Total = Total * a
b = b - 1
Loop
Text3.Text = Total
甚至这样:
Private Sub Command1_Click()
Dim a As Single, Total As Single
Dim b As Integer, n As Integer

a = Text1.Text
Total = Text1.Text
b = Text2.Text

Select Case b
Case 0
Total = 1
Case Is < 0
MsgBox "非法数据", vbOKOnly, "出错"
Text3.Text = ""
Exit Sub
Case Else
For n = 1 To b - 1
Total = Total * a
Next
End Select
Text3.Text = Total
End Sub

其实,如若知道VB中有一个专门计算此类问题的运算符“^”,则会简单可靠得多。试看:
Dim a As Double, b As Integer, c As Double
a = Text1.Text: b = Text2.Text
c = a ^ b
Text3.Text = c
再比如,VB编程乐园最近有一篇关于翻转字符串的文章,讨论如何利用递归原理编制一个翻转字符的函数,算法很精密,非常有意思(推荐认真研究一下):
Function reversestring(revstr As String) As String
Dim doreverse As Long
reversestring = ""
For doreverse = Len(revstr) To 1 Step -1
reversestring = reversestring & Mid$(revstr, doreverse, 1)
Next
End Function

不过如果我们用VB的内部函数StrReverse则更快更方便:
Text2.Text = StrReverse(Text1.Text)
看了这上面几个例子,你得出什么结论?哈,要学算法,首先得学一学VB的运算符和内部函数!吃透这些东西总没错,免得日后辛辛苦苦弄了个算法,回头一看,哇噻,VB自身早就有了!当然了,自己搞些算法不会没有好处的,至少可以锻炼锻炼嘛。只是在当今什么都飞速发展的年代,如果不是为了练习的需要,最好不要走太多的弯路。我说错了什么的话,敬请斧正! 

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

coolstar

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值