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

[C++]Szyfr Gaderypoluki

Ostatnio zmodyfikowano 2014-05-16 22:50
Autor Wiadomość
Amakesh
Temat założony przez niniejszego użytkownika
[C++]Szyfr Gaderypoluki
» 2014-05-16 14:56:56
Witam! Mam program, którego zadaniem jest szyfrowanie podanego przez użytkownika ciągu znaków. Niestety nie działa to dobrze np po podaniu ABCD powinnam otrzymać GBCE a dostaję GBCDD.


C/C++
#include <iostream>
#include <string>

using namespace std;

string GaDeRy( string s, string szyfr ) {
    int i, j;
   
    for( i = 0; i < s.size(); i++ ) {
        for( j = 0; j < szyfr.size(); j++ ) {
            if( s[ i ] == szyfr[ j ] && j % 2 == 0 ) {
                s[ i ] = szyfr[ j + 1 ];
            }
            if( s[ i ] == szyfr[ j ] && j % 2 != 0 ) {
                s[ i ] = szyfr[ j - 1 ];
            }
            else
                 s[ i ] = s[ i ];
           
        }
       
    }
    return s;
}



int main( int argc, char ** argv ) {
   
   
    string s, w;
    string szyfr( "GADERYPOLUKIgaderypoluki" );
    int inst;
    cout << "Podaj ciąg znaków, który ma zostać zaszyfrowany: " << "\n";
    cin >> s;
    cout << "Wybierz rodzaj szyfru: " << "\n"
    << "[1]GA-DE-RY-PO-LU-KI" << "\n"
    << "[2]PO-LI-TY-KA-RE-NU" << "\n"
    << "[3]KA-CE-MI-NU-TO-WY" << "\n";
    while( cin >> inst ) {
       
       
        switch( inst ) {
        case 1:
            GaDeRy( s, szyfr );
           
            cout << "Wynik: " << "\n";
            cout << GaDeRy( s, szyfr );
            break;
        case 2:
           
            break;
        case 3:
           
            break;
        }
       
    }
   
   
    return 0;
}
P-110113
maly
» 2014-05-16 15:29:12
Za bardzo skomlikowane, miej takiego for-a reszte spróbuj sobie dopisać.
C/C++
for( j = 0; j < szyfr.size(); j += 2 )
P-110116
Adik80
» 2014-05-16 17:40:25
Twoj algorym umozliwia wielokrotna zamiane. czyli najpierw znajdujesz D i zamieniasz na E, a potem znajdujesz E i zamieniasz spowrotem na D.
P-110125
Amakesh
Temat założony przez niniejszego użytkownika
» 2014-05-16 22:05:08
Bo tak działa ten szyfr: np słowo GAJ po zakodowaniu będzie wyglądało tak: AGJ
P-110161
Monika90
» 2014-05-16 22:50:24
Raz, to
C/C++
else
     s[ i ] = s[ i ];

jest nie potrzebne, bo to przecież nic nie robi.

A dwa, jak już znajdziesz literę i zamienisz, to przerywaj wewnętrzną pętlę za pomocą break;
P-110164
« 1 »
  Strona 1 z 1