Advertisement
ada1711

KzG - CPP (v1)

Dec 31st, 2023
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. string zakodujWiadomosc(string wiadomosc) {
  7.     string zakodowana = "";
  8.     string alfabet = "abcdefghijklmnopqrstuvwxyz";
  9.     for (int i = 0; i < wiadomosc.length(); i++) {
  10.         if (wiadomosc[i] >= 'a' && wiadomosc[i] <= 'z') {
  11.             int index = wiadomosc[i] - 'a';
  12.             // Przesunięcie o 1 wstecz bez używania modulo
  13.             if (index == 0) {
  14.                 index = 25; // przesunięcie 'a' na 'z'
  15.             } else {
  16.                 index = index - 1;
  17.             }
  18.             zakodowana += alfabet[index];
  19.         } else {
  20.             // Pozostaw inne znaki bez zmian
  21.             zakodowana += wiadomosc[i];
  22.         }
  23.     }
  24.     return zakodowana;
  25. }
  26.  
  27. // Funkcja do dekodowania wiadomości
  28. string odkodujWiadomosc(string wiadomosc) {
  29.     string odkodowana = "";
  30.     string alfabet = "abcdefghijklmnopqrstuvwxyz";
  31.     for (int i = 0; i < wiadomosc.length(); i++) {
  32.         if (wiadomosc[i] >= 'a' && wiadomosc[i] <= 'z') {
  33.             int index = wiadomosc[i] - 'a';
  34.             // Przesunięcie o 1 do przodu bez używania modulo
  35.             if (index == 25) {
  36.                 index = 0; // przesunięcie 'z' na 'a'
  37.             } else {
  38.                 index = index + 1;
  39.             }
  40.             odkodowana += alfabet[index];
  41.         } else {
  42.             // Pozostaw inne znaki bez zmian
  43.             odkodowana += wiadomosc[i];
  44.         }
  45.     }
  46.     return odkodowana;
  47. }
  48.  
  49. int main() {
  50.     string wiadomosc;
  51.     int wybor;
  52.  
  53.     cout << "Witaj w programie 'Łamacz kodów'!" << endl;
  54.     cout << "Wybierz operację: \n1. Zakoduj wiadomość\n2. Odkoduj wiadomość\nWybór: ";
  55.     cin >> wybor;
  56.     cin.ignore();  // Usuwa znak nowej linii z bufora po cin
  57.  
  58.     cout << "Wprowadź wiadomość: ";
  59.     getline(cin, wiadomosc);
  60.  
  61.     if (wybor == 1) {
  62.         string zakodowanaWiadomosc = zakodujWiadomosc(wiadomosc);
  63.         cout << "Zakodowana wiadomość: " << zakodowanaWiadomosc << endl;
  64.     } else if (wybor == 2) {
  65.         string odkodowanaWiadomosc = odkodujWiadomosc(wiadomosc);
  66.         cout << "Odkodowana wiadomość: " << odkodowanaWiadomosc << endl;
  67.     } else {
  68.         cout << "Nieprawidłowy wybór." << endl;
  69.     }
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement