精华内容
下载资源
问答
  • VB.NET与C#的除法运算的比较

    千次阅读 2014-09-17 09:22:58
    但是VB.NET“/”返回一个Double类型数值(相当于C#1.0/2效果)。 在做这类运算时候,VB.NET会把被除数和除数提升到Double类型,因此1/0在VB.NET不是错误(因为这个表达式被解析成:1/CDbl(0))。结果CDbl(0...

    一、“/”运算符:

    C#中默认的“/”是取整除法(不四舍五入)。譬如C#中1/2默认返回一个整数0.

    但是VB.NET中“/”返回一个Double类型的数值(相当于C#中1.0/2的效果)。

    在做这类运算时候,VB.NET会把被除数和除数提升到Double类型因此1/0在VB.NET不是错误(因为这个表达式被解析成:1/CDbl(0))。结果CDbl(0)是一个接近于0的,但不是等于0的浮点数(可以理解为“正无穷小”),那么结果是“正无穷大”。但C#在做"/"时候,由于两个都是整数,因此直接做整数相除,抛出异常(如果尝试在C#中1.0/0,可以得到和VB.NET中一样的结论)。

     

    二、“\”运算符:

    这是VB.NET独有的,和C#的“/”一致。值得注意的是如果双方有一个浮点数,取整结果默认转化为Long(Int64)。此时1\0会发生错误。

     

    三、取余运算:

    C#中是“%”,VB.NET是Mod,类型按照实际结果决定。

    展开全文
  • '先定义2个结构Parent和Plus,把这2个定义放在代码段最前面Private Type Parent s As String value As DoubleEnd TypePrivate Type Plus s As String value As DoubleEnd Type'下面是实现此功能函数定义,比较长...
    '使用下面提供给你的函数可以做到这点!
    '先定义2个结构Parent和Plus,把这2个定义放在代码段最前面
    Private Type Parent
      s As String
      value As Double
    End Type
    Private Type Plus
      s As String
      value As Double
    End Type

    '下面是实现此功能的函数的定义,比较长
    Public Function ValueOfExpression(ByVal Express As String) As Double
    Dim Pa() As Parent, ParNum As Integer, Ps() As Plus, OperNum As Integer
    Dim str0 As String

    '按括号分解表达式 Express:Begin-----/*
    Dim lenExp As Integer, Lenstr1 As Integer, i As Integer, j As Integer, k As Integer, str1 As String, str2 As String, intPar As Integer
    Dim intStart As Integer, intEnd As Integer
    lenExp = Len(Express)
    For i = 1 To lenExp
      If Mid(Express, i, 1) = "(" Then intPar = intPar + 1
    Next
    ParNum = intPar
    ReDim Pa((intPar / 10 + 1) * 10)
    For i = 1 To intPar
      If intPar < 1 Then Exit For
      For j = 1 To lenExp
        If Mid(Express, j, 1) = ")" Then
          str1 = Mid(Express, 1, j - 1)
          Exit For
        End If
      Next
      Lenstr1 = Len(str1)
      For k = 1 To Lenstr1
        If Mid(str1, Lenstr1 + 1 - k, 1) = "(" Then
          Pa(i).s = Mid(str1, Lenstr1 + 2 - k)
          Exit For
        End If
      Next
      Express = Mid(Express, 1, Lenstr1 - k) & Chr(128) & CStr(i) & Mid(Express, j + 1)
      lenExp = Len(Express)
    Next
    Pa(0).s = Express
    '*/-----End

    '按加减号进一步分解:Begin-----/*
    Dim n As Integer, strLeft As String
    For i = 0 To ParNum
      k = 0
      For j = 1 To Len(Pa(i).s)
        str1 = Mid(Pa(i).s, j, 1)
        If str1 = "+" Or str1 = "-" Then k = k + 1
      Next
      If k > OperNum Then OperNum = k
    Next
    ReDim Ps(ParNum, OperNum)
    For i = 0 To ParNum
      strLeft = Pa(i).s: n = 0: str2 = ""
      Do
        If Len(strLeft) = 0 Then Exit Do
        For j = 1 To Len(strLeft)
          str1 = Mid(strLeft, j, 1)
          If str1 = "+" Or str1 = "-" Then
            Ps(i, n).s = str2 & Mid(strLeft, 1, j - 1)
            n = n + 1
            str2 = IIf(str1 = "-", str1, "")
            strLeft = Mid(strLeft, j + 1)
            Exit For
          End If
          If j = Len(strLeft) Then
            Ps(i, n).s = str2 & strLeft: j = 0
            Exit For
          End If
        Next
      Loop Until j = 0
    Next
    '*/-----End

    '计算最后分成的多个简单表达式的值的总和,即表达式 Express 的值
    Dim Total As Double, value As Double
    For i = 1 To ParNum + 1
      If i = ParNum + 1 Then i = 0
      Total = 0
      For j = 0 To OperNum
        Express = Ps(i, j).s: value = 0
        Dim lasti As Integer, operator As String
        lenExp = Len(Express): lasti = 0: operator = ""
        For k = 1 To lenExp
          str0 = Mid(Express, k, 1)
          If InStr("*/^", str0) > 0 Or k = lenExp Then
            If k = lenExp Then k = k + 1
            str1 = Mid(Express, lasti + 1, k - 1 - lasti)
            Dim sign As Integer, Valstr1 As Double
            If Mid(str1, 1, 1) = "-" Then
              sign = -1
              str1 = Mid(str1, 2)
            Else
              sign = 1
            End If
            n = InStr(1, "/sin" & Chr(128) & "/cos" & Chr(128) & "/tan" & Chr(128) & "/abs" & Chr(128) & "/atn" & Chr(128) & "/exp" & Chr(128) & "/int" & Chr(128) & "/fix" & Chr(128) & "/sgn" & Chr(128) & "/sqr" & Chr(128) & "/", "/" & Mid(str1, 1, 4) & "/")
            If n > 0 Then
              Valstr1 = Choose((n + 4) / 5, Sin(Pa(Val(Mid(str1, 5))).value), Cos(Pa(Val(Mid(str1, 5))).value), Tan(Pa(Val(Mid(str1, 5))).value), Abs(Pa(Val(Mid(str1, 5))).value), Atn(Pa(Val(Mid(str1, 5))).value), Exp(Pa(Val(Mid(str1, 5))).value), Int(Pa(Val(Mid(str1, 5))).value), Fix(Pa(Val(Mid(str1, 5))).value), Sgn(Pa(Val(Mid(str1, 5))).value), Sqr(Pa(Val(Mid(str1, 5))).value))
            Else
              n = InStr(1, "/lg" & Chr(128) & "/ln" & Chr(128) & "/", Mid(str1, 1, 3))
              If n > 0 Then
                Valstr1 = Choose((n + 3) / 4, Log(Pa(Val(Mid(str1, 4))).value) / Log(10), Log(Pa(Val(Mid(str1, 4))).value))
              Else
                If Mid(str1, 1, 1) = Chr(128) Then
                  Valstr1 = Pa(Val(Mid(str1, 2))).value
                ElseIf Right(str1, 1) = "!" Then
                  If Val(str1) = 0 Then
                    Valstr1 = 1
                  Else
                    Valstr1 = 1
                    For n = 1 To Val(str1)
                      Valstr1 = Valstr1 * n
                    Next
                  End If
                Else
                  Valstr1 = Val(str1)
                End If
              End If
            End If
            Valstr1 = Valstr1 * sign
            Select Case operator
              Case ""
                value = Valstr1
              Case "*"
                value = value * Valstr1
              Case "/"
                value = value / Valstr1
              Case "^"
                value = value ^ Valstr1
            End Select
            lasti = k: operator = str0
          End If
        Next
        Ps(i, j).value = value
        Total = Total + Ps(i, j).value
      Next
      Pa(i).value = Total
      If i = 0 Then Exit For
    Next
    ValueOfExpression = Pa(0).value
    End Function
    'OK,到这里结束了该函数的定义
    '使用例子:
    'A="5+5+5"
    'Print ValueOfExpression(A)

    '其它说明:该函数支持很多数学函数如sin、cos、tan等等,如:
    'Print ValueOfExpression("sin(1)")
    '注意后面要加括号
    '该函数支持运算符+-*/^!,还有括号,^为乘幂,其优先级与*/相同,这是使用该函数需要注意的地方;!为阶乘
    '自己试试就知道怎么回事了!

    转载于:https://www.cnblogs.com/zlmlovem/archive/2010/11/30/1892031.html

    展开全文
  • 关于除法运算的比较

    千次阅读 2013-06-17 21:10:42
    但是VB.NET“/”返回一个Double类型数值(相当于C#1.0/2效果)。 在做这类运算时候,VB.NET会把被除数和除数提升到Double类型,因此1/0在VB.NET不是错误(因为这个表达式被解析成:1/CDbl(0))。结果CDbl(0...

    一、“/”运算符:

    C#中默认的“/”是取整除法(不四舍五入)。譬如C#中1/2默认返回一个整数0.

    但是VB.NET中“/”返回一个Double类型的数值(相当于C#中1.0/2的效果)。

    在做这类运算时候,VB.NET会把被除数和除数提升到Double类型因此1/0在VB.NET不是错误(因为这个表达式被解析成:1/CDbl(0))。结果CDbl(0)是一个接近于0的,但不是等于0的浮点数(可以理解为“正无穷小”),那么结果是“正无穷大”。但C#在做"/"时候,由于两个都是整数,因此直接做整数相除,抛出异常(如果尝试在C#中1.0/0,可以得到和VB.NET中一样的结论)。

    二、“\”运算符:

    这是VB.NET独有的,和C#的“/”一致。值得注意的是如果双方有一个浮点数,取整结果默认转化为Long(Int64)。此时1\0会发生错误。

    三、取余运算:

    C#中是“%”,VB.NET是Mod,类型按照实际结果决定。


    <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
    展开全文
  • 但是MATLAB语言是一种解释执行脚本语言,运算速度较慢是一个比较突出问题。Visual Basic作为一门易学易用编程语言,受到很多工程技术人员青睐,其执行速度相对较快,界面友好。因此实现...
  • 建立运行环境-Excel Vba,可移植到VB环境(需修改一些代码) '仿制简单SQL查询语句,用于对二维数组查询 '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '...
  • C#与Vb Java区别

    千次阅读 热门讨论 2012-12-30 09:42:05
     C#和Java都是比较规范面相对象编程语言,vb是基于对象一种程序设计语言,所以C#语言,与Java语言相似,不同点少,C#和Java与Vb之间差别多点,但是无论哪种语言,基本数据类型和运算之间不会有冲突。...

     

          C#与Java的区别总结如下:

        C#和Java都是比较规范的面相对象的编程语言,vb是基于对象的一种程序设计语言,所以C#语言,与Java语言相似,不同点少,C#和Java与Vb之间的差别多点,但是无论哪种语言,基本的数据类型和运算之间不会有冲突。

     

        下面是对这三种语言关系的总结。

       

    一:语法基础

     

       1,运算符

         在C#中有sizeof 运算,在Java和Vb中没有(Java中有instanceof >>>,vb中有>>)。

         sizeof运算符用来返回某种数据类型(值类型)所占用的字节数,用法如下:

        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(sizeof(Int32));    //显示int32 类型所占字符数
                Console.WriteLine(sizeof(double));   //显示double类型所占字符数
    
            }
        }


        运行结果:

     

     

       

      2,数据类型

          C#中有枚举类型,用enum关键字,Java中没有枚举类型,vb中有。

    enum Ages{ZhangSan,LiSi,WangWu,aLiu}


     

      3,语句

          C#中特有语句foreach。foreach语句的作用是遍历数组。用法如下:

        class Program
        {
            static void Main(string[] args)
            {
                
                int[] arr = new int[]{0,1,2,3}; //定义arr数组,并赋值
                int even=0,odd=0;              //定义两个变量,并将初值赋为0
                foreach (int i in arr)  //遍历arr数组中每一个数
                {
                    if (i % 2 == 0)    //如果数组arr中的元素为偶数
                        even++;        //even 变量加1
                    else               //如果不为偶数
                        odd++;         //odd变量加1
                }
    
                Console.WriteLine(even);
                Console.WriteLine(odd);
    
            }
        }


          运行结果:

     

        

     

      4,方法

        在C#中,一个参数在默认情况下是按值传递的,按引用传递的时候,要有关键字ref,Java中也是按值传递和按引用传递,在Vb中则是按值传递和按地址传递,名称不一样,性质一样。

        Vb中的关键字传值为ByVal,传地址为byref。传地址(引用),传递的是值得引用,传递后,指向的还是那个空间;传值,传递的是具体的值,传递后就不再有任何关系啦。

     

      5,C#和Java中个都有包,vb中没有;

        C#中方法以大写字母开头,变量以小写字母开头,Java中方法类似变量,以小写字母开头,类名以大写字母开头,vb中变量名称命名,或者是窗体名称命名的时候,都采用大写字母开头(驼峰式);

        C# Java注释语句一样(/*  */),vb用“’”;

        C#和Java都要有一个标准库来提供输入输出,C#中用Console.ReadLine (),Java中用BufferedReader keyin=new BufferedReadReader(new InputStreamReader(System.in);   System.out.printIn();

     

     

      6,循环

        C#中switch语句后必须用break;java和Vb中可以不用,在Java和vb中都允许为case语句使用“自然下移”语义,即如果当前case 的结果不对应,自动跳转到下一个case。

     

     

    二:类

      1, C#和Java中都有class关键字标志的类,为应用类型,且每个类都有访问修饰符(public)。vb中也有类,创建的时候是在模块中,利用类生成器,而在C#和Java中直接定义在一个空间中即可。

     

      2,构造函数

      C#中有构造函数和析构函数,构造函数名称和类名一致,且没有返回值,用来初始化一些值,析构函数用来终止操作,Java中也有构造函数,不同的是在Java中不用定义析构函数,因为Java中存在自动垃圾回收机制。

     

      3,继承

      C#和Java中都有继承,C#中是单一继承,多个继承用接口实现,Java中存在多继承,父类名称间用“,”隔开;

      C#中继承用“:” 如Dog类继承Animal类 class Dog:Animal ,Java中用extends关键字,如A继承B class A extends B

      意义一样,不同的只有关键字。

     

      4,关系

       C#和Java中类间的关系有依赖,关联,组合,聚合。

       依赖关系在类中就是一种实用,A类依赖B类,就是A中使用B类,B类修改直接影响到A类,关系弱

       关联关系在类中就是一种引用,A类关联B类,就是A中引用了B类中的方法,在A类中以属性的形式表示,强依赖

       组合聚合都是整体和部分之间的关系,不同的是组合关系为contain-a (不可分割)聚合关系为has-a(可分割)

     

       在vb中我们经常讨论的是模块,窗体,类模块之间的关系。

        窗体是可视化的窗体,运行的时候展示,模块呢则是代码展示,类模块主要是为了与面向对象挂钩,在类模块中定义的东西,达到了封装的目的,就类似于第三方控件。

     

      还有在这里也体现了作用域,在模块中定义的变量为局部变量,在类模块中定义的变量是全局变量。

      

     

    三:异常处理

      C#中,一个方法检测到一个错误条件时,引发异常,如除数为0。实例如下:

        class Program
        {
            static void Main(string[] args)
            {
                int result=0;                                   //定义result变量,并赋初值为0
                Console.WriteLine("请输入X的值:");
                int x = Convert.ToInt32(Console.ReadLine());   //用x 获取键盘输入的值
                Console.WriteLine("请输入Y的值:");            
                int y = Convert.ToInt32(Console.ReadLine());   //用y 获取键盘输入的值
                try
                {
                    result = 24 / (x-1) / (y - 1); 
                }
                catch (Exception e)                           //捕获异常
                {
                    Console.WriteLine(e.Message);             //输出原因
                }
                Console.WriteLine("结果为{0}", result);       //输出result结果
    
            }
        }

      运行结果:

     

     

     

      Java中也有异常处理语句,跟C#语言一样,但vb中如果有异常了,需要我们手动添加异常处理语句。形如:on error goto xx    xx:

     

     

     四:语言和运行过程

      1,解释型语言

        把做好的源程序翻译一句,然后执行一句,直到结束…….执行速度慢,效率低,依赖解释器,跨平台好.

     

      2,编译型语言

      把做好的源程序全部编译成二进制代码的可运行程序…...执行速度快,效率高,依赖编译器,跨平台差

      编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,以后要运行的话就不用重复翻译啦,直接使用编译的结果就行啦。

     

      Java是半编译半解释型语言,C#是编译型语言,Java等的源码先编译成字节码,再由虚拟机“解释”执行字节码。其中Java运行过程为源程序.java --编译器.class--操作系统平台

     

        vb则是解释型语言,它运行前要生成.exe格式的文件,vb6.0版本之前的则是伪编译型语言,最终最终编码不能执行,需要动态链接库去解释执行,vb6.0和vb6.0之后的版本则是直接产生可执行的代码。

     

     

    附:程序的执行过程

         1load到内存区

         2,找到main方法开始执行

         3,执行过程中内存管理

               code segment(代码段) 存放代码的方法和函数

               data segment(数据段)静态变量字符串常量

               stack(栈)   局部变量

               heap(堆)    new出来的东西

    展开全文
  • VB开发环境实现时间之间加减运算有很多种方法,前不久自己无意发现了Datediff函数,它能够比较简单、全面地实现我们比较常用时间之间的运算,今由自己研究,搞清了它一些用法,拿来和大家分享!...
  • 逆向——VB调试

    2019-04-15 19:33:52
    逆向——VB调试VB调试(一)认识VB两种编方式VB逆向中常用的函数:数据类型转换数据移动数学运算程序设计杂项比较函数在动态跟踪,分析算法时,尤其要注意的函数:函数中的缩写Btw调试中相关使用拦截警告声数据移动...
  • 以下是我用imagxpress控件配合此方法的代码:模块'Imagx是自定义变量类型Public Type ImageX ImageArray() As ByteEnd Type'将imagxpress控件中的图像写入数组Function GetImage(imageOBJ As ImagXpress) As ImageX...
  • (老实说,我是程序疯子,比较熟悉VB和汇编)汇编看起来就像几年前QB低级版本。(QB大量存在GOTO,和汇编JMP一样,呵呵)我学过八位、十六位汇编,以及微机原理、计算机组成原理,做过十六位算术运算器及其...
  • vb Script参考文档

    2009-07-28 22:13:02
    比较常数 用于比较运算的常数列表。 连接运算符 (&) 强制两个表达式字符串连接。 Const 语句 声明用于字母值常数。 Cos 函数 返回角度余弦值。 CreateObject 函数 创建并返回对“自动”对象引用。 CSng...
  • 例1234.567这个数是3(为什么要这样定义,因为大多基本运算都是右对齐,这样定义减少了中间一些不必要转换) JzBz As Integer '标记数组存是什么进制数(十进制或其它进制数) strlen As Long '运算数...
  • 折叠式共源共栅CMOS运算放大器设计

    千次阅读 2020-05-12 22:21:13
    折叠式共源共栅CMOS运算放大器...当W和I值相差过大和两数值不论是一个还是两个特别大都会导致效果不理想。 五、VB4 W不能过大,I不能过小,中间差值没有过多影响。 六、AVDD 数值不能太大,需找到特定值。 ...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • 优化代码时要选用正确测试方法

    千次阅读 2005-04-12 19:56:00
    这里我很想说一段“故事”:我在研究一个Alpha运算的代码时,就感到了同样的问题:他把VB算法与API中的AlphaBlend做了比较,结果证明VB更快。因为我也写过一个Alpha运算的代码,所以针对他的源码做了分析,发现二者...
  • 技术小白C语言之路

    2015-10-26 16:09:06
    汇编语言(cpu中的计算指令集) C语言、C++、objective-c-(苹果操作系统和IOS系统开发语言) C#(微软发展的语言,发展比较迅速)、JAVA(跨平台运行,主要在虚拟机进行运行) VB(六七年前VB6.0)、DELPHI(医疗...
  • 【C#基础】运算符

    千次阅读 热门讨论 2015-12-23 17:23:21
    运算符用于执行程序代码运算,会针对一个以上操作数进行运算。是程序中的一个重要组成部分,目前...VB中的运算符,大家现在是不是忘得差不多了呢?接下来这篇博客将比较一下VB和C#中运算符的异同点。 一、算数运算符
  • 求2个集合交集

    2014-05-26 18:49:03
    HashSet(IEnumerable<T> collection,IEqualityComparer<T> comparer) 使用指定的比较器实例化数据,且将指定集合中的元素复制到集合中。 因为HashSet是专门设计来做集合运算的,因此它提供的方法中有不少是和集合...
  • 而在应用程序开发过程中的编译阶段由程序开发人员控制运算操作顺序且由编译程序完成命令表达式计算的过程称为静态解释执行。 有效性的要求还必须在程序执行中对按照某种运算规则解释的源输入表达式数据流的正确性给...
  • 嵌入式硬件(四)常用模拟集成电路一、模拟比较器二、运算放大器三、模拟开关上述便是这篇所有内容,有朋友想了解或者博客有误地方,大家留言即可,我会及时整改 一、模拟比较器 图1 模拟比较器 工作原理:当...
  • 21.1 VB 6.0开发环境 21.1.1 VB 6.0介绍 21.1.2 VB 6.0的版本 21.1.3 VB 6.0开发环境 21.2 VB 6.0连接数据库 21.2.1 VB 6.0中的数据库控件介绍 21.2.2 数据库连接举例 21.3 数据查询应用 21.3.1 普通数据查询的实现 ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET的第一语言 本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕... C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 ...
  • asp.net知识库

    2015-06-18 08:45:45
    asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多...
  • C#微软培训资料

    2014-01-22 14:10:17
    C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出...
  • 实例128 统计某个字符在一个字符串变量中的出现次数 实例129 判断字符串中某一字符是否大写 实例130 判断字符串是否为日期或时间 实例131 判断获得字符串中大写字符的个数 实例132 巧截字符串的数字 实例133 ...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

vb中的比较运算