10 CLS : SCREEN 9: COLOR 15: DEFDBL A-Z 20 PRINT "Premi il tasto corrispondente all'opzione che desideri." 30 LOCATE 4, 1: COLOR 10: PRINT "1" 40 LOCATE 4, 4: COLOR 13: PRINT "Radice quadrata nel campo complesso e relativo valore esadecimale." 50 LOCATE 5, 1: COLOR 10: PRINT "2" 60 LOCATE 5, 4: COLOR 13: PRINT "Controllo di accensione di un certo pixel." 70 LOCATE 6, 1: COLOR 10: PRINT "3" 80 LOCATE 6, 4: COLOR 13: PRINT "Calcolo del fattoriale di un numero naturale." 90 LOCATE 7, 1: COLOR 10: PRINT "4" 100 LOCATE 7, 4: COLOR 13: PRINT "Scomposizione di un numero naturale in fattori primi." 110 LOCATE 8, 1: COLOR 10: PRINT "5" 120 LOCATE 8, 4: COLOR 13: PRINT "Fine della sessione." 130 LL$ = SPACE$(1280) 140 COLOR 11: E = ASC(INPUT$(1)) 150 LOCATE 9, 1: PRINT LL$; 160 IF E < 49 OR E > 53 OR E <> INT(E) THEN 140 170 ON E - 48 GOSUB 180, 240, 330, 390, 550 180 LOCATE 13, 1: INPUT "Numero reale"; L 190 IF L >= 0 THEN M$ = STR$(SQR(L)) ELSE M$ = STR$(SQR(ABS(L))) + CHR$(105) 200 LOCATE 15, 1: PRINT "ROOTX="; M$ 210 IF L >= -32768 AND L <= 65535 THEN HK$ = HEX$(PEEK(L)) ELSE HK$ = "Impossibile trovare la label!" 220 LOCATE 16, 1: PRINT "PEEKX= "; HK$ 230 RETURN 140 240 LOCATE 13, 1: PRINT "ASCISSA "; 250 COLOR 14: PRINT "(max. 639)"; : COLOR 11: INPUT M 260 IF M < 0 OR M > 639 OR M <> INT(M) THEN LOCATE 13, 1: PRINT SPACE$(80): GOTO 240 270 LOCATE 14, 1: PRINT "ORDINATA "; 280 COLOR 14: PRINT "(max. 349)"; : COLOR 11: INPUT N 290 IF N < 0 OR N > 349 OR N <> INT(N) THEN LOCATE 14, 1: PRINT SPACE$(80): GOTO 270 300 A = POINT(M, N): LOCATE 16, 1: IF A THEN PRINT "Il pixel Š acceso." ELSE PRINT "Il pixel Š spento." 310 LOCATE 17, 1: PRINT "Codice del colore="; A 320 GOTO 230 330 LOCATE 23, 1: PRINT "Numero naturale "; 340 COLOR 14: PRINT "(max. 170)"; : COLOR 11: INPUT Q 350 IF Q < 0 OR Q > 170 OR Q <> INT(Q) THEN LOCATE 23, 1: PRINT SPACE$(80): GOTO 330 360 IF Q = 0 THEN PRINT " 0!= 1 "; : COLOR 14: PRINT "(per definizione)"; : GOTO 230 370 P = 1: FOR R = 1 TO Q: P = P * R: NEXT R 380 PRINT STR$(Q); "!="; P; : GOTO 230 390 LOCATE 11, 1: INPUT "Numero naturale"; A 400 IF A < 1 OR A <> INT(A) THEN LOCATE 11, 1: PRINT SPACE$(80): GOTO 390 410 DIM NUM(500): S = 0: GOTO 430 420 NUM(S) = 2: S = S + 1: A = A / 2: IF A = 1 THEN 500 430 IF A / 2 = INT(A / 2) THEN 420 ELSE B = 3 440 C = SQR(A) + 1 450 IF B >= C THEN 490 ELSE IF A / B = INT(A / B) THEN 470 460 B = B + 2: GOTO 450 470 IF A / B * B - A = 0 THEN 480 ELSE 460 480 NUM(S) = B: S = S + 1: A = A / B: GOTO 440 490 NUM(S) = A: S = S + 1 500 FOR I1 = 1 TO 12: FOR I2 = 1 TO 4 510 D$ = STR$(NUM((I2 - 1) * 12 + I1 - 1)) 520 LOCATE I1 + 12, I2 * 20 + 1 - LEN(D$) 530 IF D$ <> " 0" THEN PRINT D$; 540 NEXT I2, I1: ERASE NUM: GOTO 230 550 CLS : END