14/05/14 16:11
Dice
Ho un problemino:
voglio fare la codifica e la decodifica di un messaggio usando il cifrario di cesare.
Sono riuscito a fare la codifica facendo così:
Però non riesco a fare la decodifica; ho provato a fare così:
Però mi da l'errore che indica è andato fuori dal range dei valori dell'array.
Il problema si presenta quando ci sono le 'z', perchè la z corrisponde al valore alfabeto[25]; quindi quando faccio la codifica la z viene sostituita con la 'a', che è alla posizione alfabeto[0].
Quindi io gli dico di fare: (0 - 1) % 26. E allora mi da l'errore.
Ma allora come posso fare per far funzionare la decodifica?
voglio fare la codifica e la decodifica di un messaggio usando il cifrario di cesare.
Sono riuscito a fare la codifica facendo così:
cypherText[i] = alfabeto[(alfabeto.IndexOf(cypherText[i]) + 1) % 26];
Però non riesco a fare la decodifica; ho provato a fare così:
cypherText[i] = alfabeto[(alfabeto.IndexOf(cypherText[i]) - 1) % 26];
Però mi da l'errore che indica è andato fuori dal range dei valori dell'array.
Il problema si presenta quando ci sono le 'z', perchè la z corrisponde al valore alfabeto[25]; quindi quando faccio la codifica la z viene sostituita con la 'a', che è alla posizione alfabeto[0].
Quindi io gli dico di fare: (0 - 1) % 26. E allora mi da l'errore.
Ma allora come posso fare per far funzionare la decodifica?
aaa