http://kod.djpw.cz/wzed
Zdravím, zde mi to má zašifrovat text na principu Ceasarovy šifry, a vyflusne to jen samá "N"...
Zkus použít debugger a krokovat program.
hu
edit: ... a zaměř se při tom na cyklus foreach
Mimochodem tahle chyba ukazuje proč je dobré pojmenovávat proměnné tak aby bylo poznat co v nich je. Nicneříkající názvy pomocných proměnných snadno vedou ke zmatkům.
hu
#1 Montezo
První věc je, že nechápu proč ty zdrojáky nedáváš sem přes tlačítko [<?] ?
Druhá věc, ten kód jsi vymýšlel sám, nebo to podle něčeho děláš?
Třetí věc, proč nereaguješ, když ti tu někdo odpoví? Jak má ten člověk poznat jestli ti jeho vysvětlení stačilo.
Čtvrtá věc, zajímalo by mě jestli jsi už dokončil některý z projektů (testů) co tu řešíš (tak aby fungoval)?
Neodolám pokušení:
Čtvrtá věc, zajímalo by mě jestli jsi už dokončil některý z projektů (testů) co tu řešíš (tak aby fungoval)?
Asi jo, když něco chce uživatelům s Win 7 nasadit do počítače.
hu
#9 Montezo
https://pastebin.com/uhDBvYK2 - protoze to obarvuje kod
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace vzor2
{
class Program
{
static void Main(string[] args)
{
char c; // znak
int i; // ordinální (ASCII) hodnota znaku
// převedeme znak na jeho ASCII hodnotu
c = 'a';
i = (int)c;
Console.WriteLine("Znak {0} jsme převedli na ASCII hodnotu {1}", c, i);
// Převedeme ASCII hodnotu na znak
i = 78;
c = (char)i;
Console.WriteLine("ASCII hodnotu {1} jsme převedli na znak {0}", c, i);
Console.ReadKey();
//začátek druhé fáze
string s = "gaiusjuliuscaesar";
Console.WriteLine("Původní zpráva: {0}", s);
string zprava = "";
int posun = 1;
// cyklus projíždějící jednotlivé znaky
foreach (char cq in s)
{
int iq = (int)cq;
iq += posun;
// kontrola přetečení
if (iq > (int)'z')
iq -= 26;
char znak = (char)i;
zprava += znak;
}
// výpis
Console.WriteLine("Zašifrovaná zpráva: {0}", zprava);
Console.ReadKey();
}
}
}
---
Caesar pouzival to, ze zamenoval pismenka, ne? Tak by bylo asi prehlednejsi pouzivat kodovani pres neco jako mapu nebo indexovani stringu
text = "ahoj"
i = 0
char = text[i]
x = array(
'a' : 'f',
'b' : 'x', ...
)
kod = x[char]
out += kod
---
text = "ahoj"
i = 0
char = text[i]
from = "abcdef..."
to = "fx..."
index = index(char, from) // a = 0, h = 8 ...
kod = to[index]
out += kod
ale c# neznam, musel bych googlovat a zjistovat, jak se to pise. Takze to povazuj za pseudo kod.
Mimochodem...
- jestli znas ascii tabulku, tak se znak 'a' prevadi jako dekadicke cislo 65.
- a funkce int obvykle v jazycich prevadi string na cislo, pokud se v nem vyskytuje cislo int("65") = 65, int("a") = false;
Prozradím, kde je příčina výpisu stejných znaků:
// cyklus projíždějící jednotlivé znaky
foreach (char cq in s)
{
int iq = (int)cq;
iq += posun;
// kontrola přetečení
if (iq > (int)'z')
iq -= 26;
//**************************************
char znak = (char)i; //i je stale 78
//*************************************
zprava += znak;
}
hu
#16 Montezo
nechápu proč do toho motáš citaci, ale jestli ti tu něco nefunguje jako všem ostatním, tak máš buďto divný prohlížeč, nebo blbě nastavený.
Má to fungovat tak, že zmáčkneš <?, otevře se okno, do něj vložíš kód, stiskneš tlačítko vložit a je to.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku