' cod e` la codifica "segreta" dei numeri del codice ASCII ' car$ e` un carattere battuto e n.asc e` il suo numero in codice ASCII ' car.new$ e` la sua codifica segreta e n.asc.new e` il suo numero in codice ASCII ' -> Matematica e Calcolatore, sch.8, es.7 PRINT INPUT "chiave (n.intero) "; chiave 10 INPUT "1: codifica, 2: decodifica"; cosa a = RND(-1) ' in modo che riparta dal 1^ numero RANDOMIZE chiave SELECT CASE cosa CASE 1 LINE INPUT "messaggio: ", a$ PRINT "codifica: "; FOR i = 1 TO LEN(a$) car$ = MID$(a$, i, 1): nasc = ASC(car$) IF nasc < 32 OR nasc > 122 THEN ' non modifichiamo i caratteri "strani" nascnew = nasc ELSE nascnew = nasc + FIX(RND * 90) IF nascnew > 122 THEN nascnew = nascnew - 122 + 31 END IF carnew$ = CHR$(nascnew): PRINT carnew$; NEXT PRINT CASE 2 LINE INPUT "codifica: ", a$ PRINT "messaggio: "; FOR i = 1 TO LEN(a$) car$ = MID$(a$, i, 1): nasc = ASC(car$) IF nasc < 32 OR nasc > 122 THEN ' non modifichiamo i caratteri "strani" nascnew = nasc ELSE nascnew = nasc - FIX(RND * 90) IF nascnew < 32 THEN nascnew = nascnew + 122 - 31 END IF carnew$ = CHR$(nascnew): PRINT carnew$; NEXT PRINT CASE ELSE END SELECT GOTO 10