Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Tomáš Koubek:15.4.2016 20:05

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.4.2016 20:05
Avatar
Odpovídá na Tomáš Koubek
sadlomaslox25:15.4.2016 21:13

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.4.2016 21:13
Avatar
Odpovídá na sadlomaslox25
Tomáš Koubek:15.4.2016 23:36

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

 
Nahoru Odpovědět
15.4.2016 23:36
Avatar
Odpovídá na sadlomaslox25
Tomáš Koubek:15.4.2016 23:51

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.4.2016 23:51
Avatar
Milan Suchomel:16.4.2016 0:25

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.4.2016 0:25
Avatar
Odpovídá na Milan Suchomel
Milan Suchomel:16.4.2016 1:30
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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
16.4.2016 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.