VB课后实验6答案_第1页
VB课后实验6答案_第2页
VB课后实验6答案_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验 6 数组61Private Sub Commandl_Click() Dim i As Integer, j As Integer Dim a(10) As Integer, t As Integer Print 交换前数据: ”For i = 1 To 10a(i) ' 生成 20-80 之间的随机数Print;'注意这里用分号,表示在一行上紧密输岀各数组元素的值,' 如不用分号和逗号,则分行输出各数组元素的值。Next iPrint' 输岀空行,表示后面的输岀换到新的一行。For i = 1 To 10 2' 这里必须是 102, 表示交换 5

2、 次,即可实现两两数据交换 ( 第个和最后一个的交换,第二个和第九个的交换,以此类推)' 以下实现数据交换,必须通过第三个变量实现两两数据交换t = a(i)a(i) = a(10 - i + 1)a(10 - i + 1) = tNext iPrint 交换后数据:' 必须单独做循环输岀数据,不能放在上面的循环里输岀,因为上面循环只有 5 次,只能输岀 5 个元素。For i = 1 To 10Print ;Next iEnd Sub6-2Private Sub Command1_C1ick()Dim a(10) As Integer, i As Integer, aver

3、As IntegerDim max As Integer, imax As IntegerDim min As Integer, imin As Integer, sum As IntegerPrint ” 输入评委的评分 "输入数组元素For i = 1 To 10 a(i) if a(i)<5 or a(i)>10 then ' 出错信息'i 控制变量作何处理? endifNext i' 输出数组元素For i=l to 10Print . ;Next iPrint ,换行' 开始对数组元素进行处理 一 _imax = 1: imin

4、= 1: sum = a(l) : max = a(l), imax 表示最大元素的下 标值,imin表示最小元素的下标值,max变量表示最大值,sum表示元素和变量。min = a(l) 'min 变量表示最小值,初值一定要在循环体外赋值,不然 min=0, 输入的数组元素值如果都 >0, 那 min 永远都为 0.For i = 2 To 10 If max < a(i) Then . '找最大值及下标If min > a(i) Then . '找最小值及下标sum .' 求数组元素和Next i' 输出结果aver = (sum

5、- a(imax) - a(imin) / 8 '求平均值 aver = (sum - max - min) /8 Print 选手的得分为:Print averEnd Sub63' 通用处定义窗体级变量Option ExplicitOption Base 1Dim a(5, 5) As Integer ' 定义窗体级变量,以便在下面的 4 个命令按钮的 click 事件中使用该数组Private Sub Commandl_Click()Dim i As Integer, j As Integer '不可以再次定义 a (5, 5), 否 则 a (5, 5)

6、只能 在 command 1中有用,在其他命令按钮事件中不起作用。' 二维数组元素的赋值用二重循环控制For i = 1 To 5For j = 1 To 5a(i, j) = Val(InputBoxC 输入 a(" & i &, & j & ) 的值”)' 此写法在输 入对话框中可显示数组元素的下标值。Next jNext i End SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer' 用二重循环控制二维数组元素的输出Picturel. Print M

