Salve a tutti: io ho il seguente problema che mi viene dato..... I cifrari a scorrimento sono metodi di cifratura che agiscono su un testo in cui ogni lettera del testo in chiaro viene sostituita, nel testo cifrato, con la lettera che si trova un certo numero di posizioni dopo nell’alfabeto. La sostituzione avviene lettera per lettera scorrendo il testo dall’inizio alla fine. Un famoso cifrario è il Santa[V,C], un cifrario che spacca l'alfabeto in vocali e consonanti e quindi fa scorrere una vocale di V vocali (solo sull'insieme delle vocali, ordinate alfabeticamente) e una consonante di C consonanti (solo sull'insieme delle consonanti, ordinate alfabeticamente). Stringa: ciao Cifrata Santa[2,1]: duie Si scriva una funzione che, ricevuta in ingresso una stringa di testo (consideriamo solo caratteri minuscoli) ed i valori V e C, restituisce la stringa cifrata usando Santa[V,C]. ho provato a risolvere in questo modo ma non capisco dove sbaglio, grazie a chi risponde codice:
|
Ho individuato i seguenti errori, ma non riesco ad entrare nella logica della funzione che dovrebbe fare la cifratura, quindi ti segnalo gli errori che una volta corretti consentono di compilare il programma, poi magari spiegherai meglio cosa ti aspetti e cosa invece ottieni.
ho cambiato quello che mi hai detto e ho anche cambiato un'altra riga e lo scritta in questo modo: (stringa+i)=( (stringa+i)-'j'(v%26) %26 + 'j' adesso il programma mi cambia solo la lettera 'i' in 'u' che è giusto ma poi non continua con le altre vocali e non capisco il perchè... per le consonanti invece non ho ancora scritto la parte di codice visto che le lettere sono di più non so da dove iniziare..... grazie per l'aiuto @mai: c'è ancora il punto 1. che non hai sistemato, funziona lo stesso, ma è segnalato come un warning. |
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?
- elenco numerato: 1. Foo 2. Bar
- per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
- è supportato anche semplice HTML
Tag:
domanda posta: 13 Feb '16, 19:29
domanda visualizzata: 2,432 volte
ultimo aggiornamento: 15 Feb '16, 19:05
@mai: per prima cosa, non mi è chiaro il procedimento per leggere la stringa di input, che potrebbe essere molto più semplice, per esempio:
Seconda cosa, la funzione la usi nel main come "santa", ma la dichiari come "funzione", invece devi essere coerente ed usare lo stesso nome. Inoltre l'ultimo parametro che indica la lunghezza non serve, dato che la lunghezza può essere ottenuta tramite "strlen". E ancora, il ciclo principale della funzione è su "dim" e non sulla lunghezza effettiva della stringa.
Ciao, allora per quanto riguarda l'input ci hanno insegnato solo il modo che ho usato non so cosa vuol dire fgets. Per la funzione invece si hai ragione ho provato a cambiarla ma mi dà lo stesso errore .....la storia della lunghezza non ho capito perché deve lavorare sulla dim 100 Grazie