找回密码

碧海潮声大学生网

查看: 781|回复: 5
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-29 19:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就快考试了.还有两道题目的代码实在不会写...
一、编写事件过程,生成由n个数据组成的数组,找出最大元素,打印其序号
二、已知A.txt文件,存放若干个整数,其第一个数据表示需要处理的后面数据的总数。
   要求:读取文件A.txt,将第一个数据之后的数据进行排序,排序后结果存放至B.txt


各位懂VB的高人帮我解决一下啦。。。这两个实在难度啊~~~~ [s:34]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
2#
发表于 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
回复 支持 反对

使用道具 举报

3#
发表于 2007-6-30 02:40 | 只看该作者
楼主记得送花
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2007-6-30 09:06 | 只看该作者
太感谢了呀...坚决送花...嘿嘿
不过还有一个问题,第二个应该怎么弄才可以看见它的效果呀~~~~
我比较笨....呵呵

恩...还有那个第二题的第一行代码只要写Private Sub Sort()就可以了吗?
怎么那么短啊~~~ [s:41]
回复 支持 反对

使用道具 举报

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

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

Q1: 要看效果可以这样,在C盘新建一个文本文件,名为a.txt,内容:
10  86  22  61  98  87  67  28  45  46  43
表示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也有了。
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2007-7-1 09:16 | 只看该作者
恩...问题已经解决啦.表示感谢,再送花花一朵...谢谢啦~~~~ [s:40]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋| 碧海潮声大学生网  

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 浙ICP备11026473号 )

快速回复 返回顶部 返回列表