精华内容
下载资源
问答
  • 2016-11-26 11:34:18
    运行效果:
    VB编程:数组中删除数组元素-27

    程序代码:
    Dim a()
    Private Sub Form_Load()
        ReDim Preserve a(1 To 5)
        For i = 1 To 5
            a(i) = i
        Next i
        For i = 1 To 5
            Text1.Text = Text1.Text & "a(" & i & ")=" & a(i) & ";   "
        Next i
        For i = 2 To 4
            a(i) = a(i + 1)
        Next i
        ReDim Preserve a(1 To 4)
        For i = 1 To 4
            Text2.Text = Text2.Text & "a(" & i & ")=" & a(i) & ";   "
        Next i
    End Sub

    总结:
        1、插入数组元素和删除数组元素都使用循环交换,插入数组元素是原数组元素往后移动,删除数组元素是将原数组的元素往前移动。
        2、插入数组元素,需要先将数组长度加长再增加数组元素;删除数组元素,可以先删除数组元素,再建数组长度缩短。

    更多相关内容
  • VB学习记录——数组

    万次阅读 多人点赞 2019-07-06 13:05:49
    1.定义一个数组,其实就是让系统在内存分配一个连续的区域,用来存储数组的元素。其格式为:Dim 数组名字 (下界 To 上界) As 类型。 Dim MarkVB(1 To 30) As Integer '定义一个一维数组 上界30 下界是1 共30个...

    数组知识初步总结

    1.定义一个数组,其实就是让系统在内存中分配一个连续的区域,用来存储数组的元素。其格式为:Dim 数组名字  (下界 To 上界) As  类型。

    Dim MarkVB(1 To 30) As Integer '定义一个一维数组  上界30  下界是1  共30个元素。 也可以Dim MarkVB(29) As integer,此定义下表从0开始,元素也是30个。   加上Option Base 1  ,Dim MarkVB(30) As integer这个语句也是30个元素,下标从1开始。数组大小=上界-下界+1。

    2.动态数组 ,不能定义数组的维数和个数。Dim  Mark()  As Integer  使用的时候重新声明     redim Mark(n)即可。使用关键字Pereserve可以保存之前的数组内容。

    3. ReDim 语句的下标可以是常量,也可以是有确定值的变量,程序书写时可以多次使用ReDim来改变数组的大小,但是每次使用Redim语句都会造成数组之前数据的丢失,使用Preserve选项对数组进行重新说明时,将会保留数组中原来的数据,但是该参数只能改变最后一维的大小。

    4.数组输入函数 Array(),此函数只能对一维数组进行赋初值,并且这个数组必须为Variant变体型,不能声明数组的大小和类型。Dim  Mark() ,Mark=Array(1,2,3)  ,此时可以利用Ubound()函数确定数组的上界,比如Ubound(Mark)=2,利用For循环可以输出数组元素。

    5.Val()是一个类型转换函数 ,可以把字符串转换成相应的整数,Val("-3")=-3   VAL("vb5.0")=0  VAL("12 bC")=12  VAL与CSTR功能相反,CSTR将数值表达式的值换成字符串        CSTR(125)="125"

    6. 选择法排序

    思想:求取数组最值下标,并交换位置。

    步骤: 1. 每一轮在未排序的数组中,找出最值和第一个元素进行交换,这样就确定了一个元素的位置

                 2. 未排序的数组范围缩小一个,继续采取上述步骤进行新的排序

    注意一下  n个数据只要进行N-1轮排序即可  附上一个代码

     7.冒泡法排序

    思想:冒泡排序 每一次将相邻的两个数字进行比较,比如10个数字。每一次比较相邻的两个,让比较大的数值往下走,第一轮比较9次就可以将最大的数字排到最后面,10个数字需要进行9趟比较,第i趟比较的次数为10-i.

    注意点:冒泡排序是可以提前结束的,如果在某一趟的排序比较中,没有发现变量的下沉,那么说明数字已经是有序排列,则此时可以终结排序。设置一个标志变量 ,放在内循环中,用来检测排序是否完成 。程序如下

    8. 插入数据,在有序数组中插入一个数据

    基本思想:首先寻找插入的位置,其次将插入位置之后的元素一次向后移位 。  

    注意事项及代码 如下

    9.删除数据

    10. Asc()函数用来返回字符的ASCII码   并且只返回第一个字符  Asc("abc")  =97   

    Ucase()函数:UCase(string),返回 Variant(String)其中包含转成大写的字符串。必要的 string参数为任何有效的字符串表达式。如果 string 包含 Null,将返回Null。只有小写的字母会转成大写,原本大写或非字母之字符保持不变。例:Dim MyWord= UCase("Hello World")' 返回"HELLO WORLD"。

    展开全文
  • VB6实现动态多行增加和删除控件 Option Explicit Dim S1GlngMaxCharactor As Long Dim ChoiceRemove As Long '选择角色移除对象 Private Sub CmdAdd() Dim i As Long, n As Long Dim MaxCharactor As Long ...

               VB6实现动态增加和删除控件数组中的控件

    2021-6-3修改一个BUG

    控件的添加:

    1From1名称改为FrmWork

    2.添加Picture控件名称改为PicCharacterContainer

    3.添加Picture控件名称改为PicShow放入PicCharacterContainer中,设置成控件数组

    4.添加Text控件名称改为TxtShow放入PicCharacterContainer中,设置成控件数组

    操作:在PicCharacterContainer中鼠标左键添加控件,鼠标右键去除控件(可以点选指定控件)。

     

    代码: 

    Option Explicit
    Dim S1GlngMaxCharactor As Long
    Dim ChoiceRemove As Long '选择角色移除对象
    Private Sub CmdAdd()
    Dim i As Long, n As Long
    Dim MaxCharactor As Long
    MaxCharactor = 100 '最大控件数
    For i = 1 To MaxCharactor
        If fChkControls(FrmWork, "PicShow", i) = True Then '控件存在
        n = n + 1
        End If
    Next i
    S1GlngMaxCharactor = n + 1
    For i = 1 To MaxCharactor
        If fChkControls(FrmWork, "PicShow", i) = False Then '控件不存在
            AddCharactor i '增加Picture控件
            AddCharactorNotice i '增加Text控件
            PublicNewArrangeAdd S1GlngMaxCharactor, "PicShow", FrmWork, FrmWork.PicShow '在缺失位置增加控件
            PublicNewArrangeAdd S1GlngMaxCharactor, "TxtShow", FrmWork, FrmWork.TxtShow '在缺失位置增加控件
            AlignBoxes '对齐控件
            TxtShow(i).Text = i '显示控件数组编号
            Exit For
        End If
    Next i
    End Sub
    Private Sub CmdRemove()
    Dim n As Long, i As Long
    If ChoiceRemove <> 0 Then
    Unload PicShow(ChoiceRemove)
    Unload TxtShow(ChoiceRemove)
    ChoiceRemove = 0
    Else
        If S1GlngMaxCharactor >= 1 Then
                    For i = 1 To 100
                        If fChkControls(FrmWork, "PicShow", i) = True Then '存在 '2020-8-22修改为True
                        n = i '找到未删除最大编号
                        End If
                    Next i
                    If n = 0 Then
                        S1GlngMaxCharactor = S1GlngMaxCharactor - 1
                        MsgBox "最初控件不能移除"
                        Exit Sub
                    End If
        Unload PicShow(n)
        Unload TxtShow(n)
        S1GlngMaxCharactor = S1GlngMaxCharactor - 1
        Else
        MsgBox "最初控件不能移除"
        End If
    End If
    End Sub
    Private Sub PicCharacterContainer_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        CmdAdd
    End If
    If Button = 2 Then
        CmdRemove
    End If
    End Sub
    Rem 判断控件是否存在
    Function fChkControls(frmObject As Form, strControlsName As String, ByVal lngIndex As Long) As Boolean
    On Error GoTo Err
        Dim strContrName As String
        If lngIndex >= 0 Then
            strContrName = frmObject.Controls(strControlsName)(lngIndex).Name
        Else
            strContrName = frmObject.Controls(strControlsName).Name
        End If
        fChkControls = True
        Exit Function
    Err:
        fChkControls = False
    End Function
    Rem 增加控件
    Public Sub AddCharactor(ByVal n As Long)
    Dim RowNum As Long
    Dim Row As Long, Line As Long
    Load FrmWork.PicShow(n)
    Set FrmWork.PicShow(n).Container = FrmWork.PicCharacterContainer
    RowNum = Int(FrmWork.PicCharacterContainer.Width / FrmWork.PicShow(0).Width)  '一排容纳多少控件
    If n - 1 >= 0 Then
        Line = Int(n / RowNum) + 1               '控件所处行号
        Row = (n + 1) - (Line - 1) * RowNum '控件所处列号
        FrmWork.PicShow(n).Left = FrmWork.PicShow(0).Left + (Row - 1) * FrmWork.PicShow(n).Width
        FrmWork.PicShow(n).Top = FrmWork.PicShow(0).Top + (Line - 1) * (FrmWork.PicShow(n).Height + FrmWork.TxtShow(0).Height)
        FrmWork.PicShow(n).Visible = True
    End If
    End Sub
    Rem 增加文字控件
    Public Sub AddCharactorNotice(ByVal n As Long)
    Load FrmWork.TxtShow(n)
    Set FrmWork.TxtShow(n).Container = FrmWork.PicCharacterContainer
    If n - 1 >= 0 Then
        FrmWork.TxtShow(n).Left = FrmWork.PicShow(n).Left
        FrmWork.TxtShow(n).Top = FrmWork.PicShow(n).Top
        FrmWork.TxtShow(n).Visible = True
    End If
    End Sub
    Rem MaxNumber         最大数量
    Rem ControlBoxName 控件名称
    Rem From                     工作界面
    Rem ControlBox           控件:例子From.PicShow
    Public Sub PublicNewArrangeAdd(ByVal MaxNumber As Long, ByVal ControlBoxName As String, _
    ByRef From As Object, ByRef ControlBox As Object)
    Dim i As Long, l As Long, A As Variant, B As Variant
    For l = 1 To MaxNumber
        For i = 1 To MaxNumber
            If fChkControls(From, ControlBoxName, i) = True And fChkControls(From, ControlBoxName, i + l) = True Then
               If ControlBox(i).Left > ControlBox(i + l).Left Then
                If ControlBox(i).Top = ControlBox(i + l).Top Then '2021-6-2增加,作用是同行才交换位置
                A = ControlBox(i + l).Left
                B = ControlBox(i).Left
                ControlBox(i + l).Left = B
                ControlBox(i).Left = A
                End If
               End If
            End If
        Next i
    Next l
    End Sub
    Public Sub AlignBoxes()
    Dim i As Long
    On Error Resume Next '防止控件没有出错
    For i = 1 To S1GlngMaxCharactor
        FrmWork.TxtShow(i).Left = FrmWork.PicShow(i).Left
        FrmWork.TxtShow(i).Top = FrmWork.PicShow(i).Top + FrmWork.PicShow(i).Height
    Next i
    End Sub
    Private Sub PicShow_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then
        ChoiceRemove = Index
        CmdRemove
    End If
    If Button = 1 Then
        CmdAdd
    End If
    End Sub
    

     

    展开全文
  • 设程序有如下数组定义和过程调用语句:Dima(10)AsInteger……Callp(a)如下过程定义,正确的是( )。A.PrivateSubp(aAsInteger)B.PrivateSubp(a()AsInteger)C.PrivateSubp(a(10)AsInteger)D.PrivateSubp(a(n)...

    设程序中有如下数组定义和过程调用语句:

    Dim a(10) As Integer

    ……

    Call p(a)

    如下过程定义中,正确的是(  )。

    A.Private Sub p(a As Integer)

    B. Private Sub p(a() As Integer)

    C. Private Sub p(a(10) As Integer)

    D. Private Sub p(a(n) As Integer)设有如下数组声明语句:

    Dim arr(-2 to 2,0 to 3)AS Integer

    该数组所包含的数组元素个数是(  )。

    A.20

    B.16

    C.15

    D.12现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是(  )。

    A.Name

    B.Index

    C.Caption

    D.Value在窗体上画四个文本框,并用这4个文本框建立一个控件数组,名称为Textl(下标从0开始,自左至右顺序增大),然后编写如下事件过程:

    35a8d995e7620531cb643a18dbd26484.png

    程序运行后,单击命令按钮,4个文本框中显示的内容分别为(  )。

    A.0 1 2 3

    B.1 2 3 4

    C.0 1 3 2

    D.出错信息某人编写了一个能够返回数组a中10个数中最大数的函数过程,代码如下:

    06834dfe715b1ec74361c2efb8e5b08a.png

    程序运行时,发现函数过程的返回值是错的,需要修改,下面的修改方案中正确的是(  )  。

    A.语句max=1应改为max=a(1)

    B.语句For k=2 To 10应改为For k=1 To 10

    C.If语句中的条件a(k)>a(max)应改为a(k)>max

    D.语句MaxValue=max应改为MaxValue=a(max)有如下程序:

    Option Base !

    Private Sub Command1_Click()

    Dim arr(10)

    arr=Array(10,35,28,90,54,68,72,90)

    For Each a In arr

    If a>50 Then

    Sum=Sun+a

    End If

    Next a

    End Sub

    运行上述程序时出现错误,错误之处是(  )。

    A.数组定义语句不对,应改为Dim arr

    B. 没有指明For循环的终值

    C. 应在For语句之前增加Sum=0

    D. Next a应改为Next要求产生10个随机整数,存放在数组arr中,从键盘输入要删除的数组元素的下标,将该元素中的数组删除,后面元素中的数据依次前移,并显示删除后剩余的数据,现有如下程序:

    Option Base 1

    Private Sub Command1_Click()

    Dim arr(10) AS Integer

    For i=1 to 10

    arr(i)=int (Rnd*100)

    Print arr(i);

    Next

    x=inputbox(“输入1到10的一个整数:”)

    For i=x+1 to 10 ‘循环2

    arr(i-1)=arr(i)

    Next

    For i=1 to 10 ‘循环3

    Print arr(i);

    Next

    End Sub

    程序运行后发现显示的结果不正确,应该进行的修改是(  )。

    A.产生随机数时不使用Int函数

    B. 循环2的初始值应为i=x

    C. 数组定义改为Dim a(11) as integer

    D. 循环3是循环终值应改为9使用语句Dim X As Variant声明数组变量x之后,以下说法正确的有(  )。

    A.X数组中所有元素值为0

    B.X数组中的所有元素值不确定

    C.X数组中的所有元素值为Empty

    D.执行Erase A后,X数组中的所有元素值为0在窗体上画一个名称为Text1的文本框,然后画三个单选按钮,并用这三个单选按钮建立一个控件数组,名称为0ption1,程序运行后,如果单击某个单选按钮,则文本框中的字体将根据所选择的单选按钮切换,如图所示。请选择空白处合适的语句(  )。

    9b59ff34b94db2ec650cc3559f409ed3.png

    16e467b71ebc45cc8a489711da6f854e.png

    A.Option Text

    B.Index Text

    C.Index Font

    D.Option Font以下程序代码实现生成20个0~100之间的随机整数,存于数组中,打印数组中大于50的数,并求这些数的和。请选择正确的程序段是(  ),完成程序。

    3e38e2606459d9c593bdc24edd7e0056.png

    A.Int(Rnd*99+1) In air

    B.Int(RnD) In air

    C.Int(Rnd*99+1) In air()

    D.Int(Rnd)In arr()

    展开全文
  • 用matlab如何删除数组中的重复元素例如删除A=[1,2,3,2,1,5,1,4]的重复元素女人是水做的,男人是泥做的,李俊基李宇春都是水泥做的用matlab如何删除数组中的重复元素的方法。 如下参考: 1.打开matlab,在命令行...
  • vb 数组删除元素

    2011-12-12 15:04:00
    Private Sub Command1_Click() Dim n(1 To 100) As Integer ...请输入数组元素个数", "输入框") Print "原始组为:" For i = 1 To num n(i) = i * 5 + 1 Pri...
  • VB 删除数组中的重复元素

    千次阅读 2013-02-14 19:43:27
    VB 删除数组中的重复元素,当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。并且返回结果数组。以下这个函数只支持一维数组。 Function Array_unique(Arr As Variant) As Variant Arr = QuickSort...
  • VB数组详解

    2019-09-27 20:33:05
    这些变量称为数组的元素,每个数组元素都有一个编号,这个编号叫做下标,我们可以通过下标来区别这些元素。数组元素的个数有时也称之为数组的长度。一般情况下,数组的元素类型必须相同,可以是前面讲过的各种基本...
  • 掌握了本篇知识之后,简历上就可以多加条个人技能了:熟悉 Java/Android 常见的集合源码,包括 List、Set、Map、Queue/Deque 等....下面就是正文了,欢迎讨论~:前言起初想看集合源码是因为,次偶然的机会,...
  • 运行效果: ...程序代码: Dim a() Private Sub Form_Load() ReDim Preserve a(1 To 5) For i = 1 To 5 a(i) = i Next i For i = 1 To 5 Text1.Text = Text1.Text & "a(" & i &am...
  • 《计算机VB简单编程题目实训十.ppt》由会员分享,可在线阅读,更多相关《计算机... 二、实训内容 1、通用过程 【实训要求】 随机产生两个数组并按由小到大的顺序排序, 然后将它们合并到第三个数组中(合并后的数组 ...
  • 数据结构实际上和算法关系很密切,很多算法的实现都配合数据结构来实现的,但是这不是这次内容,本次仅仅讲述各种数据结构的使用,至于实现,篇文章根本不够讲。 栈的使用 栈在vb.net中用stack类封装,里面还有...
  • VB-数组、集合、泛型

    千次阅读 2019-06-24 16:09:59
    最开始用内存中一个位置映射一个值,用变量来“使用”这个值。 进一步发展,用变量来引用一组值,这就是数组。由数组概念,发展出链表、堆、栈,进行排序、检索等。 但这并不能完全表达,由此发展出集合概念,它是...
  • 给定一个排序数组,在原数组中删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。 不要使用额外的数组空间,必须在不使用额外空间的条件下原地完成。 输入: [1,1,2] 输出: 2 解释: ...
  • 删除数组某项并重新排列

    千次阅读 2018-10-12 00:03:39
    删除数组某项并重新排列组  后端开发和前端开发,经常会有针对某个数组进行删除的业务操作。 例如删除图片组的某个图片,后对图片进行组进行重新排序,删除列表项, 对列表下标进行重新排序。  实现...
  • 6-9删除数组中的0元素

    2021-05-04 19:40:15
    注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。 输入时首先读入数组长度,再依次读入每元素。 将调用此函数后得到的数组和函数返回值输出。 样例 7...
  • <p><img alt="" height...将文本文档内容按行存入数组infostr2,如果第行是空行,就删除它 高亮部分提示infostr2(0)下标越界,请问是哪里出了问题?应该怎么改?</p>
  • VB讲课笔记08:数组

    千次阅读 2018-03-12 18:01:30
    VB讲课笔记08:数组学习目标:理解数组的概念、掌握数组的声明、引用方法,掌握数组的使用以及与数组有关的常用算法;...1、数组数组元素将一组排列有序的、个有限的变量作为一个整体,用一个...
  • VB “借鸡生蛋”子例程代码,防LOADER 设计端,这个问题是在VB软件防破解提到过,把源码分享上来供参考学习。  发现已经存在就删除它,然后就重新创建;目的是为了防止有人故意同名替换,定义一个数组储存数据。...
  • VB数组快速排序算法

    千次阅读 2013-02-14 19:43:23
    VB数组排序模块,使用的是快速排序法,支持 Variant、Double、Long、String……等多种数据类型数组排序。 Option Explicit Private Sub QuicksortInt(list() As Integer, ByVal min As Integer, ByVal max As ...
  • 代码如下:For Each r As DataGridViewRow In DataGridView1.... 您可能感兴趣的文章:VB.NET进度条的方法代码VB.NETCaching的使用方法vb.net 数组参与SQL语句的查询范例VB.net读取Word文档属性的方法asp.net 验证码
  • VBA 如何删除数组里的某个元素

    千次阅读 2019-12-20 15:17:50
    代码1: Sub charlsezhang1() arr1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) arr2 = [{1,3,5,7,9}] ...'想得到一个减去的数组 For Each i In arr1 For Each j In arr2 If i = j Then arr1(i) = "" ...
  • 彩票程序(用VB6.0源代码编写)彩票程序(用VB6.0源代码编写)抽取随机生成的并计算抽奖次数.vb彩票工具用vb制成的vb绘制工具用vb制成的vb绘制工具用vb制成的vb绘制工具用vb制成的vb绘制工具用vb制成的vb绘制工具用VB编....
  • 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组一个整数,判断数组中是否含有该整数。算法思路: 从二维数组的右...
  • 数组 array 1.1 数据定义 静态数组:长度不变的数组 动态数组:长度不定的数组,需要redim 数组 arr() 必须先声明后才可以使用! 1.2数组的index下标 (1)数组的index下标应该是从...
  • VB.net学习笔记(十九)数组、集合、泛型

    万次阅读 多人点赞 2013-09-15 17:15:53
     优点:定位查找一个值,插入、删除一个映像的效率最高。 3、SortedList 排序列表  hashtable是没有排序的,所以新增元素会比较快。而SortedList 存储的键值对,是按key进行排序了的, ...
  • 哈喽大家好,欢迎来到一起学VB课堂,今天我们将要学习列表框ListBox控件和组合框ComboBox控件,这两控件在VB中是非常重要的控件,当然其难度也比前面学习的控件难度有所增加,这两控件我会单独分在两课程,小...
  • java删除数组中重复元素

    千次阅读 2017-04-19 23:07:05
    从第一个遍历,查看前面是否有重复的,有就删除  0  0 dy110936 10-08 17:30 等级 10楼 引用 6 楼 soli11722984 的回复: 都這麽複...
  • 定义一个动态数组,长度为变量n,用随机数给数组各元素赋值,然后对数组各单元排序,定义swap函数交换数据单元,要求参数使注释怎么都是乱码呢?你复制到vc里之后把注释删除.没有说明语言种类,就用C编了#include#include#...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,469
精华内容 4,587
关键字:

vb中删除数组一个数的代码