易语言采用循环算法实现N阶螺旋方阵

程序集变量

.版本 2
 
.程序集 启动窗口程序集
.程序集变量 数字数组, 整数型, , "10,10", 存放方阵中的所有数字
.程序集变量 循环变量, 整数型
.程序集变量 下起始, 整数型, , , 向下填充的起始位置
.程序集变量 右起始, 整数型, , , 向右填充的起始位置
.程序集变量 上起始, 整数型, , , 向上填充的起始位置
.程序集变量 左起始, 整数型, , , 向左填充的起始位置
.程序集变量 填充数字, 整数型, , , 被填充的数字
.程序集变量 最大值, 整数型, , , 方阵中的最大数字
.程序集变量 阶数, 整数型, , , 方阵的阶数

向下填充

.版本 2
 
.子程序 向下填充, , , 向下填充方阵中的数字
 
' 向下填充
.变量循环首 (1, 阶数, 1, 循环变量)
    ' 向方阵中填充数字
    .如果真 (数字数组 [循环变量] [下起始]0)
        数字数组 [循环变量] [下起始] = 填充数字
        ' 下一个要填充的数字
        填充数字 = 填充数字 + 1
    .如果真结束
 
.变量循环尾 ()
' 向下填充的下一个起始位置
下起始 = 下起始 + 1

向右填充

.版本 2
 
.子程序 向右填充, , , 向右填充方阵中的数字
 
' 向右填充
.变量循环首 (1, 阶数, 1, 循环变量)
    .如果真 (数字数组 [右起始] [循环变量] = 0)
        ' 向方阵中填充数字
        数字数组 [右起始] [循环变量] = 填充数字
        ' 下一个要填充的数字
        填充数字 = 填充数字 + 1
    .如果真结束
 
.变量循环尾 ()
' 向右填充的下一个起始位置
右起始 = 右起始 - 1

向上填充

.版本 2
 
.子程序 向上填充, , , 向上填充方阵中的数字
 
' 向上填充
.变量循环首 (阶数, 1, -1, 循环变量)
    .如果真 (数字数组 [循环变量] [上起始] = 0)
        ' 向方阵中填充数字
        数字数组 [循环变量] [上起始] = 填充数字
        ' 下一个要填充的数字
        填充数字 = 填充数字 + 1
    .如果真结束
 
.变量循环尾 ()
' 向上填充的下一个起始位置
上起始 = 上起始 - 1

向左填充

.版本 2
 
.子程序 向左填充, , , 向左填充方阵中的数字
 
' 向左填充
.变量循环首 (阶数, 1, -1, 循环变量)
    .如果真 (数字数组 [左起始] [循环变量] = 0)
        ' 向方阵中填充数字
        数字数组 [左起始] [循环变量] = 填充数字
        ' 下一个要填充的数字
        填充数字 = 填充数字 + 1
    .如果真结束
 
.变量循环尾 ()
' 向左填充的下一个起始位置
左起始 = 左起始 + 1

开始计算

.版本 2
.支持库 iext
 
.子程序 _计算图形按钮_被单击
 
超级列表框1.全部删除 ()
' 接收方阵的阶数
阶数 = 到数值 (编辑框1.内容)
' 判断阶数的范围
.如果真 (阶数 < 1 或 阶数 > 10)
    信息框 (“输入的值只能在110之间!”, 0, )
    返回 ()
.如果真结束
' 初始化数字数组,初始为0
.变量循环首 (1, 阶数, 1, 下起始)
    .变量循环首 (1, 阶数, 1, 右起始)
        数字数组 [下起始] [右起始] = 0
    .变量循环尾 ()
.变量循环尾 ()
' 设定要填充的第一个数字为1
填充数字 = 1
' 设定四个方向填充时的初始位置值 
下起始 = 1
左起始 = 1
右起始 = 阶数
上起始 = 阶数
' 方阵中的最大数字
最大值 = 阶数 × 阶数
' 开始填充
.判断循环首 (填充数字 ≤ 最大值)
    向下填充 ()
    向右填充 ()
    向上填充 ()
    向左填充 ()
.判断循环尾 ()
' 显示结果方阵
.变量循环首 (1, 阶数, 1, 下起始)
    超级列表框1.插入表项 (下起始, , , , , )
    .变量循环首 (1, 阶数, 1, 右起始)
        超级列表框1.置标题 (下起始 - 1, 右起始 - 1, 到文本 (数字数组 [下起始] [右起始]))
    .变量循环尾 ()
.变量循环尾 ()

资源下载

点击下载源码和511遇见视频链接地址


发布日期:

所属分类: 易语言 标签: