View difference between Paste ID: XN5Fsu0w and 1dhjj12p
SHOW: | | - or go back to the newest paste.
1
#include <iostream>
2
#include <string>
3
4
using namespace std;
5
6
string zakoduj_wiadomosc(string wiadomosc) 
7
{
8
    string zakodowana = "";
9
    string alfabet = "abcdefghijklmnopqrstuvwxyz";
10
    for (int i = 0; i < wiadomosc.length(); i++) 
11
    {
12
        if (wiadomosc[i] >= 'a' && wiadomosc[i] <= 'z') 
13
        {
14
            int index = wiadomosc[i] - 'a';
15
            // Przesunięcie o 1 wstecz bez używania modulo
16
            if (index == 0) 
17
            {
18
                index = 25; // przesunięcie 'a' na 'z'
19
            } else 
20
            {
21
                index = index - 1;
22
            }
23
            zakodowana += alfabet[index];
24
        } else {
25
            // Pozostaw inne znaki bez zmian
26
            zakodowana += wiadomosc[i];
27
        }
28
    }
29
    return zakodowana;
30
}
31
32
// Funkcja do dekodowania wiadomości
33
string odkoduj_wiadomosc(string wiadomosc) 
34
{
35
    string odkodowana = "";
36
    string alfabet = "abcdefghijklmnopqrstuvwxyz";
37
    for (int i = 0; i < wiadomosc.length(); i++) 
38
    {
39
        if (wiadomosc[i] >= 'a' && wiadomosc[i] <= 'z') 
40
        {
41
            int index = wiadomosc[i] - 'a';
42
            // Przesunięcie o 1 do przodu bez używania modulo
43
            if (index == 25) 
44
            {
45
                index = 0; // przesunięcie 'z' na 'a'
46
            } else 
47
            {
48
                index = index + 1;
49
            }
50
            odkodowana += alfabet[index];
51
        } else {
52
            // Pozostaw inne znaki bez zmian
53
            odkodowana += wiadomosc[i];
54
        }
55
    }
56
    return odkodowana;
57
}
58
59
int main() 
60
{
61
    string wiadomosc;
62
    int wybor;
63
64
    cout << "Witaj w programie 'Łamacz kodów'!" << endl;
65
    cout << "Wybierz operację: \n1. Zakoduj wiadomość\n2. Odkoduj wiadomość\nWybór: ";
66
    cin >> wybor;
67
    cin.ignore();  // Usuwa znak nowej linii z bufora po cin
68
69
    cout << "Wprowadź wiadomość: ";
70
    getline(cin, wiadomosc);
71
72
    if (wybor == 1) 
73
    {
74
        string zakodowanaWiadomosc = zakoduj_wiadomosc(wiadomosc);
75
        cout << "Zakodowana wiadomość: " << zakodowanaWiadomosc << endl;
76
    } else if (wybor == 2) 
77
    {
78
        string odkodowanaWiadomosc = odkoduj_wiadomosc(wiadomosc);
79
        cout << "Odkodowana wiadomość: " << odkodowanaWiadomosc << endl;
80
    } else 
81
    {
82
        cout << "Nieprawidłowy wybór." << endl;
83
    }
84
85
    return 0;
86
}