ROT13 kodeering

Internetisuhtluses tekib vahel vajadus esitada osa avalikust infost säärasel kujul, et erinevad otsingu- ja spämmirobotid seda lugeda ei suudaks. Näiteks avalikesse uudisgruppidesse postitades oleks kasulik oma e-posti aadressi muuta sääraselt, et mitmesugused veebist meiliaadresse otsivad agendid seda kasutada ei saaks. Samas peaks olema kõigil soovijatel võimalikult lihtne esialgne aadress taastada.
Üheks võimaluseks on kasutada nn. ROT12 kodeeringut, mille aluseks on andmete teisendamine, kasutades inglise tähestikku abcdefghijklmnopqrstuvwxyz. ROT13 puhul asendatakse kodeeritava teksti iga täht temast tähestikus 13 märki tagapool oleva sümboliga. Kui märgi “nihutamise” käigus tähestik vahepeal otsa saab, alustatakse uuesti tähestiku esimesest tähest.
Näiteks

Hello World -> ROT13 -> Uryyb Jbeyq

Nihkeks valitud ühik 13 annab võimaluse ühte ja sama programmikoodi kasutada nii kodeerimiseks kui dekodeerimiseks.
Oluline on seejuures meeles pidada, et ROT13 ei taga mingil viisil info salastatust. ROT13 on teada-tuntud andmeteisenduse viis, mida saab iga üks kas või lihtsalt katse-eksituse meetodil suvalise märgijada peal proovida, mistõttu ei saa seda kasutada väärtusliku info edastamiseks.

Ülesanne

  1. Kirjutada programm, mis loeb sisestatud märgijada, kodeerib selle ROT13 algoritmiga ning trükib tulemuse ekraanile.
  2. Ülesanne tuleb lahendada algoritmiliselt, mingeid standardfunktsioone kasutada ei tohi.
  3. Programm peab sisaldama elementaarset veatöötlust (kui sisestatud ei ole midagi, kui kodeerimine ebaõnnestub vmt.).