7、id (Str (a(i, j) & " ", 1, 3) ; Spc (4);' 列 元素列对齐 ' 用 Picturel. Print 输出空行为了在输出时每End SubPrivate Sub Command3_Click() Dim imax As Integer, max As Integer, 素的下标, imin 表示最小值元 素的下标 , Dim suml%, sum2%, sum3% Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5If 条件 Then max

8、:End IfIf 条件 Then imax =If 条件 Thenjmax As Integer 'imax 表示最大值元 max 表示最大元素jmaxIf条件Then Next j SUmt二.'i=j时,主对角线上的元素 Label1. Caption =Label2.Caption = sum2 = . 'i j 时,上三角元素 Label3.Caption =Label4.Caption = End Sub“最大元素为 a(" & imax & ", " & jmax & ")="

9、; & max对角线元素之和为 & sumlPrivate Sub Command4_Click()Picturel. Cis ,清屏Labell.Caption二""Label2.Caption二""Label3.Caption ="" Label4.Caption =""End Sub6-4Option Base 1Dim a() As In tegerPrivate Sub Form_Click()'定义动态数组,因为数组元素个数不确定Dim i As In teger, j As I

10、n teger, p As Boolea nDim n As In tegerFor i = 2 To 100 p = True'注意True的与法,不能与出TureFor j = 2 To CIn t(Sqr(i) 'j不能从1开始,思考一下为什么?If i Mod j = 0 Thenp = FalseExit For'i能被j整出,说明i已不是素数了,没必要继 续执行循环,跳出循环。End If Next jIf p The n'可写成if p=True Then,当P为True时说明i不被j 整除,是糸数。n='用n变量累计素数的个数ReDim

11、Preserve .'重新声明动态数组a ()的大小,'将素数i赋给数组元素a (n) o'输出即素数。End IfNext i'也可单独做循环输出数族元素a (n),即素数For i = 1 To nPrint Mid (Str (a (i) & " ", 1,3) : Spc(4):,输出时列对齐If i Mod 6 = 0 Then Print,每行输出6个元素。考虑在图像框中如何换行?Next iEnd Sub6-5Dim a(5, 5) As Integer, b(l To 25) As Integer ,定义窗体级变量,便

12、于各个 命令按钮使用该数组,注意在各命令按钮事件中不可再定义这两个数组a 和 b。Private Sub Commandl_Click()For i = 1 To 5For j = 1 To 5'合数组a各元素赋初值,同时输出各元素值Next jPicturel. Print ,换行Next iEnd SubPrivate Sub Command2_Click ()' 将二维数组转换成一扉数组For i = 1 To 5For j = 1 To 5b(i - 1) * 5 + j) = a(i, j)Next jNext i' 用冒泡法或选择法对数组元素进行排序'

13、; 输出排序后的结果For i = 1 To 25Picture2. Print . . ,输出一维数族元素 b (i)If i Mod 5 = 0 Then.<Picture2 换行End IfNext iEnd SubPrivate Sub Command3_Click()Picturel. CisPicture2. CisEnd Sub6-6Private Sub Commandl_Click()' 给数组 a 各元素赋初值,同时输出各元素值 For i = 1 To 10 a(i) = Int(50 - 20 + 1) * Rnd) + 20 Picturel. Prin

14、t a(i);Next iEnd SubPrivate Sub Command2_Click()' 用冒泡法排序Private Sub Command3_Click()' 二分查找6-7Option Explicit定义窗体级变量,其中 s 为字符数组Dim s() As String, n As IntegerPrivate Sub Commandl_Click()Dim i As Integer, smax As String, imax As Integer, j As IntegerDim si As String' 选择排序,注意:对字符数族元素可直接排序,不

15、必转换成整型数据For i = 1 To n - 1 imax = iFor j = i + 1 To nIf s(j) > s (imax) Then imax二 jNext j si = s(imax) s (imax) = s(i) s (i) = siNext iFor i = 1 To nPicturel. Print s (i)Next iEnd Sub' 如用冒泡法排序,如何编程?练习一下。Private Sub Command2_Click()Picturel. CisEnd SubPrivate Sub Textl_KeyPress(KeyAscii As In

16、teger) If KeyAscii = 13 Thenn =鱼值加1,即数组元素个数增加1个ReDim Preserve s(n)' 动态数组使用前必须声明s(n)二'用s数组存放字符串Textl.Text ="' 清空文本框,便于输入下一个字符串. .'Textl 得到焦点End IfEnd Sub6-8Private Sub Form_Click()Dim n As Integer, a (5, 5) As Integer Dim i%, j%, count As Integer, kl%, k2% n = Vai(Textl. Text) i = 1 j = (n + 1) 2For count = 1 To n * n a(i, j) = count If c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论