



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用VB写出螺旋数字打印的代码: 代码实现在窗体上打印如下列文字的效果: 01 02 03 04 05 06 07 08 09 10 36 37 38 39 40 41 42 43 44 11 35 64 65 66 67 68 69 70 45 12 34 63 84 85 86 87 88 71 46 13 33 62 83 96 97 98 89 72 47 14 32 61 82 95 00 99 90 73 48 15 31 60 81 94 93 92 91 74 49 16 30 59 80 79 78 77 76 75 50 17 29 58 57 56 55 54 53 52 51 18 28 27 26 25 24 23 22 21 20 19 Private Function Min(ByVal n1 As Double, ByVal n2 As Double) As Double Min = IIf(n1 n2, n1, n2) End Function Private Sub Program1() 根据行、列计算数字, 适合 Print 语句直接输出 Dim m As Integer, n As Integer, s As Integer, Level As Integer Dim D1 As Integer, D2 As Integer, D3 As Integer, D4 As Integer Dim i As Integer, j As Integer m = Val(InputBox(输入行数:, , 10): n = Val(InputBox(输入列数:, , 10): s = m + n For i = 1 To m For j = 1 To n Level = Min(i, Min(m - i + 1, Min(j, n - j + 1) D1 = 1 + 2 * (2 + s - 2 * Level) * (Level - 1) D2 = D1 + n - 2 * Level + 1 D3 = D2 + m - 2 * Level + 1 D4 = D3 + n - 2 * Level + 1 If i = Level Then Print Format$(D1 + j - Level, 000 ); ElseIf j = Level Then Print Format$(D4 + m - Level + 1 - i, 000 ); ElseIf i = m - Level + 1 Then Print Format$(D3 + n - Level + 1 - j, 000 ); Else Print Format$(D2 + i - Level, 000 ); End If Next j Print Next i End Sub Private Sub Program2() 根据数字计算行、列, 适合填充数组 Dim m As Integer, n As Integer, s As Integer, Level As Integer Dim D1 As Integer, D2 As Integer, D3 As Integer, D4 As Integer Dim i As Integer, j As Integer, k As Integer, Num(1 To 100, 1 To 100) As Integer m = Val(InputBox(输入行数:, , 10): n = Val(InputBox(输入列数:, , 10): s = m + n For k = 1 To m * n Level = Int(s - Sqr(4 - 4 * k + s * s) / 4) + 1 D1 = 1 + 2 * (2 + s - 2 * Level) * (Level - 1) D2 = D1 + n - 2 * Level + 1 D3 = D2 + m - 2 * Level + 1 D4 = D3 + n - 2 * Level + 1 If k - D1 = D2 - D1 Then i = Level: j = Level + k - D1 ElseIf k - D1 = D3 - D1 Then i = Level + k - D2: j = n - Level + 1 ElseIf k - D1 = D4 - D1 Then i = m - Level + 1: j = n - Level + 1 - k + D3 Else i = m - Level + 1 - k + D4: j = Level End If Num(i, j) = k Next k For i = 1 To m For j = 1 To n: Print Format$(Num(i, j), 000 );: Next j Print Next i End SubOption Explicit Private Sub Form_Click() Dim X&, Y&, I&, lInt&, Xs&, Ys, C& Cls Me.AutoRedraw = True 持久性位图输出 X = Val(InputBox(请输入横排个数!, 请输入数字, 10) 得到横向个数 Y = Val(InputBox(请输入纵排个数!, 请输入数字, 10) 得到纵向个数 lInt = X * Y 得到总个数 X = X - 1 因为从1开始的所以要减1个 Y = Y - 1 For I = 1 To lInt 循环个数 If Xs = X - C And Ys = C Then 横向打印 Xs = Xs + 1 ElseIf Ys = X - C Then 纵向打印 Ys = Ys + 1 ElseIf Xs C + 1 Then 反向横向打印 Xs = Xs - 1 ElseIf Ys C + 1 Then 反向纵向打印 Ys = Ys - 1 Else C = C + 1 每循环完一圈就加一个,成为里面一个圈开始 Xs = Xs + 1 每循环完一圈第一个开始的坐标加一个 End If CurrentX = Xs * 400 设置X、Y坐标 CurrentY = Ys * 400 Print I 打印数字 Print Format(I, 000) 也可以格式化再打印 Next I End SubOption ExplicitPrivate Sub Form_Load()AutoRedraw = True: ForeColor = vbWhite: Width = 6975: Height = 4185: BorderStyle = 3: Caption = LuoXuanDim i As Long, j As Long, way As Long, mC As Long, mI As Long, k As Long, p As Long, q As Longi = 9: j = 10: mC = 1: k = 171Do mI = mI + 1: k = k - 1: DoEvents p = i * 400 - 360: q = j * 200 - 160 Line (p, q)-Step(360, 160), vbBlack, BF CurrentX = p + 40: CurrentY = q: Print CStr(k) If k = 0 Then Exit Do Select Case way Case 0: j = j - 1 Case 1: i = i - 1 Case 2: j = j + 1 Case 3: i = i + 1 End Select If mI = mC Then mI = 0: mC = mC + 1: way = IIf(way = 3, 0, way + 1)LoopEnd SubOption Explicit Private Sub Form_Click() Const PI As Single = 3.14159265 Dim R() As Long, M&, N& Dim x&, y&, i&, a# 初始化 M = Val(InputBox(请输入横排个数!, 请输入数字, 10) 得到横向个数 N = Val(InputBox(请输入纵排个数!, 请输入数字, 10) 得到纵向个数 ReDim R(M + 1, N + 1) As Long For x = 0 To M + 1 R(x, 0) = -1 R(x, N + 1) = -1 Next For y = 0 To N + 1 R(0, y) = -1 R(M + 1, y) = -1 Next 小虫初始状态 x = 1: y = 1: a = 0: R(x, y) = 1 小虫爬行 For i = 2 To M * N If R(x + Round(Sin(a), y + Round(Cos(a) = 0 Then x = x + Round(Sin(a) y = y + Round(Cos(a) R(x, y) = i Else a = a + PI / 2 i = i - 1 End If Next 输出结果 For x = 1 To M For y = 1 To N Print Format(R(x, y), ); Next Print Next End SubPrivate Sub Program1() 根据行、列计算数字, 适合 Print 语句直接输出 Dim m As Integer, n As Integer, s As Integer, Level As Integer Dim D1 As Integer, D2 As Integer, D3 As Integer, D4 As Integer Dim i As Integer, j As Integer m = Val(InputBox(输入行数:, , 10): n = Val(InputBox(输入列数:, , 10): s = m + n For i = 1 To m For j = 1 To n Level = Min(i, Min(m - i + 1, Min(j, n - j + 1) D1 = 1 + 2 * (2 + s - 2 * Level) * (Level - 1) D2 = D1 + n - 2 * Level + 1 D3 = D2 + m - 2 * Level + 1 D4 = D3 + n - 2 * Level + 1 If i = Level Then Print Format$(D1 +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 缩鼻翼手术术后护理指南
- 物流质量工作总结
- 公司燃气安全培训内容记录课件
- 公司消防安全培训致辞课件
- 护理学核心认知体系
- 污染溯源课程标准解读
- 郎酒厂工作汇报
- 公司汽车处理流程课件
- 2025雇佣家庭保姆照顾小孩合同
- 运维专员转正工作总结
- 护患冲突与沟通管理要点
- 2025年公文写作试题及答案解析
- 2025广东云浮市检察机关招聘劳动合同制司法辅助人员17人考试参考题库及答案解析
- 2025江西南昌市西湖城市建设投资发展集团有限公司及下属子公司招聘40人备考考试题库附答案解析
- 2025年工程物探试卷及答案
- 2025年军休服务管理机构招聘面试中常见陷阱问题解析与应对方法
- 《丹青意蕴》第三课《国色新尚》课件 2025-2026学年+人教版(2024)初中美术八年级上册
- 2025年烟草专卖局公开遴选面试高分策略及模拟题答案
- 乳制品行业智能化奶源管理与追溯方案
- 医务人员职业道德准则(2025年版)全文培训课件
- 恒瑞医药2023ESG社会责任报告:关注员工成长共建美好家园
评论
0/150
提交评论