Cykliczne przesunięcie tablicy znaków.
Ostatnio zmodyfikowano 2013-12-17 19:07
dejmien Temat założony przez niniejszego użytkownika |
Cykliczne przesunięcie tablicy znaków. » 2013-12-14 21:51:57 Witam.
Kombinowałem nad cyklicznym przesunięciem tablicy znaków i nie mogę nic wykombinować. Szukałem po forach, ale tamtych rozwiązań nie rozumiem.
Np. jeśli mam taką tablice: char tablica[] = {'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'r's't'u'w'z'1'2'3'4'5'6'7'8'9};
I chciał bym ją przesunąć o dowolną liczbę to jak to wykonać? Np. jeśli mam liczbę 38 i potrzebuję wyciągnąć takowy znak z tablicy o numerze 38 to będę właśnie potrzebował takowego przesunięcia... tylko nie wiem jak to zrobić. |
|
pekfos |
» 2013-12-15 11:41:05 Np. jeśli mam liczbę 38 i potrzebuję wyciągnąć takowy znak z tablicy o numerze 38 to będę właśnie potrzebował takowego przesunięcia... |
Co ma wyciąganie wartości z tablicy, do modyfikowania kolejności elementów? |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-15 18:00:22 Nie wiem co ma wspólnego. Taką wiadomość dostałem na innym forum... Potrzebuje napisać program szyfrujący, który zaszyfruje wiadomość przy użyciu tablicy znaków np. string znaki = 'abcdefghijklmnoprstuwz123456789". Jeśli mamy liczbę 2 to druga w tablicy jest ,,c'' i to będzie szyfr dla pierwszego znaku tekstu wpisanego przez użytkownika, ale nie będę się tu zagłębiał w działanie mojego programu. Pokrótce problem tkwi w tym że jeśli program wylosuje np. mamy liczbę 40 a znaków w tablicy jest tylko 31 to program nie wyszukuje znaku. Rozwiązanie tego problemu poprzez dodanie do tablicy tych samych znaków np. znaki ="abcdefghijklmnoprstuwz123456789abcdefghijklmnoprstuwz123456789" nie działa bo później jest problem z odszyfrowaniem.
I podobno lekarstwem na mój problem jest cykliczne przesunięcie tablicy. |
|
pekfos |
» 2013-12-15 18:02:38 Nie wystarczy modulo? |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-15 19:34:09 Hmmm pekfos chodzi Ci o resztę z dzielenia tak? Tylko trzeba pamiętać że później będzie trzeba tą wiadomość odszyfrować. Szyfrowanie polega na tym że mamy np. ''tekst'' znak T jest przykładowo na pozycji 10 w tablicy znaków string. Program losuje liczbę np. 15. 15 jest dodawane do 10 i wychodzi 35. I program szuka jaki znak jest na 35 pozycji w stringu. I to jest ten szyfr. |
|
pekfos |
» 2013-12-15 19:36:17 No i da się odszyfrować. |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-15 21:19:42 No nie wiem. Weźmy taki przykład: znak ,,d'' w stringu jest na pozycji 3 i podczas odszyfrowywania będę musiał właśnie wydobyć tą liczbę 3. Losujemy dla niej liczbę np. 14, 14+3 = 17. 31%17 = 14. Na pozycji 14 znajduje się ,,o'' i to jest szyfr. (tak swoją drogą gdyby po dodawaniu liczba wyszła większa od ilości znaków w stringu to też nie wyobrażam sobie jak może wyciągnąć resztę z dzielenia 31%41.)
Teraz nie wyobrażam sobie jak to można odszyfrować nawet jeśli miało by się do pomocy i szyfr ,,o'' i nawet liczbę wylosowaną ,,14''... ale ok Ty tu jesteś ekspertem więc nie będę ,,polemizował'' na ten temat. Ale jeśli możesz to podaj rozwiązanie :-)
pozdrawiam |
|
pekfos |
» 2013-12-15 21:29:21 indeks % ilosc_znakow |
|
« 1 » 2 3 |