Hej, potrzebuje pomocy w naprawieniu tego programu. Po uruchomieniu wyświetla się masa błędów, a ja nie potrafię ich naprawić. Od razu poinformuje, że nie znam się na programowaniu i pisanie uwag w stylu "musisz zmienić komendę" itp nie będą mi pomocne bo po prostu nie rozumiem ich. Moja prośba to poprawienie kodu programu tak aby działał.
Jak ma wyglądać program/co ma robić:
użytkownik podaje tekst jawny, zapisany bez spacji, a program będzie szyfrować test wybranym przez użytkownika
szyfrem: albo metodą kolumnową, albo szyfrem Cezara. Wybór szyfru powinien być
dokonywany już po uruchomieniu programu
to co udało mi się napisać ale nie działa:
#include<iostream>
using namespace std;
int main() {
cout << "WYBIERZ: 1- SZYFR CEZARA, 2- SZYFR KOLUMNOWY";
int szyfr;
cin >> szyfr;
switch(szyfr)
{
case 1:
void szyfruj(char tab[])
{
int i=0;
while(tab[i])
{
if(tab[i] == 'X') tab[i] = 'A'; else
if(tab[i] == 'Y') tab[i] = 'B'; else
if(tab[i] == 'Z') tab[i] = 'C'; else
if(tab[i]<'X') tab[i]+=3;
++i;
}
}
int main()
{
char tab[1001]; //tablica znaków - max 1000 znaków
cout<<"Podaj wyraz składający się z dużych liter: ";
cin>>tab;
szyfruj(tab); //szyfrowanie
cout<<"Po zaszyfrowaniu: "<<tab<<endl;
}
break;
case 2:
string szyfrowanieSymetryczne (string wyraz, int n, int klucz[])
{
int wiersze, k{0}; // k -> numer pozycji na stringu
if (wyraz.size()%n==0) wiersze=wyraz.size()/n;
else if (wyraz.size()%n!=0) wiersze=wyraz.size()/n+1;
char tab[wiersze][n];
///////// INICJALIZACJA TABLICY (WYPELNIENIE X'AMI) //////
for (int i=0; i<wiersze; i++)
{
for (int j=0; j<n; j++)
{
tab[i][j]='X';
}
}
//////// WLASCIWE WYPELNIENIE TABLICY ////////
for (int i=0; i<wiersze; i++)
{
for (int j=0; j<n&&k<wyraz.size(); j++, k++)
{
tab[i][j] = wyraz[k];
}
}
/////// WYSWIETLENIE TABLICY //////
for (int i=0; i<wiersze; i++)
{
for (int j=0; j<n; j++)
{
cout<<tab[i][j]<<'\t';
}
cout<<endl;
}
/////// SZYFROWANIE TABLICY ////////
string wynik{""};
for (int i=0; i<n; i++)
{
int k = klucz[i];
for (int j=0; j<wiersze; j++)
{
wynik+=tab[j][k];
}
}
return wynik;
}
int main ()
{
string wyraz;
int n = 3; // n -> liczba kolumn
int klucz[n]{2,1,0}; // klucz -> 2|1|0
cout<<"PODAJ WYRAZ: "; cin>>wyraz;
for (auto & c: wyraz) c = toupper(c); //konwersja na wielkie litery
cout<<szyfrowanieSymetryczne(wyraz, n, klucz);
}
}
return 0
}