Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.45 KB | None | 0 0
  1. //Piotr Pieprzyk L2
  2.  
  3. #include <iostream>
  4. #include<windows.h>
  5. #include <string>
  6.  
  7. using namespace std;
  8.  
  9. void szyfruj(){
  10.     string tekst;
  11.     cin.sync();
  12.     cout<<"Podaj tekst do zaszyfrowania: ";
  13.     getline(std::cin, tekst);
  14.     //zamiana na wielkie itery
  15.     for(int i = 0; i<tekst.length(); i++){
  16.         if(tekst[i]>='a' && tekst[i]<='z'){
  17.             tekst[i]-=32;
  18.         }
  19.     }
  20.     //szyfrowanie:
  21.     //  indeks rzędu - wynik dzielenia calkowitego wartosci znaku z ascii pomniejszonego o 'A'. Wynik zwiększony o 1
  22.     //  indeks kolumny - reszta z dzielenia wartości znaku z ascii pomniejszonego o 'A'. Wynik zwiększony o 1
  23.     for(int i = 0; i<tekst.length(); i++){
  24.         if(tekst[i]>='A' && tekst[i]<='I'){
  25.             cout<<int((tekst[i]-'A')/5)+1<<((tekst[i]-'A')%5)+1<<" ";
  26.         }
  27.         //obsługa J
  28.         else if(tekst[i]=='J'){
  29.             cout<<"24"<<" ";
  30.         }
  31.         //przesunięcie tablicy wstecz, zmniejszona warosc ascii o 1, algorytm ten sam
  32.         else if(tekst[i]>='K' && tekst[i]<='Z'){
  33.             cout<<int(((tekst[i]-'A'-1))/5)+1<<((tekst[i]-'A'-1)%5)+1<<" ";
  34.         }
  35.     }
  36. }
  37.  
  38. void deszyfruj(){
  39.     string tekst;
  40.     cout<<"Poprawna składnia szyfru: \"11 22 33\"\nPodaj tekst do odszyfrowania: ";
  41.     cin.sync();
  42.     getline(std::cin, tekst);
  43.     int tmp=0;
  44.     cout<<"razraz"<<tekst<<"\n";
  45.     //przechodzimy po calym szyfrze, czytamy 2 znaki, pomijamy spację
  46.     for(int i =0; i+1<tekst.length(); i+=3){
  47.         //obsługa I\j
  48.         if(tekst[i]=='2' && tekst[i+1]=='4'){
  49.             cout<<"I/J";
  50.         }
  51.         else if(tekst[i]=='2' && tekst[i+1]=='5'){
  52.             cout<<"K";
  53.         } //obliczanie wartosci ascii (pierwsza wspolrzedna* 5 + druga wspolrzedna + 65 )
  54.         else if(tekst[i]<'3' && tekst[i+1]<='5'){
  55.             cout<<char((((int)tekst[i]-48-1)*5)+((int(tekst[i+1]))-48-1)+65);
  56.         }
  57.         else if(tekst[i]<='5' && tekst[i+1]<='5'){
  58.                 cout<<char((((int)tekst[i]-48-1)*5)+((int(tekst[i+1]))-48)+65);
  59.         }
  60.         else {
  61.             cout<<" ";
  62.         }
  63.     }
  64.  
  65. }
  66.  
  67. int main()
  68. {
  69.     int opcja;
  70.     cout<<"Piotr Pieprzyk L2\n 1. Zaszyfruj.\n 2.Odszyfruj\n 0.Wyjdz\n";
  71.     cin>>opcja;
  72.  
  73.     switch(opcja)
  74.     {
  75.     case 1:
  76.         szyfruj();
  77.         break;
  78.     case 2:
  79.         deszyfruj();
  80.         break;
  81.     case 0:
  82.         exit(1);
  83.  
  84.     default:
  85.         cout<<"Podano zla opcje\n";
  86.         break;
  87.     }
  88.     return 0;
  89.  
  90.  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement