Avatar
Tomáš Koubek:

Zdravím,

potřeboval bych pomoct s prací do školy, jedná se o jednu část úkolu a to přesně:

  • generátor klíče - do numericUpDown bude uloženo náhodné číslo
  • pokud bude klíč složen z více číslic, bude šifrování probíhat tak, že se k jednotlivým znakům textu budou přičítat postupně číslice klíče, ne klíč jako celek

Příklad: pokud bude klíč 123 a text AHOJ, pak k A se přičte 1, k H 2, k O 3 a k J zase 1

Jednotlivé číslice ideálně získat přes zbytek po celočíselném dělení, tedy modulo (%). Číslo modulo 10 a máte poslední číslici. Bohužel nevím jak to zapsat :(

Přiložím i soubor, předem děkuji za každou pomoc! :)

 
Odpovědět 15. dubna 20:05
Avatar
Odpovídá na Tomáš Koubek
sadlomaslox25:

jakoze cislo 1357
1357 %10 = 7 => pole[0]=7
1357/10 = 135
135 %10 = 5 => pole[1]=5
135/10 = 13
13%10=3 => pole[2]=3
13/10 = 1
1%10 =1 => pole[3]=1
a otocit pole ?

 
Nahoru Odpovědět 15. dubna 21:13
Avatar
Odpovídá na sadlomaslox25
Tomáš Koubek:

Ano, přesně tak :) a podmínku aby cyklus skončil ve chvíli kdy "dojdou" čísla :)

 
Nahoru Odpovědět 15. dubna 23:36
Avatar
Odpovídá na sadlomaslox25
Tomáš Koubek:

Potřebuji vědět jak zapsat aby se číslo rozložilo na jednotlivé cifry (viz. odpověď Sadlomaslox25), podmínku pro ukončení cyklu a následně danou cifru přičetlo k danému písmenu (viz. příklad).

 
Nahoru Odpovědět 15. dubna 23:51
Avatar
Milan Suchomel:

Sice bez modula, ale snad ti to bude stačit

String text = "AAAAAAAAAAAA";
int klic = 1234;

char[] textArray = text.toCharArray();
char[] klicArray = String.valueOf(klic).toCharArray();

for (int i = 0; i < textArray.length; i++) {
    textArray[i] += String.valueOf(klic).charAt(i%(klicArray.length)) - '0';
}

System.out.println(String.copyValueOf(textArray));

Výsledek se převede do Stringu a výsledek je:

BCDEBCDEBCDE

 
Nahoru Odpovědět 16. dubna 0:25
Avatar
Odpovídá na Milan Suchomel
Milan Suchomel:
string text = "AAAAAAAAAAAA";
int klic = 1234;

char[] textArray = text.ToCharArray();
char[] klicArray = klic.ToString().ToCharArray();

for(int i = 0; i < text.Length; i++)
{
   textArray[i] += (char)(klicArray[i % klicArray.Length] - '0');
}

string text2 = new string(textArray);
Console.WriteLine(text2);

Nejdřív jsem si spletl téma :)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 16. dubna 1:30
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.