Ocena użytkownikóww: ***** / 3
Nadesłany przez Kamil Konieczka, 26 czerwca 2010 04:31
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
macierz_cpp/KryptoA.cpp:
#include "KryptoA.h"
void kodujtekst(void) // procedura wykorzystująca krypto
{
char *tab;
string str;
cout << "Wpisz tekst do kodowania:" << endl << endl;
getline (cin,str);
int length = obliczwymiar(str.length());
int len= length*length;
tab = new char[len+1];
str.copy(tab,str.length(),0);
for(int i=str.length(); i<len+1; i++)
tab[i]=' ';
krypto(tab,str.length());
tab[len]='\0';
cout << "\n" << tab;
krypto(tab,str.length());
tab[len]='\0';
cout << "\n\n" << tab;
delete tab;
}
void krypto(char tab[], int lendata)
{
int k, size=obliczwymiar(lendata);
char **tmp = new char*[size];
for (int x=0; x<size; x++)
{
tmp[x] = new char[size];
}
k=0;
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
tmp[i][j]=tab[k];
k++;
}
}
k=0;
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
tab[k]=tmp[j][i];
k++;
}
}
for (int x=0; x<size; x++)
delete []tmp[x];
delete []tmp;
}
int obliczwymiar(double dlg)
{
int a=(int)sqrt(dlg);
if((a-sqrt(dlg))!=0) return a+1;
else return a;
}