Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Piotr Pieprzyk L2
- #include <iostream>
- #include<windows.h>
- #include <string>
- using namespace std;
- void szyfruj(){
- string tekst;
- cin.sync();
- cout<<"Podaj tekst do zaszyfrowania: ";
- getline(std::cin, tekst);
- //zamiana na wielkie itery
- for(int i = 0; i<tekst.length(); i++){
- if(tekst[i]>='a' && tekst[i]<='z'){
- tekst[i]-=32;
- }
- }
- //szyfrowanie:
- // indeks rzędu - wynik dzielenia calkowitego wartosci znaku z ascii pomniejszonego o 'A'. Wynik zwiększony o 1
- // indeks kolumny - reszta z dzielenia wartości znaku z ascii pomniejszonego o 'A'. Wynik zwiększony o 1
- for(int i = 0; i<tekst.length(); i++){
- if(tekst[i]>='A' && tekst[i]<='I'){
- cout<<int((tekst[i]-'A')/5)+1<<((tekst[i]-'A')%5)+1<<" ";
- }
- //obsługa J
- else if(tekst[i]=='J'){
- cout<<"24"<<" ";
- }
- //przesunięcie tablicy wstecz, zmniejszona warosc ascii o 1, algorytm ten sam
- else if(tekst[i]>='K' && tekst[i]<='Z'){
- cout<<int(((tekst[i]-'A'-1))/5)+1<<((tekst[i]-'A'-1)%5)+1<<" ";
- }
- }
- }
- void deszyfruj(){
- string tekst;
- cout<<"Poprawna składnia szyfru: \"11 22 33\"\nPodaj tekst do odszyfrowania: ";
- cin.sync();
- getline(std::cin, tekst);
- int tmp=0;
- cout<<"razraz"<<tekst<<"\n";
- //przechodzimy po calym szyfrze, czytamy 2 znaki, pomijamy spację
- for(int i =0; i+1<tekst.length(); i+=3){
- //obsługa I\j
- if(tekst[i]=='2' && tekst[i+1]=='4'){
- cout<<"I/J";
- }
- else if(tekst[i]=='2' && tekst[i+1]=='5'){
- cout<<"K";
- } //obliczanie wartosci ascii (pierwsza wspolrzedna* 5 + druga wspolrzedna + 65 )
- else if(tekst[i]<'3' && tekst[i+1]<='5'){
- cout<<char((((int)tekst[i]-48-1)*5)+((int(tekst[i+1]))-48-1)+65);
- }
- else if(tekst[i]<='5' && tekst[i+1]<='5'){
- cout<<char((((int)tekst[i]-48-1)*5)+((int(tekst[i+1]))-48)+65);
- }
- else {
- cout<<" ";
- }
- }
- }
- int main()
- {
- int opcja;
- cout<<"Piotr Pieprzyk L2\n 1. Zaszyfruj.\n 2.Odszyfruj\n 0.Wyjdz\n";
- cin>>opcja;
- switch(opcja)
- {
- case 1:
- szyfruj();
- break;
- case 2:
- deszyfruj();
- break;
- case 0:
- exit(1);
- default:
- cout<<"Podano zla opcje\n";
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement