咸蛋超人 发表于 2007-6-29 19:22

〖求助〗VB代码求助~~~~

就快考试了.还有两道题目的代码实在不会写...
一、编写事件过程,生成由n个数据组成的数组,找出最大元素,打印其序号
二、已知A.txt文件,存放若干个整数,其第一个数据表示需要处理的后面数据的总数。
   要求:读取文件A.txt,将第一个数据之后的数据进行排序,排序后结果存放至B.txt


各位懂VB的高人帮我解决一下啦。。。这两个实在难度啊~~~~

我是誰 发表于 2007-6-30 01:23

稍等,马上给你写。

题一:(最大数的序号,我没理解是指以0开始的数组下标序号,还是以1开始的物理序号,代码且按1开始的序号)
Private Sub Command1_Click()
   Dim n As Integer, i As Integer
   Dim myArray() As Integer
   Dim max As Integer   '最大数
   Dim maxIndex As Integer   '最大数序号
   
   n = 10'数据个数
   
   ReDim myArray(n)
   
   '生成数组的循环
   For i = 0 To n - 1
      Randomize
      myArray(i) = Int(Rnd * 100 + 1) '使用随机数填充
   Next
   
   '找最大元素的循环
   maxIndex = 1
   max = myArray(0)
   For i = 1 To n - 1
      If myArray(i) > max Then
      maxIndex = i + 1
      max = myArray(i)
      End If
   Next
   
   '打印最大数的序号
   Print maxIndex
   
End Sub

题二:(因为没指定顺序,我是按增序写的)

Private Sub Sort()
   Dim fn As Long
   Dim count As Integer
   Dim myArray() As Integer
   Dim i As Integer, j As Integer, T As Integer
   
   fn = FreeFile() '获得一个空闲的文件号
   
   '打开a.txt
   Open "C:\a.txt" For Input As #fn
   
   '获得数据个数
   Input #fn, count
   
   ReDim myArray(count - 1)
   
   '读取数据
   For i = 0 To count - 1
      Input #fn, myArray(i)
      Debug.Print myArray(i);
   Next
   Debug.Print
   
   Close #fn
   
   '采用易于理解的冒泡排序法
   For i = count - 1 To 0 Step -1
      For j = 0 To i - 1
      If myArray(j) > myArray(j + 1) Then
         T = myArray(j)
         myArray(j) = myArray(j + 1)
         myArray(j + 1) = T
      End If
      Next j
   Next i
   
   '写入b.txt
   Open "C:\b.txt" For Output As #fn
   For i = 0 To count - 1
      Print #fn, myArray(i)
   Next
   Close #fn
   
End Sub

不夜郭富城 发表于 2007-6-30 02:40

楼主记得送花

咸蛋超人 发表于 2007-6-30 09:06

太感谢了呀...坚决送花...嘿嘿
不过还有一个问题,第二个应该怎么弄才可以看见它的效果呀~~~~
我比较笨....呵呵

恩...还有那个第二题的第一行代码只要写Private Sub Sort()就可以了吗?
怎么那么短啊~~~

我是誰 发表于 2007-6-30 14:42

引用第3楼咸蛋超人于2007-06-30 09:06发表的“”:
太感谢了呀...坚决送花...嘿嘿
不过还有一个问题,第二个应该怎么弄才可以看见它的效果呀~~~~
我比较笨....呵呵

恩...还有那个第二题的第一行代码只要写Private Sub Sort()就可以了吗?
.......

Q1: 要看效果可以这样,在C盘新建一个文本文件,名为a.txt,内容:
1086226198876728454643
表示10个数,后面是要排序的数。再把代码里的a.txt和b.txt加上路径变成C:\a.txt和C:\b.txt,运行代码之后,会在C盘生成b.txt,内容就是排好序的数据。怎么执行,看Q2

Q2: Private Sub Sort()意思是声明一个名为Sort的过程。要执行这个过程,就要调用它。你可以双击窗体:
Private Sub Form_Load()
   Sort'这就是调用
End Sub
这样,一点运行,那段排序过程就执行了,b.txt也有了。

咸蛋超人 发表于 2007-7-1 09:16

恩...问题已经解决啦.表示感谢,再送花花一朵...谢谢啦~~~~
页: [1]
查看完整版本: 〖求助〗VB代码求助~~~~