Lab 9 – 2018

Funktsioonid: [ Link ]
Stringid: [ Link ]
Viidad: [ Link ]
Teegid: [ Link ]
ASCII table [ Link ]
Caesar Cipher [ Link ] (4.75p)

Loo programm, mis krüpteerib ja dekrüpteerib sõnumeid kasutades Caesar’i Sihvrit

Programmis peab olema vähemalt 2 funktsiooni (lisaks main-ile)
Programmis ei tohi olla globaalseid muutujaid!

Programm peaks suutma: (mida rohkem teed, seda rohkem punkte saad)

  • suurtähed [A-Z] Peab olema1p
  • väiketähed [a-z] 0.25p
  • numbrid [0-9] 0.25p
  • kirjavahemärgid ja sümbolid tuleks jätta puutumata [ \t\n\v\f,._!?:;[]()@#$%^&*+/=-`”’\] 0.25p
    Boonuspunktid:

    • toimiv menüü 0.25p
      • Saad valida kas krüpteerida või dekrüpteerida sõnumeid
    • kaitse buffer overflow vastu 0.25p
    • funktsioonidesse parameetreid andes kasutada viitasid 0.5p
    • viida aritmeetika 0.5p
    • kasutab unicode sõnesid 0.5p
    • luua võti sõnest (peab olema funktsioon) 1p
      • peab suutma usaldusväärselt looma samast sõnest sama võtme

Asjad, millele tähelepanu pöörata:

  • Kuidas lugeda sisse mitu sõna (scanf vaikimisi loeb kuni esineb whitespace)
  • Sisend tekst peab olema täpselt sama kui ‘tulem’: sisend -> krüpteeri võtmega -> dekrüpteeri võtmega -> ‘tulem’
  • Mis saab siis, kui nt. võti on 3 ja krüptitav täht on Z? z? 9?