Miroslav Virius

Publikace


Na této stránce najdete seznam vybraných publikací. Mé publikace zahrnují

  1. spoluautorství článků v zahraničních fyzikálních časopisech, jako je Physics Letters, Nuclear Instruments and Methods atd., publikované převážně v rámci fyzikálních experimentů COMPASS (experiment v CERN na urychlovači SPS) a PHENIX (experiment v Brookhavenské národní laboratoři --- BNL --- na urychlovači RHIC),
  2. výzkumné zprávy z oboru aplikované matematiky (převážně v 80. letech, ale sem patří i spoluautorství návrhu druhé etapy experimentu COMPASS v CERN, publikace CERN SPSC-2010-014), a návrhu pokračování experimentu PHENIX v BNL (arXiv: 1207.6378),
  3. knihy a vysokoškolská skripta věnované programování a programovacím technikám,
  4. příspěvky na konferencích Spin and Symmetries --- Advanced Studies Instutute, Objekty a Tvorba softwaru,
  5. kapitoly v odborných knihách,
  6. editaci sborníků z mezinárodních konferencí "Advanced Studies Institute -- Symmetries and Spin" (Praha v letech 2000 -- 2008), "Physics at LHC" (Praha 2003, Vídeň 2004), "Hadron Structure and Hadron Spectroscopy" (Praha 2005),
  7. články v nerecenzovaných odborných a populárních časopisech věnovaných výpočetní technice a informačním technologiím.

Odkaz "články" v prvním bodu předchozího seznamu vede na stránky řešeršního systému INSPIRE, který provozuje SLAC (Centrum lineárního urychlovače Stanfordské univerzity v Kalifornii) spolu s DESY (Německá synchrotronová laboratoř v Hamburgu) a FNAL (Fermiho národní laboratoř v Illinois). Články jsou podepsány zpravidla jménem experimentu, po kliknutí na toto jméno dostanete seznam spoluautorů (obvykle velice dlouhý, neboť jde o publikace celého experimentálního týmu; v těchto týmech se účastním jako jeden z informatiků).


Přehled vybraných publikací

Odkazy u jednotlivých položek v následujících seznamech vedou na stručné anotace uvedených publikací. U většiny anotací najdete odkaz Poznámky; použijete-li ho, dostanete se na stránku s opravami, doplňky a poznámkami k dané knize.

Knihy

  1. M. Virius: Programovací jazyky C/C++. Praha: G-Comp 1992. ISBN 80-901073-5-4. 377 stran.
  2. F. Kašpárek -- M. Minárik -- V. Nikolov -- R. Pecinovský -- M. Virius: Borland C++ 3.1 — Co v manuálu nenajdete. Brno: Unis 1993. ISBN neuvedeno. 762 stran.
  3. R. Pecinovský -- M. Virius: Učebnice programování -- základy algoritmizace. Praha: Grada Publishing 1997. ISBN 80-7169-577-7. 177 stran.
  4. R. Pecinovský -- M. Virius: Práce s daty 1. Praha: Grada Publishing 1997. ISBN 80-7169-469-X. 192 stran.
  5. R. Pecinovský -- M. Virius: Práce s daty 2. Praha: Grada Publishing 1997. ISBN 80-7169-470-3. 200 stran.
  6. R. Pecinovský -- M. Virius: Objektové programování 1. Praha: Grada Publishing 1996. ISBN 80-7169-366-9. 232 stran.
  7. R. Pecinovský -- M. Virius: Objektové programování 2. Praha: Grada Publishing 1996. ISBN 80-7169-436-3. 264 stran.
  8. M. Virius: Visual C++ 5.0. Praha: Grada Publishing 1996. ISBN 80-7169-485-1 226 stran.
  9. M. Virius: Pasti a propasti C++.
    1. vydání: Praha: Grada Publishing 1997. ISBN 80-7169-600-7. 256 stran.
    2. aktualizované a doplněné vydání: Brno: Computer Press 2005. ISBN 80-251-0509-1. 376 stran.
  10. D. Louis -- P. Mejzlík -- M. Virius: Jazyky C a C++ podle normy ANSI/ISO -- kompletní kapesní průvodce. Praha: Grada Publishing 1999. ISBN 80-7169-631-5. 643 stran.
  11. M. Virius: C++Builder verze 4.0. Praha: Grada Publishing 1999. ISBN 80-7169-796-6. 262 stran.
  12. D. Štrupl -- M. Virius: JBuilder verze 3. Praha: Grada Publishing 1999. ISBN 80-7169-890-3. 255 stran.
  13. M. Virius: Od C k C++. České Budějovice: Kopp 2000. ISBN 80-7232-110-2. 227 stran.
  14. M. Virius: C++Builder verze 5.0. Praha: Grada Publishing 2000. ISBN 80-7169-390-1. 290 stran.
  15. M. Virius: Java pro zelenáče.
    1. vydání Praha: Neocortex 2001, ISBN 80-902230-9-5, 240 stran;
    2. vydání (aktualizované pro JDK 5) Praha: Neocortex 2005, ISBN 80-86330-17-6, 268 stran.
  16. M. Virius: C# pro zelenáče. Praha: Neocortex 2002. ISBN 80-86330-11-7. 254 stran.
  17. M. Virius: Od C++ k C#. České Budějovice: Kopp 2002. ISBN 80-7232-176-5. 236 stran.
  18. M. Virius: Jazyky C a C++. Kompletní kapesní průvodce programátora.
    1. vydání: Praha: Grada Publishing 2005. ISBN 80-247-1494-9. 518 stran.
    2.vydání (aktualizováno pro C++0x): Praha: Grada Publishing 2011. ISBN 978-80-247-3917-5. 368 stran.
  19. M. Virius: C# -- Hotová řešení. Brno: Computer Press. ISBN 80-251-1084-2. 344 stran.
  20. M. Virius: 1001 tipů a triků pro C++. Brno: Computer Press 2011. ISBN 978-80-251-2941-8. ISBN 978-80-251-2941-9. 472 stran.
  21. M. Virius: C# 2010 -- Hotová řešení. Brno: Computer Press 2012. ISBN 978-80-251-3730-7. 424 stran.
  22. M. Virius: Pascal -- programování pro začátečníky. Praha: Grada Publishing 2012. ISBN 978-80-247-4116-1. 253 stran.
  23. M. Virius: Programování v C++ od základů k profesionálnímu použití. Praha: Grada Publishing 2018. ISBN 978-80-271-0502-1 (tištěná verze), 978-80-271-0956-2 (pdf), 978-80-271-9268-7 (ePub). 416 stran.

Kapitoly v knihách

  1. M. Virius: Object Oriented Computing. In: Handbook of Computational Statistics. Concepts and Methods. Ed. J.E. Gentle, W. Härdle, Y. Mori.
    1. vydání: Berlin, Heidelberg: Springer Verlag 2004. ISBN 3-540-40464-3. Str. 403--434.
    2. vydání (aktualizované): Berlin, Heidelberg: Springer Verlag 2012. ISBN 978-3-642-21550-6. Str. 435--467.
  2. M. Virius: Java a národní prostředí. V knize: Ivor Horton: Java 5. Praha: Neocortex 2005. ISBN 80-86330-12-5. Kap. 23, str. 1287--1348.
  3. M. Virius: Java 5. V knize: Ivor Horton: Java 5. Praha: Neocortex Praha 2005. ISBN 80-86330-12-5. Kap. 24, str. 1349--1412.
  4. M. Virius: Standard C99. V knize: B. W. Kernihgan, D. M. Ritchie: Programovací jazyk C. Brno: Computer Press 2006. ISBN 80-251-0897-X. Str.11--12, 46,63--72, 83--84, 106--109, 140--144, 165, 182--183, 279--280.

Skripta

  1. M. Virius: Aplikace matematické statistiky -- Metoda Monte Carlo. Praha: ČVUT 1985, 1992, 1998. ISBN 80-01-01779-6.
  2. M. Virius: Cvičení z metod matematické fyziky I -- Řešené příklady. Praha: ČVUT 1988, 1996. ISBN 80-01-01312-X.
  3. M. Virius: Cvičení z metod matematické fyziky II -- Řešené příklady. Praha: ČVUT 1989, 1999. ISBN 80-01-00219-5.
  4. M. Virius: Základy programování (Úvod do Turbo Pascalu). Praha: ČVUT1991. ISBN 80-01-01553-X (3. vydání Praha: ČVUT 2004, ISBN 80-01-02940-9)
  5. M. Virius: Objektově orientované programování pro matematické inženýry. Praha: ČVUT 1992. ISBN 80-01-00845-2
  6. M. Virius: Základy algoritmizace. Praha: ČVUT 1995. ISBN 80-01-01346-4
    Druhé, přepracované vydání Praha: ČVUT 2008. ISBN 978-80-01-04003-4.
    Třetí, přepracované vdání: Základy algoritmizace v C++. Praha: ČVUT 2014. ISBN 978-80-01-05606-6.
  7. M. Virius: Programování v C++. Praha: ČVUT 1998. ISBN 80-01-01874-1. (Druhé, přepracované vydání Praha: ČVUT 2004, ISBN 80-01-02978-6; třetí přepracované vydání Praha: ČVUT 2009, ISBN 978-80-01-04371-4.)
  8. M. Virius: Úvod do programování. Praha: ČVUT 2009. ISBN 978-80-01-04278-6.
  9. M. Virius: Programování v Javě. Praha: ČVUT 2010. ISBN 978-80-01-04518-3.
  10. M. Virius: Metoda Monte Carlo. Praha: ČVUT 2010. ISBN 978-80-01-04595-4.
  11. M. Virius: Programování pro .NET. Praha: ČVUT 2011. ISBN 978-80-01-04864-1.
  12. M. Virius: Pokročilé programovací techniky. Praha: ČVUT 2013. ISBN 978-80-01-05188-7.
  13. M. Virius: Základy programování v C++. Praha: ČVUT 2014. ISBN 978-80-01-05470-3.
  14. M. Virius: Cvičení k programování v Javě. Praha: ČVUT 2015. ISBN 978-80-01-04240-3.
  15. M. Virius: Programovací jazyk C++, 1. díl. Praha: ČVUT 2016. ISBN 978-80-01-05961-6.
  16. M. Virius: Programovací jazyk C++, 2. díl. Praha: ČVUT 2016. ISBN 978-80-01-06050-6.
  17. M. Virius: Programovací jazyk C++, 3. díl. Praha: ČVUT 2017. ISBN 978-80-01-06089-6.

Editované sborníky z mezinárodních konferencí

  1. M. Finger, O. Selyugin, M. Virius (ed.): Proceedings of the International Workshop SYMMETRIES AND SPIN. Praha 17.--22.7.2000. Czechoslovak Journal of Physics, Vol. 51 (2001), Suppl. A (360 stran)
  2. M. Finger, O. Selyugin, M. Virius (ed.): Proceedings of the Advanced Studies Institute SYMMETRIES AND SPIN. Praha 15.--28.7.2001. Czechoslovak Journal of Physics, Vol. 52 (2002), Suppl. C, part I a II (740 stran)
  3. M. Finger, A.Janata, O. Selyugin, M. Virius (ed.): Proceedings of the Advanced Studies Institute SYMMETRIES AND SPIN. Praha 14.--26.7.2002. Czechoslovak Journal of Physics, Vol. 53 (2003), Suppl. B (508 stran)
  4. M. Finger, A.Janata, M. Virius (ed.): Proceedings of the Advanced Studies Institute PHYSICS AT LHC. Praha 6.--12.7.2003. Czechoslovak Journal of Physics, Vol. 54 (2004), Suppl. A (471 stran)
  5. M. Finger, A.Janata, M. Virius (ed.): Proceedings of the Advanced Studies Institute SYMMETRIES AND SPIN. Praha 12.--19.7.2003. Czechoslovak Journal of Physics, Vol. 54 (2004), Suppl. B (355 stran)
  6. M. Finger, A.Janata, M. Virius (ed.): Proceedings of the Advanced Studies Institute on SYMMETRIES AND SPIN. Praha 5.--10.7.2004. Czechoslovak Journal of Physics, Vol. 55 (2005), Suppl. A (432 stran)
  7. M. Finger, A.Janata, M. Virius, C.-E. Wultz (ed.): Proceedings of PHYSICS AT LHC. Vídeň 13.--17.7.2004. Czechoslovak Journal of Physics, Vol. 55 (2005), Suppl. B, part I a II (864 stran)
  8. M. Finger, A.Janata, M. Virius, O. Selyugin(ed.): Proceedings of the Advanced Studies Institute SYMMETRIES AND SPIN and HADRON STRUCTURE AND SPECTROSCOPY. Praha 27.7.--5.8.2005. Czechoslovak Journal of Physics, Vol. 56 (2006), Suppl. C, (437 stran)
  9. M. Finger, A.Janata, M. Virius (ed.): Proceedings of the Advanced Studies Institute on SYMMETRIES AND SPIN. Praha 19.--26.7.2006. Czechoslovak Journal of Physics, Vol. 56 (2006), Suppl. F (376 stran)
  10. M. Finger, M. Virius (ed.): Symmetries and Spin. Praha 8.--17.7.2007. The European Physics Journal -- Special Topics (EPJ ST). Vol. 162 (2008), (280 stran)
  11. M. Finger, M. Virius (ed.): Symmetries and Spin. Praha 20.--26.7.2008. Ještě nebyly dodány všechny recenzní posudky, takže to zatím nevyšlo...
  12. M. Finger, M. Virius (ed.): Symmetries and Spin. Praha 26.7.--2.8.2009. Ani zde ještě nebyly dodány všechny recenzní posudky, takže to zatím nevyšlo...

 


 

