主题:打印字母三角。
? 5
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
我用定义函数做了一个
COPY$的用处是反向中取,比如COPY$("258",2,2),就是"52",不是"58"。
RVR$是反向,RVR$("123456789")="987654321"
以下用两种函数来做,用RVR$的不用COPY$,用COPY$的不用RVR$,输出最后两个三角。
DECLARE FUNCTION COPY$ (a$, i!, j!)
DECLARE FUNCTION RVR$ (a$)
CLS
INPUT n
a$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a$ = a$ + a$
b$ = RVR$(a$)
PRINT TAB(n); "A"
FOR i = 2 TO n
PRINT TAB(n + 1 - i); LEFT$(a$, i); RIGHT$(b$, i - 1)
NEXT i
PRINT TAB(n); "A"
FOR i = 2 TO n
PRINT TAB(n + 1 - i); LEFT$(a$, i); COPY$(a$, i - 1, i);
NEXT i
END
FUNCTION COPY$ (a$, i!, j!)
IF i > LEN(a$) OR i < 1 THEN PRINT "ERROR!"
x$ = ""
c = i - j + 1
FOR k = i TO c STEP -1
IF k < 1 THEN EXIT FOR
x$ = x$ + MID$(a$, k, 1)
NEXT k
COPY$ = x$
END FUNCTION
FUNCTION RVR$ (a$)
x$ = ""
FOR i = 1 TO LEN(a$)
x$ = x$ + MID$(a$, LEN(a$) + 1 - i, 1)
NEXT i
RVR$ = x$
END FUNCTION
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
我用定义函数做了一个
COPY$的用处是反向中取,比如COPY$("258",2,2),就是"52",不是"58"。
RVR$是反向,RVR$("123456789")="987654321"
以下用两种函数来做,用RVR$的不用COPY$,用COPY$的不用RVR$,输出最后两个三角。
DECLARE FUNCTION COPY$ (a$, i!, j!)
DECLARE FUNCTION RVR$ (a$)
CLS
INPUT n
a$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a$ = a$ + a$
b$ = RVR$(a$)
PRINT TAB(n); "A"
FOR i = 2 TO n
PRINT TAB(n + 1 - i); LEFT$(a$, i); RIGHT$(b$, i - 1)
NEXT i
PRINT TAB(n); "A"
FOR i = 2 TO n
PRINT TAB(n + 1 - i); LEFT$(a$, i); COPY$(a$, i - 1, i);
NEXT i
END
FUNCTION COPY$ (a$, i!, j!)
IF i > LEN(a$) OR i < 1 THEN PRINT "ERROR!"
x$ = ""
c = i - j + 1
FOR k = i TO c STEP -1
IF k < 1 THEN EXIT FOR
x$ = x$ + MID$(a$, k, 1)
NEXT k
COPY$ = x$
END FUNCTION
FUNCTION RVR$ (a$)
x$ = ""
FOR i = 1 TO LEN(a$)
x$ = x$ + MID$(a$, LEN(a$) + 1 - i, 1)
NEXT i
RVR$ = x$
END FUNCTION