Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Shift - shift.pl

shift.pl

Caricato da:
Scarica il programma completo

  1. % PROCEDURA PER CIFRARE UNA STRINGA MEDIANTE CIFRARIO A SCORRIMENTO
  2.  
  3.  
  4. % shift(L, N, A)
  5. % "A è la stringa (atomo) cifrata mediante cifrario a scorrimento
  6. % con chiave (scorrimento) N, a partire dalla lista L"
  7.  
  8. shift(L, N, A) :- nonvar(L), nonvar(N), shift_list(L, N, L1), name(A, L1).
  9.  
  10.  
  11. % shift_list(L, N, L1)
  12. % "L1 è la lista cifrata mediante cifrario a scorrimento
  13. % con chiave (scorrimento) N, a partire dalla lista L"
  14.  
  15. shift_list([], _, []).
  16. shift_list([HEAD|TAIL], N, [HEAD1|TAIL1]) :-
  17.         shift_letter(HEAD, N, HEAD1), shift_list(TAIL, N, TAIL1).
  18.  
  19.  
  20. % shift_letter(T, N, U)
  21. % "la lettera U è ottenuta traslando la lettera T di
  22. % N posizioni all'interno dell'alfabeto (di 26 lettere)
  23.  
  24. shift_letter(T, N, U) :-
  25.         U1 is T+N, U1 < 97, N1 is N+26, shift_letter(T, N1, U), !.
  26. shift_letter(T, N, U) :-
  27.         U1 is T+N, U1 > 122, N1 is N-26, shift_letter(T, N1, U), !.
  28. shift_letter(T, N, U) :- U is T+N.