Domanda Java Polibio crittografia

MisterMPG

Utente Iron
21 Novembre 2020
21
3
0
9
Ciao a tutti mi aiutate a fare un programma in Java che esegue quello che fa il metodo crittografico di Polibio?
Premetto che non conosco assolutamente questo linguaggio.
Grazie a tutti.

ps
Dovrebbe ricalcare il codice che si usa con il C++ per eseguirlo e che copio qui sotto:

Codice:
#include <iostream>
#include <string>
using namespace std;

int controlchar(char c)

{
  int array[]

   {
    11, 12, 13, 14, 15,  // a b c d e 
    21, 22, 23, 24, 25,  // f g h i j 
    31, 32, 33, 34, 35,  // k l m n o 
    41, 31, 42, 43, 44, 45,  // p q r s t u
    51, 52, 53, 54, 55   // v w x y z
  };

  if ('a' <= c && c <= 'z')
    return array[c - 'a'];
  else if ('A' <= c && c <= 'Z')
    return array[c - 'A'];
  return 0;  // carattere non codificabile
}

int main() {
  string text;
  cout << "Inserisci una parola: ";
   getline(cin, text);


   for (int i = 0; i < text.length(); i++) {
     if(text[i] != ' ')
       cout << controlchar(text[i]);
  else cout << " "; 
}
  cout << endl;
 
Questa sottosezione del forum è stata pensata come un luogo per discutere argomenti riguardanti la programmazione. Chiedere aiuto su come svolgere un esercizio è ragionevole, trovare qualcuno che ti guarda in buona fede e decide di svolgertelo interamente e spiegartelo in dettaglio è un trattamento privilegiato che non capita ovunque, ma sfruttare gli utenti per fargli svolgere i tuoi compiti di scuola aggratis e senza nemmeno metterci un minimo di impegno... non è il caso.

Capisco che magari questo ambito dell'informatica ti piace poco e "sei negato", però mettiti nei nostri panni. Una spiegazione su come implementare il cifrario di Polibio senza usare costrutti difficili l'hai avuta, ora devi solo provare a convertire il codice da un linguaggio all'altro. L'unica cosa che ci resta da spiegarti è la sintassi java, ma 1) se non ci spieghi cosa non hai capito possiamo solo fornirti spiegazioni enciclopediche che tanto vale leggere da un libro e 2) se leggi il libro (o la spiegazione di cui ti hanno fornito) molto probabilmente sarai anche in grado di risolvere autonomamente l'esercizio visto che hai a disposizione la soluzione (spiegata e compresa) in ~30 linee di codice C++.

Una mano possiamo anche dartela, però almeno mettici le buone intenzioni. Mostra che sei disposto a provarci e che ambisci veramente ad imparare quel che ci stai chiedendo di fare al posto tuo. Provarci non vuol dire scrivere su google "polibio java", trovare un codice carino e incollarcelo qui per darci il biscotto. Parti da zero, tieniti affianco il codice C++ e il libro/appunti su come funziona Java. Devi solo convertire il codice C++ in codice Java.
Io credo che sia un esercizio alla tua portata ;)
 
  • Love
Reazioni: DispatchCode
Certo St3ve di ringrazio dell'aiuto precedente, ci è stato chiesto se riuscivamo a farlo in Java ma realmente questo linguaggio non è stato mai fatto dovrei certamente mettermi per conto mio a studiarlo, non ho nessun libro/riferimento su Java, se vuoi darmi dei riferimenti anche online per capirlo (cioè per capire che le cose fondamentali di Java per arrivare a buttar giu' il codice) ci provo, ma qui proprio non ho alcuna base.
 
Sottoscrivo in toto quanto detto da St3ve.

Mi sembra un pò strano vi facciano passare da C++ a Java così, senza nessuna indicazione.
Ma ad ogni modo qui puoi trovare alcune informazioni https://docs.oracle.com/javase/tutorial/
Di libri ne trovi a iosa, io anni fa avevo quello di Herbert Shildt (ora so che scrive testi pubblicati da Oracle). Qui comunque trovi un pò di libri I migliori libri per imparare e approfondire Java.
Magari St3ve o altri hanno altro materiale da suggerire.

Sostanzialmente avrai bisogno di due cose: sostituire string con il tipo usato da Java, String, e poi leggere una stringa in input; il modo più semplice è probabilmente utilizzando Scanner. Per prelevare il carattere alla i-esima posizione esiste charAt().

Comunque hai anche internet a disposizione, queste sono tutte informazioni che puoi trovare con una semplice ricerca.;)
 
Ultima modifica:
Che programma si usa per verificare se il code è abbastanza giusto? In c++ uso dev c++ con java cosa si usa?
.
 
Ultima modifica:
Si usa un compilatore, esattamente come in C/C++.
Devi scaricare il JDK dal sito Oracle. Poi come IDE/Editor puoi usare quello che preferisci. NetBeans, Eclipse, IntelliJ (che consiglio). Come editor ne esistono a iosa.

EDIT:
Per essere più preciso: volevo dire che il compilatore ti riporta gli errori. Tramite un IDE vedi errori sintattici e di altro tipo, e ti aiuta con l'autocompletamento e altro.
 
Ultima modifica:
Ok ti ringrazio.
Messaggio unito automaticamente:

SCusa mi puoi dire in parole povere quello che si intende per classe , oggetto e metodo in Java?
 
Scusate per il compilatore qual'è il piu' semplice a parte javac con il prompt di comandi?
Se volgio fare un copia incolla del codice in pratica come in dev c++? Ho scaricato eclipse ma facendo poi il copia incolla un casino non conoscendo bene il tutto..
 
Sono da smartphone, non riesco a spiegarti quanto hai chiesto sulle classi... ma se leggi quanto ho linkato sopra trovi tutto.

I concetti della OOP in Java sono quelli che trovi in C++. La classe è un contenitore, lo usi per rappresentare una cosa. Una classe è composta da attributi (le variabili di classe), e dai metodi, che agiscono su questi attributi (restituendo il loro valore o modificandolo) e che consentono di svolgere delle operazioni.
Un oggetto è l'istanza della classe: la classe non occupa memoria, l'oggetto è la rappresentazione della tua classe in memoria, e lo crei usando la keywords new.

Java:
Persona p = new Persona();

Questo crea un oggetto p, di tipo Persona. Su p puoi richiamare i metodi (pubblici) di quella classe.

Queste sono cose da studiare o leggere, ed è una cosa che spetta a te, non possiamo farlo noi per te.

Scusate per il compilatore qual'è il piu' semplice a parte javac con il prompt di comandi?
Se volgio fare un copia incolla del codice in pratica come in dev c++? Ho scaricato eclipse ma facendo poi il copia incolla un casino non conoscendo bene il tutto..

javac è il compilatore per Java. Non ne esistono altri. Una volta compilato esegui usando java, che è il runtime di Java che esegue il codice (JVM).
Più semplice di così non trovi nulla...

In merito al resto non so che dirti, non ho capito che problema hai con il copia incolla e a cosa ti riferisci.
Di IDE ne esistono altri. Se vuoi una cosa ancora più leggera puoi usare Notepad++, ma dovrai compilare ed eseguire da riga di comando (anche se penso ormai ci siano plug in per fare tutto dall'interno).
Se vuoi stare su un IDE, prova IntelliJ anche.