24.2.3.24010540. Napisati program koji traži od korisnika unos rečenice, a koji zatim ispisuje istu rečenicu šifriranu Cezarovom šifrom. Cezarova šifra spada u najstarije poznate sisteme šifrovanja, prema kojoj se svaki znak izvorne rečenice zamijenjuje sa znakom koji se po abecedi nalazi 3 znaka ispred (uz izuzetak posljednja tri znaka abecede, koji se mijenjaju sa prva tri znaka abecede), odnosno zamjena se vrši prema sljedećoj tablici:

Znaci koji nisu slova ostaju neizmijenjeni. Na primjer, ukoliko izvorna rečenica glasi “DANAS JE ZADNJI DAN LJETA”, šifrovana rečenica će glasiti “GDQDV MH CDGQML GDQ OMHWD”. Radi jednostavnosti, sve očitane znakove pretvarajte u velika slova. Uputa: ASCII šifre svih znakova u opsegu od „A‟ do „W‟ treba povećati za 3, a ASCII šifre znakova u opsegu od „X‟ do „Z‟ treba umanjiti za 23.

Opis rješenja:

Listing programa:

#include <iostream>
#include <conio.h>
#include <cctype>
using namespace std;
int main()
{
    char x;
    while((x=cin.get())!='\n')
    {
        if((x>='A'&&x<'X')||(x>='a'&&x<'x'))
            cout <<char(3+int(toupper(x)));
        else if(x=='X'||x=='Y'||x=='Z'||x=='x'||x=='y'||x=='z')
            cout <<char(int(toupper(x))-23);
        else
            cout <<char(toupper(x));
    }
    getch();
    return 0;
}

Ispis na ekranu:

Riješeni zadaci 2    Index