Podrobnější informace o jednotlivých publikacích

Knihy

  1. Programovací jazyky C/C++
  2. 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

  3. Borland C++ 3.1 -- Co v manuálu nenajdete
  4. 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.

  5. Učebnice programování -- základy algoritmizace
  6. 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ů)

  7. Práce s daty 1
  8. Práce s daty 2
  9. 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ů.

  10. Objektové programování 1
  11. Objektové programování 2
  12. 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

  13. Visual C++ 5.0
  14. 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

  15. Pasti a propasti C++
  16. 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 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)

  17. Jazyky C a C++ podle normy ANSI/ISO -- kompletní kapesní průvodce
  18. 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

  19. C++Builder verze 4.0
  20. 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

  21. JBuilder verze 3
  22. 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

  23. Od C k C++
  24. 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

  25. C++Builder verze 5.0
  26. 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

  27. Java pro zelenáče
  28. 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 učilo učí a 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)

  29. C# pro zelenáče
  30. 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

  31. Od C++ k C#
  32. 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

  33. Jazyky C a C++. Kompletní kapesní průvodce proramátora
  34. 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. 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.)
    Druhé vydání z r. 2011 jsem aktualizoval podle připravovaného nového standardu C++, který má vyjít koncem r. 2011 a je zatím označován C++0x.
    Poznámky k 1. vydání, 2. vydání

  35. C# -- Hotová řešení

  36. 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

  37. 1001 tipů a triků pro C++
  38. Kniha obsahuje více než 1280 tipů a triků, které pokrývají programování v jazycích C a C++. Vychází ze zkušeností s komerčními překladači (v abecedním pořadí) C++Builder 2009 od firmy CodeGear a Visual C++ 2008 a 2010 a s nekomerčním překladačem g++ pro Windows. Začíná překladem a sestavením programu, pokračuje laděním pomocí vývojových prostředí i pomocí programových konstrukcí. Pak přejde k různým rysům jazyka: Najdete zde mimo jiné tipy pro práci s poli a ukazateli a pro správu paměti vůbec, ale také pro práci s celými, reálnými nebo komplexními čísly, znaky a řetězci atd. Některé tipy se zabývají záludnostmi základních jazykových konstrukcí, jako jsou makra, deklarace tříd, používání objektů, šablon atd. Samozřejmě tu najdete i mnoho triků pro vstupní a výstupní operace, používání kontejnerů a algoritmů ze standardní knihovny, práci s lokálním nastavením apod.
    Jedna z kapitol se také zabývá C++0x. Tak se označuje očekávaný, ale v době vydání této knihy stále ještě nepublikovaný nový standard jazyka C++ -- některé překladače již řadu novinek, jako jsou lambda-výrazy, implementují.
    Některé z triků nebo tipů se vztahují jen k určité verzi jazyka C nebo C++; v takovém případě je v záhlaví tipu uvedeno, zda jde o jazyk C podle standardu z roku 1990, o jazyk C podle standardu z roku 1999 nebo o jazyk C++.
    Poznámky

  39. C# 2010 -- Hotová řešení

  40. Ve skutečnosti jde o aktualizované a rozšířené vydání knihy C# -- hotová řešení z roku 2006. Zdrojové kódy byly revidovány, aby využívaly možností C# verze 4 a prostředí .NET verze 4. Přibyly i nové příklady. Navíc přibyly kapitoly věnované knihovně WPF a dotazovacímu jazyku LINQ.
    Poznámky

  41. Pascal -- programování pro začátečníky

  42. Kniha je určena naprostým začátečníkům. Obsahuje výklad jazyka Pascal založený na překladači Free Pascal verze 2.4 a vývojovém prostředí Lazarus verze 0.9.30.
    V prvních pěti kapitolách najdete nezbytné minimum informací o počítačích a programování, které začínající programátor potřebuje znát, napíšete několik jednoduchých programů, naučíte se je překládat, spouštět a ladit. Tyto kapitoly vám poskytnou informace nezbytné pro to, abyste si mohli konstrukce, probírazné v dalších kapitolách, zkoušet na smysluplných programech.
    Od šesté kapitoly začíná výklad Pascalu naostro; jeho cílem je přivést začínajícího programátora na mírně pokročilou úroveň. Seznámíte se s datovými typy, proměnnými, konstantami, příkazy a se vstupními a výstupními operacemi. Poznáte i základy objektově orientovaného programování a v poslední kapitole se naučíte vyvíjet jednoduché aplikace s grafickým uživatelským rozhraním.
    Kniha se vyhýbá pokročilejším tématům, jako jsou ukazatele a dynamické proměnné, dynamické datové struktury, výjimky, vytváření dynamických knihoven apod.; ty měly být ve druhém dílu knihy, který však z rozhodnutí nakladatelství nevyjde. Podobně zaměřené je (a místo druhého dílu můžete použít) striptum Pokročilé programovaví techniky vydané Nakladatelstvím ČVUT v r. 2013.
    Poznámky

  43. Programování v C++ od základů k profesionálnímu použití.

  44. Kniha je určena naprostým začátečníkům, které se snaží dovést na úroven středně pokročilého programátora. V jedadvaceti kapitolách seznámí čtenáře se vším od základních pojmů, jako je proměnná nebo cyklus, přes práci s pamětí a ukazateli po pokročilejší konstrukce, jako jsou výjimky a pasívní použití šablon. Výklad doprovází řada příkladů, některé jsou poměrně rozsáhlé. Výklad vychází ze standardu ISO 14882:2017 označovaného "C++17" a využívá volně dostupné vývojové prostředí Code::Blocs a překladač g++, obsahuje však i poznámky pro použití MS Visual Studia.
    Poznámky


