Advertisement
ada1711

KzG - CPP (v2)

Jan 10th, 2024
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.36 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement