Názory ke článku Programování v praxi - 3.díl – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Programování v praxi - 3.díl – Programujte.comNázory ke článku Programování v praxi - 3.díl – Programujte.com

 

Názory ke článku Programování v praxi - 3.díl

master   NOVÝ
25. 3. 2007

To existuje v pascalu proměnná typu text?

Bummer   NOVÝ
25. 3. 2007

Ano. Je to typ specialne urceny pro praci s textovym souborem.

4Dracker: Jses prvni, koho vidim, ze pouziva vnorene procedury. Podle me to dela v programu akorat binec, je lepsi to cele uzavrit do nejake samostetne jednotky a pak pristupovat pres uses.

Dracker   NOVÝ
25. 3. 2007

To jo, ale myslim že je to zbytečný u programu s 250 řádky.

ChaoticRoman   NOVÝ
25. 3. 2007

1.) No, to odsazení je strašné...
2.) řetězec v úvozovkách? snad apostrofy, ne?
3.) středník za begin?
4.) když má vystupden obsahovat odinální hodnoty znaků, proč je tam integer a ne byte?
5.) write(jmeno,chr( vystupden[J])); při součtu ord. hodnoty a kódu vyšším než 255 hodí chybu
6.) proč nejde jmeno výstupniho souboru zadat? každý si to tak upraví!
7.) vysvětlovat I:=1; nebo I:=I+1;? proč?
8.) navíc je to celkově strašný šifrovací algoritmus, první co zkusí někdo je posunutí a když zkusí všech 255 (s PC žádný problém), uvidí že sudé znaky jsou ok, při jednom a liché při jiném a má výsledek. Pošli mi smysluplný text zašifrovaný touhle metodou a vrátím rozšifrovaný text a oba klíče!

hrach   NOVÝ
25. 3. 2007

To ChaoticRoman: nestudoval jsem článek, ale řeknu ti to takhle.. pošli mi šifru, kterou nikdo neprolomí ;) :-P

ogara   NOVÝ
25. 3. 2007

Můžete mi někdo povědět, proč, když zadám textbackground(white+blink), pozadí nebliká?
Díky

tommz9   NOVÝ
25. 3. 2007

To ti asi nepošle, ale může ti poslat šifru kterou ty a ani dalších 99% lidí nebude schopno prolomit ...

Jinak mi taky tenhle článek přijde jako zajímavý ... vtip.

Dracker   NOVÝ
25. 3. 2007

1. Neučím tady jak správně odsazovat a upravovat podobu zdrojového kódu.
2. To je moje chyba, opravím
3. Může být ale nemusí
4. Protože když tam uložím ordinální hodnotu znaku a k ni přičtu hodnotu třeba 1234 tak už se do byte nevejde.
5. Nehodí, mám odskoušeno (Borland Pascal 7)
7. Třeba to někomu není jasné :)
8. Nikde sem neřek že to je extra bezpečný algoritmus. Jde hlavně o to, vysvětlit některé příkazy a programovací postupy.

ChaoticRoman   NOVÝ
25. 3. 2007

Co třeba šifrovací mřížka? třeba z těch jednoduchých na pochopení. když má 12x12 polí, kde je +/- 10E20 možností, nepomůže ani superPC.

ChaoticRoman   NOVÝ
25. 3. 2007

Já vím, neber si to zle... určitě je to přínosný seriál, ale kdyby sis dal 10 minut (s takovým kouskem víc ne) a všechno to odsadil podle hierarchie, vypadalo by to daleko líp a hlavně by to bylo přehlednější... s tím 4. bodem, když přičteš na víc než 255, už to nepujde převézt na znak, ne? převádět to na hodnotu (A mod 256) by to vyřešilo... budu sledovat i dál.

Laaca   NOVÝ
8. 4. 2007

Pozadí nebliká. Bliká popředí. Proto se atribut blikání nastavuje u TextColor - tedy: TextColor(white+blink)

Laaca   NOVÝ
8. 4. 2007

Teda naprogramovaný je to děsně.
Nejhůř je udělaná procedura Nacteni.

Načítání textu přes syrový ReadKey je hodně pochybný, protože nebereš v úvahu, že ReadKey někdy vrací jeden znak, jindy dva znaky a že reaguje i na jiné klávesy než písmenka. Proto musíš ReadKey obalit do obslužné funkce:



Function Klavesa:word;
var c:char;
begin
c:=ReadKey;
if c=0 then Klavesa:=256+word(ReadKey) else Klavesa:=word(c);
end;


Vlastní procedura Nacteni potom úplně nesmyslně využívá cyklus s podmínkou na začátku. Daleko lepší je v tomhle případě cykl REPEAT-UNTIL. Například takhle:


Procedure Nacteni;
var w:word;
begin
ClrScr;
i:=0;
repeat
w:=Klavesa;
if (w>31) {pod 32 jsou znaky CTRL+neco, je lepsi je ignorovat}
and
(w<256) {nad 255 jsou sipky, eFka a podobne, je lepsi je ignorovat}
then
begin
i:=i+1;
vstupden[i]:=char(w);
write(vstupden[i]);
end;
until w=13;
writeln;
writeln;
end;

Zápis if J mod 2=0 je lepší nahradit if odd(j)
Celý algoritmus kódování je ovšem pochybný. Nejde o to, že je dost slabý, ale je celkem šílený, že se dvojnásobně zvětší velikost textu v paměti po zakódování. (z typu char na typ integer)


Mircosoft   NOVÝ
27. 4. 2007

Neprolomitelná šifra existuje a její neprolomitelnost je matematicky dokázána. Jmenuje se Vernamova šifra a je založená na bitové operaci xor.
Mám zdrojový text a klíč, oba třeba stringy.

for i:=1 to length(vstup) do

vystup[i]:=vstup[i] xor klic[i mod length(klic)];

A to je celé. Dešifrování se provede úplně stejným přexorováním výstupu původním klíčem.
A ta neprolomitelnost? Když mám klíč stejně dlouhý jako vstupní text (a je složen z dostatečně neuhodnutelných znaků), můžu vyzkoušet jakýkoli klíč a z něj mi může vyjít naprosto jakákoli zpráva. Když si vymyslím vhodný klíč, tak bude zpráva i čitelná a smysluplná, ale nikdy nezjistím, jestli to byla ta, kterou autor původně zašifroval.

Mircosoft   NOVÝ
27. 4. 2007

Nějak se ten kód špatně zobrazuje (bez hranatých závorek). Takže pokus č. 2:

for i:=1 to length(vstup) do

vystup[ i ]:=vstup[ i ] xor klic[ i mod length(klic) ];

Přidej svůj názor

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý