LOGO编程三角形数字阵列
前面说过,在小学生学习的编程语言中,用数字组成“阵列”是一个大类的题型,说少也有数十种编程类型,是很能锻炼编程思维能力的。用LOGO语言、C++语言、PYTHON语言都能编制“数字阵列”程序。相比较起来,编制三角形的数字阵列比较容易。把“三角形”的原理搞清楚了,理解“正方形”或其他类型的阵列就会比较明白了。以下是比较典型的三角形数字阵列的源程序及输出图形,全部都是输出在文本窗口的。同样的图形也可以输出在作图窗口,但编程较为复杂,请大家自己琢磨编程。例一~例五适合输出N值不大于13的数字阵列。例六~例七可以输出N值更高的数字阵列。
例一.N阶正三角形数字阵列
to
Asjx1 :n
make "s 1
for[i :n 1 -1][
for[j :i 1
-1][
type :s
ifelse :s<10[(type char 32 char
32)]
[type char 32]
make "s :s+1
]pr[]
]
end
输出实例:
例二.N阶倒三角形数字阵列
to
Asjx2 :n
make "s 1
for[i 1 :n][
for[j :i 1
-1][
type :s
ifelse :s<10[(type char 32 char
32)]
[type char 32]
make "s :s+1
]pr[]
]
end
输出实例:
例三.N阶右对齐正三角形数字阵列
to
Asjx3 :n
make "s 1
make "h 1
for[i :n 1 -1][
for[hh 1
:h][
(type char 32 char 32 char 32)]
make "h
:h+1
for[j :i 1
-1][
type :s
ifelse :s<10[(type char 32 char 32)]
[type char 32]
make "s :s+1
]pr[]
]
End
输出实例:
例四.N阶倒计数正三角形数字阵列
to
Asjx5 :n
make "s
(1+:n)*:n/2
for[i :n 1 -1][
for[j :i 1
-1][
type :s
ifelse :s<10[(type char 32 char 32)]
[type char 32]
make "s :s-1
]pr[]
]
End
输出实例:
例五.N阶右转倒计数正三角形数字阵列
to
Asjx6 :n
make "h 1
make "qm 0
;在所有数字前面的数字个数为0个
for[i 1 :n ][
make "qm
:qm+:i-1 ;计算当前行前面数字的个数
make "s
(1+:n)*:n/2-:qm
;计算当前行左边首个数字的值
for[hh 1
:h][
;在当前行的左边预留空格
(type char 32 char 32 char 32)]
make "h
:h+1
make "cha
:i+1
;计算当前行头两个数字的差
for[j :n-:i+1 1
-1][
type :s
ifelse :s<10[(type char 32 char 32)]
[type char 32]
make "s :s-:cha
make "cha :cha+1
]pr[]
]
end
输出实例:
例六.“逢5数”N阶正三角形数字阵列
to
Asjx8 :n
make "w
count(5*(1+:n)*:n/2)
make "s 1
for[i :n 1 -1][
for[j :i 1
-1][
type :s*5
make "ke :w+1-count(:s*5)
for[k 1 :ke][type char 32]
make "s :s+1
]pr[]
]
end
输出实例:
例七.逆序平方数N阶正三角形数字阵列
to
Asjx9 :n
make "ss
(1+:n)*:n/2
make "zd :ss*:ss
make "w count
:zd
make "s :ss
for[i :n 1 -1][
for[j :i 1
-1][
type :s*:s
make "ke :w+1-count(:s*:s)
for[k 1 :ke][type char 32]
make "s
:s-1
]pr[]
]
end
输出实例:
还能想出很多其他构成“三角形数字阵列”的模式来
加载中,请稍候......