C++ Polibio crittografia

di Anonimizzato25685 il
12 risposte
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:
25685_4919c4824042ec59de48b1b4354bebdd.jpg
25685_4919c4824042ec59de48b1b4354bebdd.jpg

12 Risposte

  • Ti aiutiamo, ma come?
    Sto provando con la trasmissione del pensiero.
    Ti arriva qualcosa?
  • 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.....
  • Non è un arogmento particolarmente difficile: puoi provare ad affrontarlo da solo

    Se vuoi usare un array a una dimensione, dichiaralo lungo 25 e l'indice di posizione sarà del tipo 5 * i + j
  • Ti conviene vederteli un po'.
    In alternativa puoi usare un array di lunghezza n*m, dove n sono le righe e m le colonne.
    Per accedere alla casella di riga i e colonna j, fai:
    
    V[i * m + j] 
    
  • 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.

    [Code] #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; }
  • @mpg:

    1) l'affermazione "non e' un argomento svolto a scuola" NON E' UN SCUSANTE!
    Se non e' stato fatto, vuol dire che lo si fara'!
    Tu SEMPLICEMENTE anticipi un po' le conoscenze.
    2) l'affermazione "sono negato" NON E' UNA SCUSANTE!
    O ti ""neghi l'annegazione"" ( ), o abbandoni il corso di informatica.

    L'informatica e':

    1) studio
    2) applicazione di quello che si e' studiato
    3) se non funziona, goto 1)
    4) se non si e' capito, goto 1)
    5) se si e' capito e funziona, goto 1) per il prossimo argomento
    6) il 90% delle cose ce ti serviranno per la realizzazione di programmi TE LE DEVI IMPARARE DA SOLO.
    Se speri che te le insegni la scuola,

    ""campa cavallo che l'erba cresce""
  • Grazie lo stesso anche se sono in parte non convinto di quello che hai detto, perchè se una materia non piace di base fai anche fatica ad affrontarla e eseguire esercizi. Inoltre alcune materie (e ritengo anche questa) necessitano del guizzo mentale che non tutti hanno. Io sono alle superiori e non all'università e personalmente ritengo molto difficile questo esercizio.
  • Se l'esercizio te lo fanno gli altri tu non impari assolutamente nulla. E non è in questo forum che otterrai la pappa pronta solo per dimostrare al prof di averlo fatto.
  • Va beh non mi serviva a dimostrare nulla, non sapevo come farlo realmente, ma va bene cosi'.
  • Devi cercare nella tabella ogni lettera presente nella parola da cifrare. Una volta trovata, ti salvi gli indici che ne indicano la posizione in un terzo array. È difficile aiutarti se non inizi a scrivere niente.

    Se proprio non riesci ad implementare una tabella con array a due o una dimensione (nel modo che abbiamo suggerito prima), memorizza tutto l'alfabeto in un unico array da 25, poi lo scorri con un solo indice e codifichi le lettere con un solo numero.
  • Come ti e' stato detto, se l'esercizio cosi' come e' ti sembra complicato, inventati, per ora, una versione 'piu' semplice'.
    Una volta che hai risolto la versione semplice, la puoi estendere alla versione richiesta dal testo.

    Anche con 50 anni di esperienza non solo realizza applicazioni complesse al primo colpo, ma si realizzano pezzettini piu' semplici che poi si compongono assieme, stile mattoncini della Lego.

    Comunque non e' plausibile che il prof abbia proposto un esercizio del genere e non abbia introdotto il concetto di ciclo for, di vettore, di codice ASCII.

    Diciamo che, poiche' non ti piace la materia, hai evitato di seguire diligentemente fin dall'inizio ed ora ti ritrovi con le 'lacune', ma che dico lacune, 'voragini', da riempire.

    Comunque, per prima cosa, NON TI SERVE SCRIVERE DEL Codice per implementare l'' algoritmo, puoi descriverlo "a parole".
    Inizia in questo modo!
Devi accedere o registrarti per scrivere nel forum
12 risposte