Quelli che seguono sono 2 testi di esercizio dame studiati in data odierna.
Non ci sono problemi se non fosse che non capisco un paio di piccole cose, che vi segno in rosso
//Sviluppare un programma (metodo main della classe Anagramma)che date 2 parole in input, verifichi se una è l'anagramma dl'altra

//sottoproblemi
//acquisizione delle due parole
//verifica lunghezzacoincidente
// verifica anagramma delle parole
//stampa dei risultati



class mioAnagramma
{
public static void main(String args[])
{
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();

//acquisizione delle parole
String parola1= in.readLine("Inserisci la prima parola: ");
String parola2= in.readLine("Inserisci la seconda parola: ");
boolean controllo=true;

//verifica della lunghezza
if(parola1.length()==parola2.length())
{
//verifica anagramma
for(int i=0; i <parola1.length();i++)
{
char c= parola1.charAt(i); //prendo la lettera dalla posizione i
int indice = parola2.indexOf(c); //faccio cosi in quanto una stringa parte da pos.0?
if(indice>=0)
parola2= parola2.substring(0,indice)+parola2.substring(indi ce+1); //???
else controllo=false;
}
}
else controllo=false;


//comunico i risultati
if(controllo) out.println("ANAGRAMMA VERO");
else out.println("ANAGRAMMA FALSO");

}}
e questo è il testo del secondo esercizio
//Scrivere un programma che realizzi un codice di sostituzione in cui si possa sostituire ogni lettera con quella che la segue di n posizioni (1<=n<=26) dove n è
//la chiave di cifratura


// specifiche del problema
// dato un testo (lettere minuscole) in chiaro e una chiave, cifrare il testo con il codice di sostituzione
// dato un testo cifrato (lettere minuscole) ottenere il testo in chiaro a patto di fornire la chiave corretta
// preservare l'inviolabilità del codice: il testo originale può essere ottenuto solamente conoscendo la chiave

//sottoproblemi
//menu a due scelte: codifica e decodifica
//acquisizione di testo e chiave
//costruire il testo (cifrato o in chiaro)mediante la sostituzione di un carattere alla volta





import prog.io.*;
import java.lang.*;
import prog.utili.*;

class keydicifratura {

public static void main(String[] args) {
ConsoleOutputManager out = new ConsoleOutputManager();
ConsoleInputManager in = new ConsoleInputManager();

String alfabeto = "abcdefghijklmnopqrstuvwxyz";
String testo;
int chiave;
char caratterevuoto= " ";
//realizzo il menu a doppia scelta
out.println("MENU");
out.println("1)Codifica");
out.println("2)Decodifica");

do
{
int scelta=in.readInt("\n Inserisci il numero associato all'operazione che desidera eseguire: ");

switch(scelta)
{
case 1:
testo=in.readLine("Inserisci il testo che desideri codificare: ");
chiave=in.readInt("Inserisci la chiave di codifica: ");
String testoCodificato="";
testo=testo.toLowerCase().trim(); //testo in minuscolo ed elimino gli spazi
for(int i=0; i<testo.length();i++)
{
char carattere;
if((carattere=testo.charAt(i)) != caratterevuoto ) //se il carattere prelevato da testo con indice i e messo in carattere è diverso da 0
{
testoCodificato+=alfabeto.charAt((alfabeto.indexOf (carattere)+chiave) %26); //????????
}
else testoCodificato+=' ';
}

testoCodificato=testoCodificato.toUpperCase();
out.println("Testo cifrato: "+testoCodificato);
break;
case 2: testo=in.readLine("Inserisci il codice da decodificare: ");
chiave=in.readInt("Inserisci la chiave di lettura del codice: ");
String testoDecodificato="";
testo=testo.toLowerCase().trim(); //elimino gli spazi oltre a rendere tutto minuscolo
for(int i=0; i<testo.length(); i++)
{
char carattere;
if((carattere=testo.charAt(i)) != caratterevuoto')

testoDecodificato+=alfabeto.charAt((alfabeto.index Of(carattere)+26-chiave)%26); //giusto,però non capisco il %26


else testoDecodificato+= ' ';
}
testoDecodificato=testoDecodificato.toUpperCase();
out.println("Testo codificato: "+testoDecodificato);
break;


case default: out.println("Hai inserito il numero sbagliato");
}}
while(scelta!=1 && scelta !=2 && scelta !=0);




}}