Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
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í
+1 bodů
Ř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.