〖求助〗VB代码求助~~~~
就快考试了.还有两道题目的代码实在不会写...一、编写事件过程,生成由n个数据组成的数组,找出最大元素,打印其序号
二、已知A.txt文件,存放若干个整数,其第一个数据表示需要处理的后面数据的总数。
要求:读取文件A.txt,将第一个数据之后的数据进行排序,排序后结果存放至B.txt
各位懂VB的高人帮我解决一下啦。。。这两个实在难度啊~~~~ 稍等,马上给你写。
题一:(最大数的序号,我没理解是指以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 楼主记得送花 太感谢了呀...坚决送花...嘿嘿
不过还有一个问题,第二个应该怎么弄才可以看见它的效果呀~~~~
我比较笨....呵呵
恩...还有那个第二题的第一行代码只要写Private Sub Sort()就可以了吗?
怎么那么短啊~~~ 引用第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也有了。 恩...问题已经解决啦.表示感谢,再送花花一朵...谢谢啦~~~~
页:
[1]