当前课程知识点:数据库技术与程序设计 > 第八章 结构化程序设计 > 8.7 数组 > 【思考练习】利用二维数组,输出杨辉三角
一个9行的杨辉三角的运行结果如下图所示。
实验目的:掌握二维数组中下标之间的对应关系,掌握二维数组赋值和输出的方法。
杨辉三角对齐格式
分析:如图所示,用数组表示杨辉三角,设置上三角中的每个元素均为0,第一列及对角线的元素均为1,其余每一个元素值等于它上面一行的同一列的元素值和前一列的元素值的和,即a(i, j) = a(i - 1, j) + a(i - 1, j - 1)。
杨辉三角未对齐格式
程序:
Public Sub 杨辉三角()
Dim i, j, n As Integer
Dim a(9, 9) As Integer
For i = 1 To 9
For j = 1 To i
a(i, j) = a(i - 1, j) + a(i - 1, j - 1)
If i = j Then a(i, j) = 1
Debug.Print a(i, j);
Next
Debug.Print
Next
End Sub
分析:上面程序中将数组的赋值和输出放在一段循环语句中,一般我们使用数组的时候,不采用这种方式。,比较好的方式是将赋值和输出放在不同的程序段,此程序没有对输出形式进行限定,数组元素不能对齐。下面列出改进程序。
Public Sub 杨辉三角改进()
Dim i, j, n As Integer
Dim a(9, 9) As Integer
For i = 1 To 9
For j = 1 To i
a(i, j) = a(i - 1, j) + a(i - 1, j - 1)
If i = j Then a(i, j) = 1
Next
Next
For i = 1 To 9
For j = 1 To i
Debug.Print a(i, j) & Space(5 - Len(Str(a(i, j))));
Next
Debug.Print
Next
End Sub
注意:表达式a(i, j) & Space(5 - Len(Str(a(i, j))))保证每一个式子都占同样长度。Str(a(i, j)将数组元素值转换为字符型,Len(Str(a(i, j))取字符串长度,如果a(i, j)长度为2,则Space(5 - Len(Str(a(i, j))))输出3个空格,如果如果a(i, j)长度为1,则Space(5 - Len(Str(a(i, j))))输出4个空格。
-知识点拼图+问题求解流程+软件工程开发教学流程——写给翻转课堂开课教师
-技术分享贴续篇:怎样用窗体显示一条记录存储的多张OLE图像文件?
-技术分享贴:复杂的SQL自体连接和嵌套查询,涨粉最多的用户ID和涨粉数
-往届竞赛获奖作品展示
-1.1 数据与数据管理
--【拓展阅读】到底什么是IT(Information Technology)
-1.2 DBS=DB+DBMS
-1.3 不以六律不能正五音——数据模型
-- 课件1.3.1 数据模型
-1.4 数据库系统结构
-本章小结
--第一章小结
-第一章作业
-2.1 数据库设计流程
-2.2 概念结构设计
-2.3 逻辑结构设计
-本章小结
--第二章小结
-第二章作业
-3.1 数据库管理系统
-3.2 创建数据库
-3.3 创建数据表
-3.4 维护数据表
-本章小结
--第三章小结
-第三章作业
-4.1 基本数据类型
-4.2 常量
--4.2.1 常量
-4.3 变量和数组
--4.3.1 变量
-4.4 表达式和函数
-本章小结
--第四章小结
-第四章作业
-【讨论帖:悬赏!谁能解决Round()函数Banker’s rounding算法的bug?】
-5.1 数据检索方法
-5.2 数据库查询文件
-5.3 选择查询
-5.4 参数查询
-5.5 操作查询
-本章小结
--第五章小结
-第5章作业
-6.1 SQL概述
-6.2 SQL数据定义语言
-6.3 SQL数据查询语言
-6.4 SQL数据操作语言
-本章小结
--第六章小结
-第6章作业
-【讨论帖:你是否听说过“自然语言检索”,你在什么地方见到过,或者使用过“自然语言检索”吗?】
-7.1 窗体设计
-7.2 报表设计
-本章小结
--第七章小结
-第七章作业
-【讨论帖:你能总结一下窗体和报表的共性和区别吗?在你的工作、学习或生活中,你都见到过哪些窗体和报表的实际应用?】
-8.1 VBA编程基础
-8.2 顺序结构及常用命令
-8.3 分支结构
--8.3.2 多路分支选择语句Select Case 和分支嵌套
--课件8.3.2 多路分支选择语句Select Case 和分支嵌套
-8.4 循环结构
-8.5 函数与过程
-8.6 VBA程序调试
-8.7 数组
-本章小结
--第八章小结
-第八章作业
-【讨论帖:我们学习了VBA面向过程的程序设计,你能结合实践,谈谈自己对算法和程序的理解吗?】
-9.1 面向对象的基本概念
-9.2 控件对象的属性和方法
-9.3 控件对象的事件
-9.4 窗体的面向对象程序设计
-【拓展阅读】【综合案例】Word中的查找与替换是如何实现的?
-本章小结
--第九章小结
-第九章作业
-【讨论贴:本章用小黄鸭类比了面向对象的各种概念,你能也用类比的方式谈谈你对面向对象的理解吗?】
-10.1 宏的基本概念
-10.2 宏的创建与调用
-10.3 数据宏
-10.4 宏的调试和转换
-【拓展阅读】【综合案例】一句代码不敲,就开发了一个航班查询系统?
-本章小结
--第十章小结
-第十章作业
-【讨论帖:王者、LOL、魔兽、DOTA……,说说你在虚拟世界里用宏(超级宏)所向披靡的故事吧!】
-11.1 数据库应用系统结构
-11.2 教学教务管理系统功能需求
-11.3 教学教务管理系统底层数据结构
-11.4 登录模块实现
-11.5 学生管理模块实现
-11.6 教学管理模块实现
-11.7 系统测试与发布
-本章小结
--第十一章小结
-课程综合设计
-综合练习题库