DOMANDA C++ Polibio crittografia

  • Autore discussione Autore discussione MPG
  • Data d'inizio Data d'inizio
Pubblicità

MPG

Utente Attivo
Messaggi
566
Reazioni
4
Punteggio
55
Ciao a tutti mi aiutate a fare un programma in C++ che esegue quello che fa il metodo crittografico di Polibio?
Grazie a tutti.
 

Allegati

  • Polibio.webp
    Polibio.webp
    139 KB · Visualizzazioni: 108
So che è possibile rappresentare il metodo con un array a due dimensioni pero' non posso farlo perchè non è un argomento trattato a scuola, non so realmente come rappresentarlo senza tale array.....
 
Ultima modifica:
Sconcertante che chiunque abbia creato quella tabella, abbia collassato K e Q sullo stesso codice. Bah, magari suppone che sia giusto scrivere "Ackua"!!
 
So che è possibile rappresentare il metodo con un array a due dimensioni pero' non posso farlo perchè non è un argomento trattato a scuola, non so realmente come rappresentarlo senza tale array.....
Come disse un mio prof, una matrice non è altro che un array lungo lungo, puoi ovviare al problema con due iterazioni innestate
 
Come disse un mio prof, una matrice non è altro che un array lungo lungo, puoi ovviare al problema con due iterazioni innestate
Purtroppo ho perso la mano sto facendo tuttaltro e non ricordo bene come fare non puoi buttarmi giu' due righe?
Purtroppo per me l'infomratica è sempre stata una nota dolente...
 
Guarda ti giuro sono negato per queste cose ho torvato questo online ma faccio fatica a capirlo, anche per esempio ceil non l'ho mai usato, poi per 'a' dobbiamo pensare al codice asci di a o all'a che c'è nella tabella?.
Francamente non so farlo, è inutile che ci giro intorno, se puoi aiutarmi spiegandomelo te ne sono grato.


Codice:
       #include <cmath>
#include <iostream>
using namespace std;
void LetterToNumber(string str) {
   int R, C;
   for (int i = 0; str[i]; i++) {
      R = ceil((str[i] - 'a') / 5) + 1;
      C = ((str[i] - 'a') % 5) + 1;
      if (str[i] == 'k') {
         R = R - 1;
         C = 5 - C + 1;
      }
      else if (str[i] >= 'j') {
         if (C == 1) {
            C = 6;
            R = R - 1;
         }
         C = C - 1;
      }
      cout<<R<<C;
   }
   cout << endl;
}
int main() {
   string str = "k";
   cout<<"The numeric encryption of string '"<<str<<"' is : ";
   LetterToNumber(str);
   return 0;
}
 
Ultima modifica:
SE comunque scrivo con il code sopra "Attenzione agli scogli" come file di spiegazione in alto risulta
-5-1444415335524343315-12111223124-121431334223124
e non
11444415335524343315-12111223124-121431334223124
 
Insomma devi fare un compito C++ per casa e vorresti che qualcuno te lo svolga. Ho ragione ? E' un esercizio banale, ma se non ce la fai significa che anche gli esercizi precedenti evidentemente non li hai svolti da solo.

Ti do un indizio, la cosa piu idiota, usando solo maiuscole e':

Codice:
int tavola_codici[21] = {11, 12, 13 ... };

string test = "TRULLALLERO";

int codificato = tavola_codici[test[0] - 'A'];

Cosi in un ciclo for per ogni lettera, e passi i numeri a std::cout.

Poi ovviamente devi risolverti il conflitto KQ :)
 
Insomma devi fare un compito C++ per casa e vorresti che qualcuno te lo svolga

E' proprio così ,,, che poi è quello che gli hanno detto anche qui


e in altri forum ...

Devi studiare mpg, la storia del "sono negato" non attacca ...
 
E' proprio così ,,, che poi è quello che gli hanno detto anche qui


e in altri forum ...

Devi studiare mpg, la storia del "sono negato" non attacca ...


Ma scusa mi conosci? Ho mediamente buoni voti, non me la spasso di certo e studio parecchio, in informatica faccio fatica ma perchè scusa devi arrivare a queste conclusioni?
Se uno studia geometria e non riesce a fare gli esercizi per esempio perchè è negato sempre vale "la storia non attacca"?
Mi pare una frase fuori luogo e concludo, grazie.
 
@MPG
hai risolto o no l'esercizio?
se hai risolto sarebbe cosa buona se dici come, torna utile per altri, e poi possiamo chiudere la discussione
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top