回 帖 发 新 帖 刷新版面

主题:我急!我急!我急!我特急!

编程将含有小数部分的M进制数转换成N进制数。
例如:将十进制数27.375转换成二进制数11011.011

回复列表 (共13个回复)

沙发

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

板凳

某电台的音乐欣赏节目自 1988年1月 1日起按照两天传统节目,一天流行音乐的规律开播。
即第一、二天是传统音乐,第三天是流行音乐,第四天、五天是传统音乐,第六天是流行音乐,
如此类推。请编程输人开播后的某一日期,则输出当天是传统音乐还是流行音乐。

3 楼

不知道!

4 楼

上面的那位太不文明了,不知道就不知道,那么大声干吗?
我已参考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 楼

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 楼


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 楼

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 楼

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 楼

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 楼

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册