Šifrování

Čas na další projekt! Tento miniprojekt využije řetězce a funkce z posledních dvou lekcí a k tomu všechno, co jste se naučili před nimi. Stejně jako v předchozích miniprojektech pokyny říkají, co má program vypsat, a každé cvičení spustí váš program i s jinými daty.

Projekt. S kamarádem si posíláte tajné zprávy. Ve třech cvičeních váš program zprávu zašifruje, rozšifruje kamarádovu odpověď a nakonec prolomí zprávu, jejíž klíč neznáte.

Šifra. Použijete jednu z nejstarších šifer, kterou prý používal už Julius Caesar: každé písmeno se posune o několik míst dál v abecedě. S posunem 3 se z a stane d, z b se stane e a tak dál. Na konci abecedy se pokračuje znovu od začátku: z x se stane a, z y b a ze z c. Velká písmena zůstanou velká a všechno, co není písmeno, třeba mezery, číslice a interpunkce, zůstane, jak je. Šifra počítá s anglickou abecedou, a proto jsou zprávy bez diakritiky.

Data. Pole zprava obsahuje zprávu a posun říká, o kolik míst se každé písmeno posune. Program musí fungovat i pro jiné zprávy a pro jakýkoli posun od 1 do 25.

Úkol. Vypište zprávu a pod ni zašifrovanou zprávu:

Zpráva: Sejdeme se v zoo u zirafy
Zašifrováno: Vhmghph vh y crr x cludib

Tip: napište funkci, která posune jedno písmeno a vrátí to nové. Budete ji potřebovat i v dalších dvou cvičeních. Znak je číslo (vzpomeňte si na lekci o proměnných), takže s ním můžete počítat, a % vás vrátí na začátek abecedy. Funkce z ctype.h vám řeknou, jestli je znak písmeno a jestli je velké.

Pokyny

Vypište zprávu a zašifrovanou zprávu, stejně jako v ukázce.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

1/3