Na této stránce najdete seznam vybraných publikací. Mé publikace zahrnují
Popisuje jazyky C a C++ podle specifikace AT&T 2.1 na základě zkušeností s překladači dostupnými v době psaní (přelom let 1991/2). To znamená, že nehovoří o výjimkách, dynamické identifikaci typů a nových přetypovacích operátorech, prostorech jmen a standardní šablonové knihovně. Pokud jde o šablony, najdete zde jen základní popis -- tehdejší specifikace např. neznala vnořené šablony, netypové parametry šablon funkcí atd.
Poznámky
Kniha je věnována především nedokumentovaným nebo špatně dokumentovaným vlastnostem překladače Borland C++ 3.1. Najdete tu výklad o šablonách, některých vlastnostech funkcí, objektových typů atd., podrobný popis knihovny datových proudů a návod, jak napsat nový datový proud, popis ukládání objektů v paměti, způsob překladu konstruktorů a destruktorů atd. Obsahuje i rozbor některých chyb překladače. Výklad je zaměřen především na programy pro DOS, pro porozumění některým místům je vhodné znát asembler.
První z pětidílné série učebnic, které postupně učí programování v C++ a v Pascalu. Celá tato řada vznikla na základě publikovaných i nepublikovaných částí seriálu "Cesta k profesionalitě" R. Pecinovského otiskovaného v časopise Computerworld a mého seriálu "Kurs C/C++" otiskovaného v časopise Bajt. Tento díl obsahuje především kurs algoritmizace založený na robotu Karlovi, základy ovládání prostředí Turbo Pascalu a Borland C++ 3.1 a základní programové konstrukce používané v těchto jazycích.
Poznámky k této knize
Poznámky k doprovodným disketám (pro všech 5 dílů)
Tyto knihy navazují na knihu Učebnice programování -- základy algoritmizace. Najdeme tu některé lehce pokročilejší neobjektové konstrukce (v prvním dílu pole, výrazy, procedury a funkce podrobněji, vstupní a výstupní operace, ve druhém pak ukazatele, záznamy či struktury, makra apod.). Výklad v obou knihách doprovází velké množství příkladů.
Poslední dva díly série učebnic programování. První díl vykládá především zapouzdření a přetěžování operátorů v C++. Druhý dědičnost, a polymorfizmus v C++ a v Turbo Pascalu a výjimky a dynamickou identifikaci typů v C++ a v Object Pascalu (Delphi) a prostory jmen v C++. Kniha (oba díly společně) získala ocenění "Cena Grada '96".
Poznámky
Kniha popisuje vývojové prostředí Microsoft Visual C++ 5.0 a uvádí do programování aplikací pro Windows pomocí knihovny MFC. Obsahuje řadu příkladů. Není to učebnice C++, alespoň základní znalost tohoto jazyka je pro čtení nezbytná.
Poznámky
Kniha věnovaná zrádným místům jazyků C a C++, tj. konstrukcím, které jsou sice syntakticky správné, ale mohou mít jiný význam než programátor očekává. Vychází z ISO C++ podle návrhu této normy aktuálního v létě 1997 (ta už se prakticky neliší od přijatého standardu). Oceněno "Tip redakce časopisu Chip 11/1997".
Druhé, aktualizované a doplněné vydání vyšlo na počátku r. 2005 v nakladatelství Computer Press.
Druhé vydání obsahuje navíc především kapitoly věnované šablonám, prostorům jmen, standardní šablonové knihovně C++, objektovému návrhu a problematice češtiny v C++. Vynechal jsem části věnované programování pro DOS a upravil jsem zdrojové texty tak, aby odpovídaly nejen současnému standardu jazyka. (V prvním vydání jsem například ještě často používal jména standardních hlaviček s příponou .h, jak to vyžadovala většina překladačů používaných v r. 1997. Mnohé dnešní překladače to již považují za chybu.)
Poznámky k 1. vydání (1997), k 2. vydání (2005)
Vysvětluje všechny běžně používané prostředky jazyka C podle platných standardů ISO 9899-1990 a C++ podle ISO 14882. Převážnou část knihy tvoří podrobný přehled standardních knihoven těchto jazyků včetně pomocných funkcí a tříd.
Poznámky
Seznamuje s vývojovým prostředím C++Builderu 4 a s vizuálním programováním pomocí knihovny VCL. Pokrývá základní programové konstrukce, základy práce s grafikou, základy multithreadových aplikací a databázových aplikací; obsahuje i krátký přehled jazyka SQL. Předpokládá znalost jazyka C++ (objektové programování, pokud jde o výjimky a šablony alespoň základy). Kniha má podtitul "podrobný průvodce"; to vymyslelo nakladatelství, ve skutečnosti je to učebnice, která seznamuje čtenáře s C++Builderem na příkladech.
Poznámky
Seznamuje s vývojovým prostředím JBuilderu 3 a s vizuálním programováním pomocí komponent JavaBeans. Obsahuje i základní kurs jazyka Java. Pokrývá základní programové konstrukce, vytváření apletů, základy práce s grafikou, základy multithreadových aplikací a databázových aplikací; najdete tu i krátký přehled jazyků SQL a HTML. Podobně jako kniha o C++Builderu má i tato kniha podtitul "podrobný průvodce", i když to je opět učebnice, která seznamuje čtenáře s Javou a s JBuilderem na příkladech.
Poznámky
Kniha předpokládá znalost jazyka C podle standardu ISO/ANSI 9899-1990 a základních pojmů objektově orientovaného programování. Na tomto základě seznamuje čtenáře s jazykem C++. Obsahuje výklad objektových typů, přetěžování operátorů, šablon, výjimek, dynamické identifikace typů, prostorů jmen, objektových datových proudů a základní informace standardní šablonové knihovně. Výklad doprovázejí příklady.
Poznámky
Jde o upravenou a rozšířenou verzi knihy o C++Builderu 4. Nový je úvod do programování distribuovaných aplikací podle standardu CORBA. Nové jsou také příklady použití rámů, seznamu akcí a některých dalších komponent. Knihu lze použít i k seznámení se staršími verzemi C++Builderu.
Poznámky
Kniha je určena čtenářům, kteří se chtějí seznámit se základy programování v jazyce Java. Nepředpokládá žádné předběžné znalosti o programování. Vychází z JDK 1.3 a nabízí seznámení s principy objektově orientovaného programování, základními konstrukcemi jazyka (primitivní datové typy, pole, příkazy, výrazy a operátory, třídy, rozhraní, výjimky, základní vstupy a výstupy). Najdete tu i základy tvorby grafických aplikací pomocí knihovny JFC/Swing a velmi stručné informace o tvorbě apletů. Kniha se nezabývá tvorbou vícevláknových aplikací, distribuovaných aplikací, nativních metod a dalšími pokročilými tématy. Oceněno "Tip redakce časopisu Chip 10/2001".
Podle této knihy se prý učí na některých středních -- a dokonce i vysokých -- školách.
V létě 2005 vyšlo druhé vydání aktualizované pro JDK 5. Obsahuje navíc především základy práce s generickými typy, zmíněny jsou ale všechny podstatné novinky této verze JDK.
Poznámky k 1. vydání (2001), ke
2. vydání (2005)
Kniha je určena čtenářům, kteří se chtějí seznámit se základy programování v jazyce C#. Nepředpokládá žádné předběžné znalosti o programování. Vychází z verze 1.1 překladače a nabízí seznámení s principy objektově orientovaného programování, základními konstrukcemi jazyka (základní datové typy, pole, příkazy, výrazy a operátory, třídy, rozhraní, výjimky, přetěžování operátorů, základní vstupy a výstupy). Najdete tu i základy tvorby grafických aplikací. Kniha se nezabývá tvorbou vícevláknových aplikací, distribuovaných aplikací a dalšími pokročilými tématy. Koncepce knihy je velice podobná koncepci knihy "Java pro zelenáče".
Poznámky
Tato kniha předpokládá znalost C++, a to -- kromě základních konstrukcí, jako jsou deklarace nebo příkazy -- také objektově orientovaného programování, prostorů jmen, přetěžování operátorů a dynamické identifikace typů. Na tomto základě vykládá programovací jazyk C# a jeho používání v programech pro .NET Framework. Kniha pokrývá mj. vstupy a výstupy, základy tvorby grafického uživatelského rozhraní, práci s datovými typy (reflexi, používání atributů, vytváření vlastních atributů) atd.
Poznámky
Podrobná referenční příručka jazyka C90 (tedy C podle standardu ISO/IEC 9899-1990), C99 (tedy C podle standardu ISO/IEC 9899-1999) a C++ podle standardu ISO/IEC 14882-1998. Neobsahuje přehled standardních knihoven, ty budou v samostatné knize
Jde vlastně o od základu přepracovanou knihu Jazyky C a C++ podle normy ANSI/ISO -- kompletní kapesní průvodce, jež byla dokončena ještě před vydáním závěrečné verze standardu C++ (a navíc se musela vejít do poněkud nevhodného formátu kapesních referenčních příručk k uživatelským programům, jako je Word nebo Excel -- povinný počet kapitol, "postupy" atd.)
Poznámky
Sbírka více než 250 řešených úloh, které ukazují základy práce s prostředím .NET 1.1 a 2,0 (vytvoření soukromého a sdíleného sestavení, jeho konfiguraci, použití reflexe, použití staršího kódu v dynamických knihovnách pro Win32, spolupráci s COM), práci s okny a komponentami, vytváření databázových aplikací pomocí ADO.NET, základy vytváření stránek ASP.NET, vytváření vícevláknových aplikací, vstupní a výstupní operace, práci s dokumenty v XML a mnohé další. Ukazuje také použití některých novinek v C# 2.0 (genericity). Kniha je sice založena na C#, ale s výjimkou 3. kapitoly, která je věnována výhradně tomuto jayzku, se prakticky vše dá použít v libovolném jazyce pro .NET.
Poznámky
K přednášce Metoda Monte Carlo. První vydání z r. 1985 mělo název "Základy výpočetní techniky -- Metoda Monte Carlo", obsah druhého a třetího vydání pod názvem "Aplikace matematické statistiky" je totožný. Stručný obsah: Princip metody MC, přesnost, transformace náhodných čísel, generování náhodných čísel s rovnoměrným rozložením, výpočet integrálů metodou MC, řešení soustavy lineárních algebraických rovnic metodou MC, řešení integrálních rovnic metodou MC, řešení některých úloh pro diferenciální rovnice metodou MC, rozvětvené procesy, úlohy z teorie hromadné obsluhy, úlohy o transportu záření. Skriptum získalo cenu rektora ČVUT za rok 1985.
Sbírka řešených úloh z metod matematické fyziky.
Obsah prvního dílu: Klasifikace parciálních diferenciálních rovnic 2. řádu, zobecněné funkce, základní úlohy matematické fyziky, Cauchyova úloha.
Obsah druhého dílu: Integrální rovnice, úloha na vlastní hodnoty pro eliptické operátory, okrajová úloha a smíšená úloha. Příklady ukazují často několik možných postupů, občas upozorňují i na postupy, které nevedou k cíli. Vedle řešených příkladů obsahují obě skripta i cvičení pro čtenáře.
Skriptum k přednášce "Základy programování" (dnes již bylo nahrazeno skriptem "Úvod do programování"). Podrobný výklad jazyka Pascal podle standardu, doplněný o výklad Turbo Pascalu 7.0. Nepředpokládá žádné předběžné znalosti o programování nebo o počítačích, nehovoří o Object Pascalu z Delphi. Obsah: Co je to počítač, algoritmus, zobrazování dat v počítači, základní konstrukce jazyka Pascal, typ v Pascalu, výrazy, příkazy, procedury a funkce, objektové typy, vývojové prostředí Turbo Pascalu, základy DOSu.)
I když formálně existují pouze tři vydání (1991, 1997, 2004), byla mezi prvními dvěma řada dotisků, které se poněkud liší. První vydání vycházelo z tehdy aktuální verze Turbo Pascalu 5.5, další dotisky postupně popisovaly verzi 6 a 7. Ve druhém vydání byly vypuštěny části týkající se archaického vývojového prostředí verze 5.5 a starších a přibyl popis nových rysů jazyka. Změnily se i některé příklady v textu. Třetí vydání jsem přizpůsobil tehdejším požadavkům.
Znalosti z libovolného z vydání stačí i dnes ke získání zápočtu z předmětu Základy programování.
Toto skriptum vzniklo v době, kdy seminář "Objektově orientované programování" sloužil především jako doplněk k přednášce o jazyku C++ (tehdy jednosemestrální). S dnešní podobou semináře OOP nemá nic společného. Skriptum obsahuje popis základních konstrukcí OOP a základní informace o OOP v C++, v Turbo Pascalu, v Simule 67, ve Smalltalku a o objektovém rozšíření Turbo Assembleru 3.0.
Skriptum ke stejnojmenné přednášce. Hlavní body obsahu prvního vydání: datové struktury (proměnná, pole, záznam, seznam, strom, zásobník, fronta, množina atd.), metody návrhu algoritmů (rozděl a panuj, backtracking atd.), rekurze, třídění polí, souborů a jiné, použití binárního stromu (zpracování aritmetického výrazu, vyvážené stromy), seminumerické algoritmy (zobrazení čísel v počítači, algoritmy pro základní aritmetické operace), další algoritmy (FFT, Strassenův algoritmus aj.), úvod do softwarového projektu, návrh architektury programu založený na analýze požadavků.
Druhé vydání obsahuje navíc podrobný příklad vyšetřování složitosti algoritmu, výklad potřebných matematických nástrojů, některá odvození složitosti, některé třídicí algoritmy atd. Místo výkladu o softwarovém projektu a návrhu architektury je zde obsáhlá kapitola věnovaná především OOP a návrhovým vzorům. Výklad byl na řadě míst přepracován.
Poznámky k 1. vydání Poznámky k 2. vydání
Skriptum ke stejnojmenné přednášce. Pokrývá jazyk C podle ISO 9899:1990 a C++ podle ISO 14882:1998 včetně základních informací o standardních knihovnách a některých běžných rozšířeních. První 4 kapitoly představují úvodní kurs, ve kterém se čtenář bez nároku na úplnost seznámí s vybranými konstrukcemi C++ a pozná organizaci programu v C++. Pak následuje podrobný výklad: Zápis programu, lexikální konvence, klíčová slova atd., příkazy, základní datové typy, pole, ukazatele, reference a dynamické proměnné, výčtové typy, struktury, unie, operátory, výrazy, proměnné, deklarace, funkce, direktivy preprocesoru, objektové typy, přetěžování operátorů, šablony, výjimky, dynamická identifikace typů a speciální přetypovací operátory, prostory jmen, vstupy a výstupy, přehled ostatních knihoven.
Ze druhého vydání jsem odstranil části, které se zabývaly programováním pro DOS. Upravil jsem zdrojové texty tak, aby plně vyhovovaly standardu. (V prvním vydání bylo třeba brát ohled na překladače, které byly v te dobe k dispozici, takze se casto objevovala např. přípona .h ve jménech hlavičkovych souborů, což neodpovídá standardu, ale mnohé tehdejší překladače to vyžadovaly. Navíc byl vydán nový standard ISO 9899:1999 jazyka C.) Doplnil jsem rozsáhlejší příklad na použití STL a některé informace, které se do prvního vydání nevešly.
Vyřazené části věnované dosovskému programování jsou k dispozici zde ve formátu PDF.
Do třetího vydání jsem doplnil stručnou informaci o rozšířeních očekávaných v nové verzi standardu (označovaných C++0x), a to především pokud jde o standardní šablonovou knihovnu. Vedle toho jsem odstranil některé překlepy a nedopatření; zároveň jsem zdrojový text skripta převedl do sázecího systému TeX, čímž jsem tam nepochybně zanesl nové chyby.
Poznámky k 1. vydání Poznámky ke 2. vydání Poznámky ke 3. vydání
Skriptum k přednášce "Základy programování"; nepředpokládá žádné předběžné znalosti o programování nebo o počítačích. Obsahuje výklad jazyka Pascal včetně objektově orientovaného programování a výjimek. Začíná seznámením s pojmy, jako je počítač, algoritmus, progtramovací jazyk apod. a vysvětlením pojmů datových typ a objektový typ. Pak následuje několik jednoduchých příkladů, v nichž se čtenář postupně naučí zapsat zdrojový kód, přeložit ho (z příkazové řádky), spustit ho a ladit ho.
To mu umožní psát od počátku rozumné příklady a spouštět je jako programy. V dalších kapitolách se seznámí s jazykem Pascal v podobě, ve které ho implementuje Turbo Pascal 7.0, Free Pascal a Object Pascal v Delphi; Výklad Object Pascalu neobsahuje některé z konstrukcí, které se objevily teprve v nedávných verzích jazyka, jako je genericita. Na konci skripta najdete rozsáhlejší příklady (mj. naivní, ale funkční implementaci jednosměrně zřetězeného seznamu).
Poznámky
Na začátek stránky Knihy Skripta Poznámky Přednášky a semináře Moje domovská stránka Články Machiavelli by záviděl a Machiavelli podruhé