Skripta

  1. Aplikace matematické statistiky -- Metoda Monte Carlo
  2. 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.

  3. Cvičení z metod matematické fyziky I -- Řešené příklady
  4. Cvičení z metod matematické fyziky II -- Řešené příklady
  5. 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.

  6. Základy programování (Úvod do Turbo Pascalu)
  7. 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čilo vždy ke získání zápočtu z předmětu Základy programování (dokud se tento předmět učil v Pascalu).

  8. Objektově orientované programování pro matematické inženýry
  9. 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.

  10. Základy algoritmizace
  11. 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.
    Ve třetím vydání byly veškeré příklady převedeny do jazyka C++ (v prvních dvou vydáních byly převážně v Pascalu). Tomu byl přizpůsoben i styl výkladu. Výklad některých algoritmů byl upraven.
    Poznámky k 1. vydání   Poznámky k 2. vydání   Poznámky k 3. vydání

  12. Programování v C++
  13. Starší 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 té době k dispozici, takže se často objevovala např. přípona .h ve jménech hlavičkovych souborů, což neodpovídá standardu, ale mnohé tehdejší překladače to vyžadovaly. Druhé vydání také popisuje nový standard ISO 9899:1999 jazyka C.) Doplnil jsem rozsáhlejší příklad 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; změny v jazyce nebyly v době přípravy třetího vydání ještě zcela jasné a nebyly k dispozici překladače, které by poskytovaly jejich implementaci, proto jsem je do tohoto vydání nezahrnul. 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í

  14. Úvod do programování
  15. 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 počítač, algoritmus, programovací jazyk apod. a vysvětlením pojmů datový 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

  16. Programování v Javě
  17. Skriptum ke stejnojmenné přednášce. Předpokládá znalost základů programování, takže nevysvětluje pojmy jako program, proměnná, třída, objekt nebo výjimka, ale používá je. Skládá se ze tří relativně samostatných částí.
    V první části se čtenář seznámí s prostředím Javy, napíše první programy (od nejjednoduššího, který vypisuje pozdrav, až k sice naivní, ale funkční implementaci jednosměrně zřetězeného seznamu -- to je velice vděčný příklad). Vedle toho se čtenář v této části naučí programy překládat a spouštět, vytvářet dokumentaci a archiv tříd a některé další užitečné věci.
    Ve druhé části se čtenář seznámí se syntaxí jazyka Java. To znamená, že postupně projde příkazy, základní (primitivní) datové typy, vytváření tříd a objektů a práci s nimi, generické datové typy, používání výjimek atd.
    Třetí část je věnována vybraným techologiím, tedy specializovaným knihovnám. Jedná se o základy práce se znakovými řetězci (včetně regulárních výrazů), vstupní a výstupní operace (pomocí knihovny datových proudů) a vytváření grafického uživatelského rozhraní pomocí komponent swing. Pak následují kapitoly věnované reflexi a nativním metodám (tj. metodám napsaným v jazyce C++), práci s databázemi, podpoře národního prostředí, vytváření servletů a stránek JSP a používání podprocesů (vláken).
    Poznámky

  18. Metoda Monte Carlo
  19. Skriptum ke stejnojmenné přednášce.
    První kapitola obsahuje dva příklady použití metody Monte Carlo (MMC). Jejím cílem je seznámit čtenáře s tím, co budeme pod označením MMC rozumět, a ukázat, jaké problémy musíme při jejím použití umět vyřešit. Druhá kapitola rozebírá přesnost výsledků získaných MMC. Třetí je věnována transformaci náhodných veličin s rovnoměrným rozdělením na intervalu <0, 1) na náhodnou veličinu s požadovaným rozdělením a čtvrtá kapitola se zabývá generátory pseudonáhodných čísel s rovnoměrným rozdělením na intervalu <0, 1).
    Další dvě kapitoly jsou věnovány použití MMC pro numerické výpočty (určité integrály, vybrané druhy lineárních rovnic).
    Sedmá kapitola je věnována použití simulací v teorii hromadné obsluhy a a osmá kapitola je věnována použití simulací v teorii transportu záření. Za ní následuje kapitola věnovaná testování prvočíselnosti a simulovanému žíhání.
    V předposlední kapitole najdete shrnutí základních pojmů, vět a definic z teorie pravděpodobnosti a matematické statistiky, které jsou při výkladu potřebné (bez důkazů, neboť ty lze najít v běžné literatuře). Poslední kapitola obsahuje důkazy některých tvrzení, která v textu používáme, jejichž důkazy nejsou v běžné literatuře uváděny. Tato tvrzení bezprostředně souvisí s vykládanou tématikou a přitom zařazení jejich důkazu do textu by narušilo souvislost výkladu.
    Poznámky

  20. Programování pro .NET
  21. Skriptum ke stejnojmenné přednášce.
    Skriptum pokrývá základy práce se sestavením (assembly) v prostředí .NET, s prostředím programu, používání podprocesů (vláken), práci se znamovými řetězci, nástroje pro vstupní a výstupní operace, vytváření grafického uživatelského rozhraní v kniovnách Windows Forms a WPF, použití databází, práci s dokmenty v jazyce XML a vnořený dotazovací jazyk jazyk LINQ. V příloze je stručný přehled jazyka C#.
    Poznámky

  22. Pokročilé programovací techniky
  23. Skriptum bylo určeno ke stejnojmennému předmětu, dokud byl založen na jazyce Pascal.
    Skriptum ukazuje vybrané programovací techniky a jejich aplikaci v Pascalu. Některé kapitoly podrobněji probírají vlastnosti Pascalu, které byly v kursu "Základy programování" opomenuty, jako jsou výjimky, generické konstrukce, přetěžování operátorů nebo vlastnosti (property). Další kapitoly seznamují s vytvářením grafického uživatelského rozhraní, s vytvářením a používáním dynamických knihoven, s použitím podprocesů (threadů), s vytvořením nápovědy v HTML, se zpracováním dokumentů v jazyce XML, s použitím databází atd. Samostatná kapitola je věnována vytvoření instalačního balíčku pro vyvinutý program pomocí volně dostupného nástroje NSIS.
    Převážná většina textu nezávisí na použitém operačním systému. Pouze části věnované vytvoření instalačního balíčku, přístupu k registru Windows a práci s dynamickými knihovnami jsou specifické pro Windows.
    Poznámky

  24. Základy programování v C++
  25. 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 C++ včetně základů objektově orientovaného programování a základů práce s výjimkami, neprobírá jmenné prostory, šablony, přetěžování operátorů, dynamickoi identifikaci typů. Začíná seznámením s pojmy jako počítač, algoritmus, programovací jazyk apod. a vysvětlením pojmů datový 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 C++ natolik, že bude moci psát fungující programy, i když nebude umět využít všech možností, které tento jazyk nabízí. Na konci skripta najdete rozsáhlejší příklady (mj. naivní, ale funkční implementaci jednosměrně zřetězeného seznamu)
    Poznámky

  26. Cvičení k programování v Javě
  27. Skriptum pro cvičení k přemětu "Programování v Javě". Na příkladu vývoje programu pro kreslení únikových fraktálů v Javě 8, tedy v JDK 1.8, ukazuje praktické použití řady technologií, s nimiž se čtenáři mohli seznámit v přednášce Programování v Javě. Vedle GUI, kreslení, práce s XML, podprocesů a dalších ukazuje i vytvoření instalačního balíčku vytvořené aplikace. V poslední kapitole najdete stručný přehled novinek Javy 7 a 8.
    Poznámky

  28. Programovací jazyk C++, 1. díl. Praha: ČVUT 2016. ISBN 978-80-01-05961-6.

    První díl skripta k přednášce programování v C++. Toto skriptum vzniklo rozsáhlým přepracováním a doplněním skripta Programování v C++, které přestalo vyhovovat, neboť (a) předmět "Základy programování" je nyní založen na jazyce C++, takže posluchači již řadu pojmů alespoň povrchně znají, (b) nové verze standardů jazyků C a C++ přinesly řadu novinek jak v samotných jazycích, tak i v knihovnách. Výklad ve všech třech dílech vychází z platných standardů jazyků C a C++ z roku 2011 ("C11" a "C++11"), uvádí ale i novinky označované "C++14" a změny očekávané v nové verzi standardu, jež by měla být publikována v roce 2017.

    První díl obsahuje dva složitější příklady, které čtenáře seznámí s některými pojmy, na které bude v následujícím výkladu narážet. Pak projde strukturu programu v C a v C++, příkazy v C++, základní datové typy, neobjektové datové typy deklarované uživatelem (včetně struktur a unií v neobjektovém pojetí, tedy POD), výrazy, deklarace, funkce a preprocesor.
    Další dva díly jsou zařazeny do edičního plánu nakladatelství ČVUT na první pololetí r. 2017.

  29. Poznámky

  30. Programovací jazyk C++, 2. díl. Praha: ČVUT 2016. ISBN 978-80-01-06050-6.

    Druhý díl skripta k přednášce programování v C++.

    V úvodním příkladu se nezávazně seznámíme s některými pokročilými konstrukcemi. Pak následuje výklad objektově orientovaného programování, přetěžování operátorů, šablon (včetně šablon s proměnným počtem parametrů), nástrojů pro práci s výjimkami, nástrojů pro práci s typy a jmenných prostorů. Poslední kapitola je věnována tzv. pojmům (specifikace vlastností používaná v dokumentaci knihoven v C++) a konceptů (syntaktické konstrukce pro formalizaci pojmů, očekávaná v C++ po roce 2020).

  31. Poznámky

  32. Programovací jazyk C++, 3. díl. Praha: ČVUT 2017. ISBN 978-80-01-06089-6.

    Třetí díl skripta k přednášce programování v C++.

    Tento díl je věnován standardním knihovnám jazyků C a C++. V prvních kapitolách se seznámíme s nástroji pro vstupní a výstupní operace, pro přístup k souborovému systému, pro práci s národním prostředím. Pak následují kapitoly věnované práci se znakovými řetězci (včetně použití regulárních výrazů), práci s paralelními podprocesy (vlákny) a s nástroji pro matematické výpočty (numerické pole, generování náhodných čísel aj.). Dále se seznámíme s tzv. kontejnery (třídami pro ukládání dat), iterátory pro práci s kontejnery a s "algoritmy", tedy s funkcemi pro zpracování dat v kontejnerech. Poté následuje kapitola věnovaná různým dalším nástrojům (pro práci s časem, pro podporu běhu programu a další). Poslední kapitola je věnována pokročilým nástrojům pro práci s datovými typy v době překladu programu.

  33. 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é