万年历问题的Qbasic解决方法
添加时间: 2007-4-20 3:22:02 作者: 计算机等级考试认证参考 阅读次数:55 来源: http://www.d9soft.com
10 DIM C(12), a$(6)
20 INPUT “YEAR”; Y
30 X = Y: V = 28
40 IF Y < 0 THEN 20
50 IF Y = 0 THEN END
60 S = X - 1 + INT((X - 1) / 4) - INT((X - 1) / 100) + INT((X - 1) / 400)
70 C(0) = X
80 S = S + 1
90 FOR I = 1 TO 12
100 READ K
110 IF I <> 3 THEN 190
120 IF X MOD 4 = 0 THEN 140
130 GOTO 190
140 IF X MOD 100 = 0 THEN 160
150 GOTO 180
160 IF X MOD 400 = 0 THEN 180
170 GOTO 190
180 K = K + 1: V = 29
190 S = S + K
200 M = S MOD 7
210 IF M = 0 THEN C(I) = 6 ELSE C(I) = M - 1
220 NEXT
230 FOR I = 0 TO 6
240 READ a$(I)
250 NEXT
260 L1 = 2: L2 = 38: GOSUB 610
270 PRINT TAB(39); C(0);
280 L1 = 45: L2 = 79: GOSUB 610
290 GOSUB 640: GOSUB 650
300 FOR J = 0 TO 3
310 GOSUB 640
320 FOR I = 0 TO 2
330 PRINT TAB(15 + I * 25); “(”; J * 3 + I + 1; “)”;
340 NEXT
350 GOSUB 650: GOSUB 640: GOSUB 650: GOSUB 640
360 GOSUB 660: GOSUB 650: GOSUB 640: GOSUB 650
370 GOSUB 400
380 NEXT J
390 L1 = 2: L2 = 79: GOSUB 610: PRINT : RESTORE 700:
GOTO 20
400 X1 = 1: X2 = 1: X3 = 1
410 FOR L = 0 TO 5: GOSUB 640
420 FOR I = 0 TO 2
430 D = J * 3 + I + 1
440 IF D = 2 THEN 480 ELSE IF D = 4 THEN 470
450 IF D = 6 THEN 470 ELSE IF D = 9 THEN 470
460 IF D = 11 THEN 470 ELSE W = 31: GOTO 490
470 W = 30: GOTO 490
480 W = V
490 IF I = 0 THEN Z = X1 ELSE IF I = 1 THEN Z = X2 ELSE
Z = X3
500 M = (C(D) + Z) MOD 7
510 FOR N = M TO 6
520 IF Z > W THEN 580
530 IF Z < 10 THEN PRINT TAB(N * 3 + 6 + 25 * I); : PRINT USING “##”; Z; : GOTO 550
540 PRINT TAB(N * 3 + 5 + I * 25); : PRINT USING “###”;
Z;
550 Z = Z + 1
560 IF I = 0 THEN X1 = Z ELSE IF I = 1 THEN X2 = Z ELSE
X3 = Z
570 NEXT N
580 NEXT I: GOSUB 650
590 NEXT L: GOSUB 640: GOSUB 650
600 RETURN
610 FOR U = L1 TO L2
620 PRINT TAB(U); “*”;
630 NEXT: RETURN
640 L1 = 2: L2 = 2: GOSUB 610: RETURN
650 L1 = 79: L2 = 79: GOSUB 610: RETURN
660 FOR I = 0 TO 2
670 FOR Z = 0 TO 6
680 PRINT TAB(3 * Z + 6 + I * 25); : PRINT USING “\”; a$(Z);
690 NEXT: NEXT: RETURN
700 DATA 0,31,28,31,30,31,30,31,31,30,31,30
710 DATA “SU”,“MO”,“TU”,“WE”,“TH”,“FR”,“SA”
上一篇文章: 计算机三级:2003-09PC技术 下一篇文章: Visual Basic 的未来

