Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Szyfr Polibiusza

Ostatnio zmodyfikowano 2018-05-23 22:32
Autor Wiadomość
Smegmiarz
Temat założony przez niniejszego użytkownika
[C++] Szyfr Polibiusza
» 2018-05-22 23:00:44
Próbuję napisać szyfr Polibiusza ( szachownica Polibiusza) możliwie najprościej. Chcę przyporządkować litery A-Z odpowiednio "11"-"45" z "tabela". Po wpisaniu tekstu mają się wyświetlić odpowiednie cyfry zamiast liter. Ktoś pomoże ?

C/C++
#include<iostream>

using namespace std;

int main()
{
    string tekst;
    int x;
   
    cout << "Tekst: " << endl;
    cin >> tekst;
   
    //int tabela[] = {11,12,13,14,15,21,22,23,24,24,25,31,32,33,34,35,41,42,43,44,45};
    string tabela[] = { "11", "12", "13", "14", "15", "21", "22", "23", "24", "24", "25", "31", "32", "33", "34", "35", "41", "42", "43", "44", "45" };
    string tabela2[] = { };
    for( int i = 0; i <= tekst.length(); i++ ) {
        if( tekst[ i ] >= 65 && tekst[ i ] <= 90 )
             tabela2[ i ] = tabela[ int(( tekst[ i ] - 65 ) ) ];
       
    }
    cout << tekst << endl;
   
    for( int i = 0; i <= tekst.length(); i++ )
         cout << tabela2[ i ] << endl;
   
    return 0;
}
P-171239
pekfos
» 2018-05-22 23:04:01
A problem masz z..?
P-171240
YooSy
» 2018-05-23 07:53:13
Robisz tablice
int numbers[]
 z watościami, które cię interesują.
Następnie robisz tablicę znaków, np.
char characters[]
 lub używasz zwykłego
std::string
,
który jest właśnie tablicą znaków i nadajesz mu odpowiednie wartości. Pod tym samym indeksem, muszą pasować
do siebie wartości z obu tablic.
Na koniec pobierasz tekst od użytkownika do stringa i czytasz go znak po znaku,
konwertując na liczbę, czyli szukasz indeksu w swojej tablicy znaków tego znaku i wypisujesz
liczbę z tablicy liczb spod znalezionego indeksu.
P-171241
maly7
» 2018-05-23 17:15:06
string tabela2[] = { };

Jaki to ma rozmiar?
P-171242
Smegmiarz
Temat założony przez niniejszego użytkownika
» 2018-05-23 22:18:03
Tak, mógłbym to tak zrobić YooSy ale spróbuje ogarnąć co u mnie jest źle.
P-171243
pekfos
» 2018-05-23 22:32:29
C/C++
string tabela2[] = { };
Błędna tablica. Tu nawet nie potrzebujesz tablicy. Po prostu dopisuj wyniki na koniec jednego stringa.

C/C++
for( int i = 0; i <= tekst.length(); i++ )
Zły operator. Długość napisu ma być nieosiągalna dla i.

możliwie najprościej.
C/C++
string tabela[] = { "11", "12", "13", "14", "15", "21", "22", "23", "24", "24", "25", "31", "32", "33", "34", "35", "41", "42", "43", "44", "45" };
O ile to może być 'proste', krócej zapiszesz to faktyczną arytmetyką, a nie tablicą z kolejnymi liczbami.
P-171244
« 1 »
  Strona 1 z 1