Cifrario di Cesare, Fortran 90

Messaggioda nereide » 08/08/2017, 11:42

Ciao a tutti, ho provato a scrivere in Fortran una versione semplificata del cifrario di Cesare utilizzando un alfabeto ridotto formato solo dalle prime cinque lettere, usando una chiave di 3. Il compilatore non mi dà errore, ma il programma non funziona, visto che inserendo in input parole come "ab" o "cd", mi restituisce sempre "aa". Riporto qui di seguito il codice, sperando in un vostro aiuto:
Codice:
PROGRAM CESARINO
CHARACTER:: A(50), B(50)
INTEGER:: J, N, Q, R, POS
PRINT*, 'LUNGHEZZA PAROLA'
READ*, N
PRINT*, 'PAROLA'
DO J= 1, N
READ*, A(J)
ENDDO
B(1) = 'a'
B(2) = 'b'
B(3) = 'c' 
B(4) = 'd'
B(5) = 'e'
DO J= 1, N
CALL ricbin (B, N, A(J), POS)
IF (POS<=2) THEN
A(J) = B(POS+3)
ELSE
Q= (POS+3)/5
R= (POS+3) - 5*Q
A(J) = B(R)
ENDIF
ENDDO
DO J= 1, N
PRINT*, A(J)
ENDDO
END PROGRAM
   

Per ricbin intendo l'algoritmo di ricerca binaria.
Cosa sbaglio?
nereide
Average Member
Average Member
 
Messaggio: 238 di 534
Iscritto il: 20/08/2014, 21:34

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite