NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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í.

Diskuze – Lekce 11 - Textové řetězce v C# podruhé - Práce s jednotlivými znaky

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
samo007
Tvůrce
Avatar
samo007:12.2.2013 16:54

A prečo nemôžme nechať tie divné znaky, keď to ide rozšifrovať? Aspoň to bude presné a ten, kto sa k šifre dostane, nebude ju môcť rozlúštiť :D
Čo tak to zauzliť? (skúste si moju šifru)

// premenné
string s = "Povodňová aktivita a selzmické vlny.";
Console.WriteLine("Pôvodná správa: {0}", s);
string sprava = "";
int posun = 1;
int posun2 = 2;

// cyklus prechádzajúci jednotlivé znaky
foreach (char c in s)
{
    int i = (int)c;
    i += posun;
    i *= posun2;
    i -= (2 + posun);
    char znak = (char)i;
    sprava += znak;
}
Console.WriteLine("Zašifrovaná správa: {0}", sprava);

// premenné pre rozšifrovanie
string z = sprava;
sprava = "";

// cyklus pre rozšifrovanie
foreach (char c in z)
{
    int i = (int)c;
    i += (2 + posun);
    i /= posun2;
    i -= posun;
    char znak = (char)i;
    sprava += znak;
}
Console.WriteLine("Rozšifrovaná správa: {0}", sprava);
Console.ReadKey();
Editováno 12.2.2013 16:55
 
Odpovědět
12.2.2013 16:54
Avatar
burdacz
Neregistrovaný
Avatar
burdacz:25.2.2013 14:10

Ještě bych na místo

string s = "Programátor se zasekne ve sprše, protože instrukce na šampónu byly: Namydlit, omýt, opakovat.";
Console.WriteLine(s);

použil

Console.WriteLine("Napiste slovo, vetu nebo souveti.");
      string s = Console.ReadLine();
:)
 
Odpovědět
25.2.2013 14:10
Avatar
Odpovídá na
Luboš Běhounek Satik:25.2.2013 14:14

Já bych použil

const string s = "Programátor se zasekne ve sprše, protože instrukce na šampónu byly: Namydlit, omýt, opakovat.";
Console.WriteLine(s);
:)
Odpovědět
25.2.2013 14:14
https://www.facebook.com/peasantsandcastles/
Avatar
Jan.Nygdo
Člen
Avatar
Odpovídá na mienkofax
Jan.Nygdo:12.3.2013 10:54

Ma to byt:

// hlavní cyklus
foreach (Char c in s)
{
  if (samohlasky.Contains(c.ToString()))
    pocetSamohlasek++;
  else
    if (souhlasky.Contains(c.ToString()))
      pocetSouhlasek++;
}
 
Odpovědět
12.3.2013 10:54
Avatar
Petr
Neregistrovaný
Avatar
Petr:13.3.2013 16:13

Prosim Vás, neví někdo jak by se dal tento program přepsat, abych mohl načíst text z textovyho souboru a v tomto texte by program prehazel vety ? Popripade slova ?

 
Odpovědět
13.3.2013 16:13
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:13.3.2013 17:26

Podíve jse zde na zdější tutoriálay o práci se soubory :)http://www.it­network.cz/cshar­p/soubory

Odpovědět
13.3.2013 17:26
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
NutelaCZ
Člen
Avatar
NutelaCZ:14.9.2013 22:33

Dobrý den,
mám problém v posledním kroku Cézarovy šifry, a netuším jak ho vyřešit. Jde o to ,že i když jsem do kódu vložil

// kontrola přetečení
if (i > (int)'z')
        i -= 26;
char znak = (char)i;
zprava += znak;

vždy my výsledek výjde s ASCII hodnotou. Prosím mohl by mi někdo vysvětlit co je špatně? moc děkuji.

Celý kód:

string s = "Zebra";
            Console.WriteLine("Původní zpráva {0}", s);
            string zprava = "";
            int posun = 1;

            foreach (char c in s)
            {
                int i = (int)c;
                i = i + posun;
                if (i > (int)'z')
                {
                    i = i - 26;
                }
                char znak = (char)i;
                zprava = zprava + znak;
            }
            Console.WriteLine("Zašifrovana zprava {0}", zprava);
            Console.ReadKey();
 
Odpovědět
14.9.2013 22:33
Avatar
Kit
Tvůrce
Avatar
Odpovídá na NutelaCZ
Kit:14.9.2013 23:15

Zajímavé. Když jsem to od tebe zkopíroval, tak mi to funguje jak má. Musíš tam mít ještě nějakou odlišnost, protože to co jsi poslal, je v pořádku.

http://www.itnetwork.cz/dev-lighter/201

Editováno 14.9.2013 23:17
Odpovědět
14.9.2013 23:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
NutelaCZ
Člen
Avatar
NutelaCZ:15.9.2013 13:07

Ahá tak jsem na to přišel kde je chyba, jelikož jsem zadal Zebra s velým Z tak to bralo jeho ASCII hodnotu jako 90 a psalo to následný znak [, teť jsem to přepsal s malým z a užto funguje jak má :)

Děkuji za pomoc :)

 
Odpovědět
15.9.2013 13:07
Avatar
Kit
Tvůrce
Avatar
Odpovídá na NutelaCZ
Kit:15.9.2013 13:28

Zkus se podívat i na redukovanou verzi, která dělá totéž.
http://www.itnetwork.cz/dev-lighter/201

Odpovědět
15.9.2013 13:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 10 zpráv z 115.