主题:我急!我急!我急!我特急!
超人hj
[专家分:30] 发布于 2007-03-23 18:50:00
编程将含有小数部分的M进制数转换成N进制数。
例如:将十进制数27.375转换成二进制数11011.011
回复列表 (共13个回复)
沙发
chyx [专家分:450] 发布于 2007-03-23 18:53:00
CLS
INPUT N$, S, K
PRINT N$; "=";
D = INSTR(N$, "."): T$ = MID$(N$, D + 1): N$ = MID$(N$, 1, D - 1)
FOR I = LEN(N$) TO 1 STEP -1: A$ = MID$(N$, LEN(N$) + 1 - I, 1)
IF ASC(A$) > 57 THEN A = ASC(A$) - 55 ELSE A = VAL(A$)
x = x + S ^ (I - 1) * A
NEXT I
DO
Y = x MOD K: x = x \ K
IF Y > 9 THEN D$ = CHR$(Y + 55) ELSE D$ = CHR$(48 + Y)
R$ = D$ + R$
LOOP UNTIL x = 0
T$ = T$: R$ = R$ + "."
FOR I = 1 TO LEN(T$): A$ = MID$(T$, I, 1)
IF ASC(A$) > 57 THEN C = ASC(A$) - 55 ELSE C = VAL(A$)
T = T + C * (1 / S ^ I)
NEXT I
DO
T = T * K: IF INT(T) > 9 THEN E$ = CHR$(T + 54) ELSE E$ = CHR$(48 + INT(T))
R$ = R$ + E$: T = T - INT(T)
LOOP UNTIL T = 0
PRINT R$
END
板凳
超人hj [专家分:30] 发布于 2007-03-23 18:56:00
某电台的音乐欣赏节目自 1988年1月 1日起按照两天传统节目,一天流行音乐的规律开播。
即第一、二天是传统音乐,第三天是流行音乐,第四天、五天是传统音乐,第六天是流行音乐,
如此类推。请编程输人开播后的某一日期,则输出当天是传统音乐还是流行音乐。
3 楼
蓝莎菲莹 [专家分:370] 发布于 2007-03-23 19:12:00
不知道!
4 楼
超级兔子 [专家分:0] 发布于 2007-03-26 14:48:00
上面的那位太不文明了,不知道就不知道,那么大声干吗?
我已参考HHHCY的程序解出此题:
CLS
INPUT "NIAN:", n
INPUT "YUE:", y
INPUT "RI:", r
DIM a(12), e AS DOUBLE
FOR i = 1 TO 12: READ a(i): NEXT i
DATA 31,29,31,30,31,30,31,31,30,31,30,31
a = 1988: b = 1: c = 1: e = 1
DO UNTIL a = n AND b = y AND c = r
e = e + 1: c = c + 1
IF c > a(b) THEN c = 1: b = b + 1
IF b = 13 THEN b = 1: a = a + 1
IF a MOD 4 = 0 AND a MOD 100 <> 0 OR a MOD 400 = 0 THEN
a(2) = 29
ELSE a(2) = 28
END IF
LOOP
IF e MOD 3 = 0 THEN PRINT "LIU XING" ELSE PRINT "CHUAN TONG"
5 楼
小精灵LS [专家分:580] 发布于 2007-04-04 16:49:00
CLS
1 INPUT "年:", a: IF a < 1988 THEN 1
2 INPUT "月:", b: IF b < 1 OR b > 12 THEN 2
3 INPUT "日:", c
IF (a MOD 4 = 0 AND a MOD 100 <> 0) OR a MOD 400 = 0 THEN y = 1
IF y = 1 AND b = 2 AND c > 29 THEN 3
IF y = 0 AND b = 2 AND c > 28 THEN 3
IF b = 1 OR b = 3 OR b = 5 OR b = 7 OR b = 8 OR b = 10 OR b = 12 THEN
IF c > 31 THEN 3
ELSE
IF c > 30 THEN 3
END IF
FOR i = 1 TO b - 1
IF i = 2 THEN
IF y = 1 THEN n = n + 29 ELSE n = n + 28
END IF
IF i = 1 OR i = 3 OR i = 5 OR i = 7 OR i = 8 OR i = 10 OR i = 12 THEN
n = n + 31
ELSE
n = n + 30
END IF
NEXT i
IF y = 1 THEN r = (a - 1988) \ 4 ELSE r = (a - 1988) \ 4 + 1
p = a - 1988 - r
n = n + r * 366 + p * 365 + c
IF n MOD 3 = 0 THEN PRINT "流行音乐" ELSE PRINT "传统音乐"
END
6 楼
hhhchy [专家分:300] 发布于 2007-04-04 17:13:00
CLS
INPUT N$, S, K
PRINT N$; "=";
D = INSTR(N$, "."): T$ = MID$(N$, D + 1): N$ = MID$(N$, 1, D - 1)
FOR I = LEN(N$) TO 1 STEP -1: A$ = MID$(N$, LEN(N$) + 1 - I, 1)
IF ASC(A$) > 57 THEN A = ASC(A$) - 55 ELSE A = VAL(A$)
x = x + S ^ (I - 1) * A
NEXT I
DO
Y = x MOD K: x = x \ K
IF Y > 9 THEN D$ = CHR$(Y + 55) ELSE D$ = CHR$(48 + Y)
R$ = D$ + R$
LOOP UNTIL x = 0
T$ = T$: R$ = R$ + "."
FOR I = 1 TO LEN(T$): A$ = MID$(T$, I, 1)
IF ASC(A$) > 57 THEN C = ASC(A$) - 55 ELSE C = VAL(A$)
T = T + C * (1 / S ^ I)
NEXT I
DO
T = T * K: IF INT(T) > 9 THEN E$ = CHR$(T + 54) ELSE E$ = CHR$(48 + INT(T))
R$ = R$ + E$: T = T - INT(T)
LOOP UNTIL T = 0
PRINT R$
END
7 楼
蓝莎菲莹 [专家分:370] 发布于 2007-04-04 17:37:00
CLS
INPUT N$, S, K
PRINT N$; "=";
D = INSTR(N$, "."): T$ = MID$(N$, D + 1): N$ = MID$(N$, 1, D - 1)
FOR I = LEN(N$) TO 1 STEP -1: A$ = MID$(N$, LEN(N$) + 1 - I, 1)
IF ASC(A$) > 57 THEN A = ASC(A$) - 55 ELSE A = VAL(A$)
x = x + S ^ (I - 1) * A
NEXT I
DO
Y = x MOD K: x = x \ K
IF Y > 9 THEN D$ = CHR$(Y + 55) ELSE D$ = CHR$(48 + Y)
R$ = D$ + R$
LOOP UNTIL x = 0
T$ = T$: R$ = R$ + "."
FOR I = 1 TO LEN(T$): A$ = MID$(T$, I, 1)
IF ASC(A$) > 57 THEN C = ASC(A$) - 55 ELSE C = VAL(A$)
T = T + C * (1 / S ^ I)
NEXT I
DO
T = T * K: IF INT(T) > 9 THEN E$ = CHR$(T + 54) ELSE E$ = CHR$(48 + INT(T))
R$ = R$ + E$: T = T - INT(T)
LOOP UNTIL T = 0
PRINT R$
END
8 楼
爱丽斯LING [专家分:560] 发布于 2007-04-04 18:04:00
CLS
INPUT N$, S, K
PRINT N$; "=";
D = INSTR(N$, "."): T$ = MID$(N$, D + 1): N$ = MID$(N$, 1, D - 1)
FOR I = LEN(N$) TO 1 STEP -1: A$ = MID$(N$, LEN(N$) + 1 - I, 1)
IF ASC(A$) > 57 THEN A = ASC(A$) - 55 ELSE A = VAL(A$)
x = x + S ^ (I - 1) * A
NEXT I
DO
Y = x MOD K: x = x \ K
IF Y > 9 THEN D$ = CHR$(Y + 55) ELSE D$ = CHR$(48 + Y)
R$ = D$ + R$
LOOP UNTIL x = 0
T$ = T$: R$ = R$ + "."
FOR I = 1 TO LEN(T$): A$ = MID$(T$, I, 1)
IF ASC(A$) > 57 THEN C = ASC(A$) - 55 ELSE C = VAL(A$)
T = T + C * (1 / S ^ I)
NEXT I
DO
T = T * K: IF INT(T) > 9 THEN E$ = CHR$(T + 54) ELSE E$ = CHR$(48 + INT(T))
R$ = R$ + E$: T = T - INT(T)
LOOP UNTIL T = 0
PRINT R$
END
9 楼
爱丽斯LING [专家分:560] 发布于 2007-04-06 17:15:00
CLS
INPUT N$, S, K
PRINT N$; "=";
D = INSTR(N$, "."): T$ = MID$(N$, D + 1): N$ = MID$(N$, 1, D - 1)
FOR I = LEN(N$) TO 1 STEP -1: A$ = MID$(N$, LEN(N$) + 1 - I, 1)
IF ASC(A$) > 57 THEN A = ASC(A$) - 55 ELSE A = VAL(A$)
x = x + S ^ (I - 1) * A
NEXT I
DO
Y = x MOD K: x = x \ K
IF Y > 9 THEN D$ = CHR$(Y + 55) ELSE D$ = CHR$(48 + Y)
R$ = D$ + R$
LOOP UNTIL x = 0
T$ = T$: R$ = R$ + "."
FOR I = 1 TO LEN(T$): A$ = MID$(T$, I, 1)
IF ASC(A$) > 57 THEN C = ASC(A$) - 55 ELSE C = VAL(A$)
T = T + C * (1 / S ^ I)
NEXT I
DO
T = T * K: IF INT(T) > 9 THEN E$ = CHR$(T + 54) ELSE E$ = CHR$(48 + INT(T))
R$ = R$ + E$: T = T - INT(T)
LOOP UNTIL T = 0
PRINT R$
END
10 楼
Lovely哆啦 [专家分:1360] 发布于 2007-04-11 18:13:00
7 楼
CLS
INPUT N$, S, K
PRINT N$; "=";
D = INSTR(N$, "."): T$ = MID$(N$, D + 1): N$ = MID$(N$, 1, D - 1)
FOR I = LEN(N$) TO 1 STEP -1: A$ = MID$(N$, LEN(N$) + 1 - I, 1)
IF ASC(A$) > 57 THEN A = ASC(A$) - 55 ELSE A = VAL(A$)
x = x + S ^ (I - 1) * A
NEXT I
DO
Y = x MOD K: x = x \ K
IF Y > 9 THEN D$ = CHR$(Y + 55) ELSE D$ = CHR$(48 + Y)
R$ = D$ + R$
LOOP UNTIL x = 0
T$ = T$: R$ = R$ + "."
FOR I = 1 TO LEN(T$): A$ = MID$(T$, I, 1)
IF ASC(A$) > 57 THEN C = ASC(A$) - 55 ELSE C = VAL(A$)
T = T + C * (1 / S ^ I)
NEXT I
DO
T = T * K: IF INT(T) > 9 THEN E$ = CHR$(T + 54) ELSE E$ = CHR$(48 + INT(T))
R$ = R$ + E$: T = T - INT(T)
LOOP UNTIL T = 0
PRINT R$
END
我来回复