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

Compare with Current View Page History

« Previous Version 23 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

        Merk: funksjonen må også ta hensyn til at brukeren vil kryptere/dekryptere setninger. Hva skjer med mellomrom da? 

d)

Dekrypter setningen under. 
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