You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Læringsmål:

  • Strenger
  • Char
  • Modulo

Pensum:

  • Kap 7

 

I disse dager er personvern på dagsorden. Det skal lages en funksjon som skal kryptere en setning ved hjelp av Cæsarshiffer. 

a)

Lag funksjonen encrypt(word, step). Parameterene er word og step. Den skal forskyve hver bokstav (char) i word med step antall tegn i alfabetet. Til høyre om step er positiv og til venstre om den er negativ.
Anta at word kun består av små bokstaver fra a til z, ingen tegn, tall o.l. 
Tips: Lek med: mod(tall + shift, 26) 

Eksempel på kjøring:

    >> encrypt('etterlatt', 10)

    ans =

    oddobvkdd

b)

Lag funksjonen decrypt(word, step). Denne skal dekryptere en tekststreng ved gitt step. 

Eksempel på kjøring:

    >> decrypt('oddobvkdd', 10)

    ans =

    etterlatt

c)

Lag funksjonen safeTalk(). Den skal gi brukeren valget mellom kryptering eller dekryptering. Deretter skal den be brukeren om en tekstreng og antall steg. Den skal returnere den krypterte eller dekrypterte strengen.

Eksempel på kjøring:

    >> safeTalk
    Vil du kryptere(k) eller dekryptere (d):
    k
    Hva vil du kryptere?:
    tusenfryd
    Hvor mange steg skal ordet skiftes?:
    1

    ans =

    uvtfogsze

d)

Lag en kode som dekrypterer tekst uten å vite steglengden. Bruk at bokstaven e er den den mest hyppige av alle bokstaver. 
Hint: Dette kan løses ved å finne den hyppigste bokstaven i strengen. Avstanden fra e til denne bokstaven er da forskyvningen.  

zmumujmz, zmumujmz, bpm nqnbp wn vwdmujmz, bpm ocvxwelmz bzmiawv ivl xtwb. q svwe wn vw zmiawv epg bpm ocvxwelmz bzmiawv apwctl mdmz jm nwzowb.
  • No labels