Category Archives: Programování

Začal jsem se učit PHP

Je to zvláštní, ale doteď v PHP nic neumím. A docela mi to vadí, tak jsem se začal učit. Nemám ambice vytvořit něco velkého, ale kdybych si chtěl občas ubastlit malý skriptík. Na weby nasazuji prověřené redakční systémy, např. WordPress.

PHP se snad nejvíce používá ze všech webových technologií. A PHP podporuje i ten nejhorší hosting zadarmo.

system(“pause”)

Nikdy jsem pořádně v C neprogramoval. Ani to pořádně neumím. Ale podle vzorové aplikace v nějakém vývojovém prostředí jsem používal system(“pause”) pro zastavení programu. A myslel jsem, že je to v pořádku, ale není. Podle seznamu věcí, kterým byste se měli v C/C++ vyhnout je to docela hrubá chyba.

Citace z článku: “Je to jako, kdybyste pro otevření dveří použili buldozer. Jde to. Klíč je ale jednodušší, čistší a lehčí řešení.”

Takže nepoužívat! Místo toho použijte while cyklus.

while(getchar() != ‘\n’);

Cyklus čeká, dokud nezmáčknete klávesu enter. Elegantní řešení.

Caesarova šifra

Caesarova šifra je jednou z nejjednodušších a nejznámějších šifer na světě. Je pojmenována podle Julia Caesara, který ji použil pro vojenskou komunikaci.

Patří do kategorie substitučních šifer. Pro názornost máme otevřený text (OT) a šifrovaný text (ŠT). A provádíme substituci, tzn., že písmeno z OT zaměníme za jiné písmeno a tím nám vznikne ŠT. Tento postup neprovádíme nahodile, ale podle nějakého klíče, postupu apod. U této šifry se používá klíč, podle kterého se posunujeme v abecedě. Například bude číslo 3 je našim klíčem, potom se písmeno A zašifruje na písmeno D. Analogicky B je E. Pracujeme s písmeny anglické abecedy, těch je 26. A jsou číslována od 0, A=0, B=1 atd.

S předchozím slovním popisem algoritmu bychom dlouho nevydrželi, proto musíme použít trochu matematiky. Ale nebojte není to těžká věc. Použijeme proměnné OT, ŠT a přidáme k, jako klíč. Text šifrujeme vztahem ŠT = (OT + k) mod 26. Až na slovo “mod” je to doufám jasné. Ihned vysvětlím: K písmenu z otevřeného textu přičteme klíč a vydělíme 26. Právě 26, protože tolik je písmen v abecedě, kterou používáme. A pozor, nás výsledek je zbytek po celočíselném dělení! Potom šifrujeme B=1 s klíčem 3, jako (1+3) / 26 = 0 a zbydou 4. Čtyřka je náš výsledek, naše písmeno v zašifrovaném textu. Tímto způsobem funguje tajemný matematický zápis. Dešifrivání je analogické OT = (ŠT – k) mod 26.

Je důležité říci, že nám musí vyjít něco v rozsahu 0 – 25, abychom to mohli převést na text. Ale co když nevyjde? Pomoc je jednoduchá, prostě přičteme číslo 26. Tato situace nastává typicky při dešifrování. Velice důležité je používat klíč v rozsahu 1 – 25, jinak by nedošlo k zašifrování. Příklad: 1+26 = 27 a 27/ 26 = 1, zbyde 1. Nic jsme nezašifrovali.

Ukázkové texty: OT: AHOJ
ŠT: elsn

Nutno poznamenat, že Caesarova šifra je velmi snadno prolomitelná, ať už hrubou silou, prostě vyzkoušíme všechny klíče, není jich moc. Nebo frekvenční analýzou. Proto se k reálnému nasazení rozhodně nehodí, ale pro výukové účely postačí.

Pro snadné šifrování a dešifrování jsem si udělal malý prográmek v Javě. Můj prográmek umožňuje šifrovat i číslice, moje abceda má tedy 36 znaků. Použití je doufám velice snadné.

Programátoři, soutěžte!

Server VbNet.cz vyhlásil programátorskou soutěž .NET Challenge. Jak již název vypovídá programovat se bude v .NET Frameworku, můžete využívat jazyk C#, nebo Visual Basic .NET. Úkoly jsou rozdělěné na lehké a těžké, přitom výhry v kategorii těžkých úkolů jsou fakt pěkné.

K registraci potřebujete akorát účet u Windows Live ID, umět programovat a trošku štěstí.

Já osobně chci vyhrát alespoň cenu útěchy, tričko. Musím odevzdat 3 úlohy a za každou získat minimálně bod.

Učebnice jazyka Java

Pokud se chcete naučit programovat v jazyku Java určitě budete potřebovat učebnici. A pro začínající programátory bych určitě doporučil knihu Učebnice jazyka Java od Pavla Herouta. Autor je docentem na Západočeské univerzitě v Plzni a učit rozhodně umí. Proto je knížka velice dobře napsána. Určitě se v ní neztratí ani úplní začátečníci. Vše je podrobně vysvětleno na příkladech, které jsou dostupné i na Internetu.
Existují 3 díly. První se zabývá úplnými začátky programování v Javě, základy syntaxe a psaní kódu. Ve druhém se naučíte vytvářet grafické rozhraní k programům. A v posledním díle jsou popsány důležité knihovny jazyka Java. Doporučuji koupit všechny díly. Dostanete kvalitní materiály ke studiu. Knihy se obzvláště hodí pro studenty vysokých škol, když vám nestačí materiály a přednášky ve škole.
Autor knihy ještě napsal Učebnici jazyka C, 2 díly a také knihu Java a XML, kterou nemám, ale může být také užitečná.
Kromě úplných základů, jako jsou řídící struktury if, cykly while a for, se samozřejmě naučíte objekty, na kterých je Java založená. V knize nechybí popis práce se soubory a adresáři, vlákna a ošetřování výjimek. Bohužel chybí popis práce se síťovými sokety, který by se celkem hodil. Vytváření apletů se řeší až ve druhém dílu, takže, rozhodně doporučuji koupit všechny díly, vyplatí se to. Jeden díl stojí kolem 200Kč, nic závratného.