Facebook
From Maciek, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 136
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <cstdlib>
  5. #include <ctime>
  6.  
  7. using namespace std;
  8.  
  9. string tekst, tekst2, h[4];
  10. int losowa;
  11.  
  12.  
  13. int main(){
  14.  
  15.     srand(time(NULL));
  16.     fstream plik;
  17.     plik.open("output.txt");
  18.     getline(plik, tekst);//pobiera pierwszą linie
  19.     getline(plik, tekst2);//pobiera drugą linie
  20.     int len1 = tekst.length(), len2 = tekst2.length();// wpisanie długości linii do zmiennych, w celu późniejszej manipulacji tekstem.
  21.  
  22.  
  23.  
  24.  //kodowanie pierwszej linii
  25.  
  26.      for (int i = 0; i < len1/2; i++) {//kodowanie pierwszej połowy drugiej linii, warunek umożliwa ucięcie linii w połowie
  27.         tekst[i] += 3;// zmiana znaku o +3
  28.         h[0] += tekst[i];//wpisanie połowy do tablicy
  29.         cout << tekst[i];// wypisuję literka po literce w zmienionej postaci
  30.     }cout << endl;
  31.  
  32.      for (int j = len1 / 2; j < len1; j++) {//kodowanie drugiej połowy pierwszej linii, warunek umożliwa pominięcie pierwszej połowy linii
  33.         tekst[j] -= 3; // zmiana znaku o -3
  34.         h[1] += tekst[j];//wpisanie połowy do tablicy
  35.         cout << tekst[j];// wypisuję litera po literze w zmienionej postaci
  36.     }cout << endl;
  37.  
  38. //kodowanie drugiej linii
  39.  
  40.      for (int i = 0; i < len1 / 2; i++) {//kodowanie pierwszej połowy drugiej linii, jw.
  41.         if ((rand() % 10) + (-5) == 0) {// warunek wyłączający zero z zakresu losowanych liczb
  42.            losowa = (rand() % 10) + (-5);// w przypadku, gdy wylosowana była równa 0 powtarza losowanie + wpisanie pseudolosowej liczby do zmiennej
  43.         }
  44.         else {
  45.            losowa = (rand() % 10) + (-5);// wpisanie pseudolosowej liczby do zmiennej w przypadku, gdy wylosowana nie była zerem
  46.         }
  47.         tekst[i] += losowa; // zmiana znaku o wylosowaną liczbę
  48.         h[2] += tekst[i];//wpisanie połowy do tablicy
  49.         cout << tekst[i];// wypisuję litere w zmieionej postaci
  50.     }cout << endl;
  51.  
  52.      for (int j = len1 / 2; j < len1; j++) {//kodowanie drugiej połowy drugiej linii, jw.
  53.         if (((rand() % 10) + (-5))%2 == 0) {//warunek wyłączający liczby parzyste z zakresu losowanych liczb
  54.             losowa = (rand() % 10) + (-5);// w przypadku, gdy wylosowana była parzysta powtarza losowanie + wpisanie pseudolosowej liczby do zmiennej
  55.         }
  56.         else {
  57.             losowa = (rand() % 10) + (-5);// wpisanie pseudolosowej liczby do zmiennej w przypadku, gdy wylosowana była nieparzysta
  58.         }
  59.         tekst[j] -= losowa;//zmiana znaku o wylosowwaną liczbę
  60.         h[3] += tekst[j];//wpisanie połowy do tablicy
  61.         cout << tekst[j];//wypisuję literę w zmieionej postaci
  62.     }cout << endl;
  63.  
  64.      ofstream zakodowany;
  65.      zakodowany.open("exit.txt");//utworzenie+otwarcie pliku exit.txt
  66.      for (int i = 0; i < 4; i++) {//warunek umożliwa wykonanie się pętli 4 razy, w celu wypisania zawartości tablic do pliku tekstowego.
  67.          zakodowany << h[i] << endl;
  68.      }
  69.      zakodowany.close();//zakończenie zapisu w pliku exit.txt + jego zamknięcie
  70.  
  71.      return 0;
  72. }