ĆW. 2/ 219 Informatyka Wsip

Przeanalizuj dane w tabeli i zdefiniuj funkcję szyfruj(string tekst, int klucz), której parametrami są odpowiednio ciąg małych liter alfabetu łacińskiego oraz liczba całkowita nieujemna mniejsza od 1000, a wynikiem jest tekst zaszyfrowany danym kluczem.
C++
PROSZĘ WAŻNE!


ĆW 2 219 Informatyka WsipPrzeanalizuj Dane W Tabeli I Zdefiniuj Funkcję Szyfrujstring Tekst Int Klucz Której Parametrami Są Odpowiednio Ciąg Małych Liter Alfabe class=

Odpowiedź :

Odpowiedź:

#include <iostream>

using namespace std;

char szyfruj_znak(char tekst,int klucz){

   int o_ile=klucz%31;

   for(int i=0;i<o_ile;i++) {

           if(tekst=='z') tekst=='a';

           else tekst=tekst+1;

   }

   return tekst;

}

string szyfruj(string tekst, int klucz){

   string pom="";

   for(int i=0;i<tekst.length();i++) pom=pom+szyfruj_znak(tolower(tekst[i]),klucz);

   return pom;

}

int main()

{

   string slowo;

   int klucz;

   cout<<"Podaj slowo (tylko male litery): "; cin>>slowo;

   cout<<"Podaj klucz od 1 do 1000: "; cin>>klucz;

   cout<<"Slowo zaszyfrowane: "<<szyfruj(slowo,klucz)<<endl;

}

Wyjaśnienie:

Użyty został tu szyfr Cezara.

Na przyszłość na rozszyfrowywanie, tego kodu wyżej:

char odszyfruj_znak(char tekst,int klucz){

   int o_ile=klucz%31;

   for(int i=0;i<o_ile;i++) {

           if(tekst=='a') tekst=='z';

           else tekst=tekst-1;

   }

  return tekst;

}

string odszyfruj(string tekst, int klucz){

   string pom="";

   for(int i=0;i<tekst.length();i++) pom=pom+odszyfruj_znak(tolower(tekst[i]),klucz);

   return pom;

}