MFF UK / Ústav teoretické fyziky / Tomáš Ledvinka
Přednášky
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
Počítačová algebra
Klasická elektrodynamika (2.r)
Vybrané partie OTR

Cvičení
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
  Zadání domácích úloh
  Užitečné programy
  Body z domácích úloh
  Příklady ze cvičení
  Příklady ze cvičení v C
Teoretická mechanika (2.r)
Klasická elektrodynamika (2.r)


Věda
. . . . . . . . . . . . . . . . . . . . . . . . . .
Diskové zdroje v OTR
Hyperbolické systémy v OTR


Kontakt
. . . . . . . . . . . . . . . . . . . . . . . . . .
Email
Konzultační hodiny


Ostatní
. . . . . . . . . . . . . . . . . . . . . . . . .
Mallorca
Ze společnosti

Caption bar

Seznam vybraných programů ze cvičení v C.

Nejde o programy v ANSI C, pro překlad jsme používali MS Visual Studio, a tam, kde příslušná konstrukce v jazyce Object Pascal (v němž probíhá přednáška) nemá protějšek v ANSI C a nebo i tam, kde je to z bezpečnostních důvodů žádoucí (např. u printf), jsme používali konstrukce z C++ . Níže uvedené programy by s použitím minimálního souboru StdAfx.h měly jít přeložit pomocí GNU C++.

Příklady ze cvičení

  1. Nasobilka.cpp - Malá násobilka s jedním cyklem for jako varování před zatemňováním kódu.
  2. cv01a.cpp - První program, příkazy, řetězce, komentáře.
  3. cv01b.cpp - Zkoušíme cylus while a výstup přes std::cout.
  4. cv01c.cpp - Zkoušíme cylus s testem na konci.
  5. cv01d.cpp - Zkoušíme cylus for.
  6. cv02a.cpp - Dva cykly (násobilka).
  7. cv02b.cpp - Učíme se logické výrazy.
  8. rada_pi.cpp - Součet řady. Výpočet (-1)k bez volání pow.
  9. cv03a.cpp - Tabulka funkčních hodnot.
  10. Kruznice.cpp - Použití součtových vzorců při kreslení parametricky zadané kružnice
  11. cv04a_funkce.cpp - Deklarace a použití funkce.
  12. cv04b_funkce.cpp - Funkce počítající součet řady.
  13. cv05c_fib.cpp - Jednoduché fukce.
  14. cv06a_ctverec.cpp - Předávání parametru odkazem.
  15. cv06b_baccab.cpp - Pole jako typ, proměnná a parametr.
  16. cv06c_array.cpp - Jak donutit C++ funkce vracet pole.
  17. cv08_interp.cpp - Předávání polí jako parametrů
  18. cv08_stat.cpp - Předávání polí jako parametrů II
  19. cv08a_LinSolve.cpp - První pokus o lineární algebru.
  20. cv09b_Interpolace.cpp - Ilustrace užití řešení soustavy rovnic
  21. cv11cODR3.cpp - Numerické řešení Newtonových pohybových rovnic
  22. Ode.zip - 7 příkladů ukazujících princip numerického řešení obyčených diferenciálních rovnic. Komentář ke cvičení.
  23. cv13_rand.cpp - Náhodná čísla I
  24. cv13_rand_boost.cpp - Náhodná čísla I, lepší náhodná čísla
  25. cv13_kosikova.cpp - Náhodná čísla II
  26. cv13_Teziste.cpp - Výpočet těžiště polokoule jako těžiště souboru rovnoměrně rozdělených náhodných bodů stejné váhy uvnitř tělesa.


Příklady 2016

  1. Nasobilka.cpp - Malá násobilka s jedním cyklem for jako varování před zatemňováním kódu.
  2. Nasobilka.cpp - Malá násobilka. Cykly, proměnné, výstup.
  3. nsd.cpp - Zrychlená verze Euklidova algoritmu pro výpočet NSD.
  4. bool.cpp - Složitější logické podmínky. &&, ||, ...
  5. rada_pi.cpp - Součet řady. Výpočet (-1)k bez volání pow.
  6. fce1.cpp - Součet řady (tentokrát přestěhován do podprogramu).
  7. nfakt.cpp - Jednoduchá funkce (výpočet n!).
  8. taylor_sin.cpp - Součet Taylorovy řady, funkce se dvěma parametry.
  9. sincos.cpp - Tabulka funkčních hodnot. Knihovna matematických funkcí.
  10. zaokr.cpp - Ukázka, jak se vyhnout jednomu nepříjemnému důsledku zaokrouhlovacích chyb.
  11. Kruznice.cpp - Použití součtových vzorců při kreslení parametricky zadané kružnice
  12. RiemannovaFce.cpp - Spojitá funkce, co nemá skoro nikde derivaci.
  13. Fibo_r.cpp - Rekurzivní výpočet Fibonacciho čísel.
  14. Fibo_c.cpp - Výpočet Fibonacciho čísel cyklem.
  15. Legendre.cpp - program vypíše data pro namalování prvních k_max Legendrových polynomů.
  16. koreny2014.cpp - Hledání kořenů funkce. (Prvni pokus)
  17. koreny.cpp - Hledání kořenů funkce. (Pokročilejší verze)
  18. Odkaz.cpp - Předávání parametrů odkazem
  19. PoleUvod.cpp - Deklarace, procházení a předávání polí
  20. PoleZarazka.cpp - Předávání polí - zarážka
  21. Vektory3D.cpp - Funkce vrací pole s použitím parametru
  22. Vektory3Da.cpp - Funkce prací pole. 3-vektory, matice 3x3
  23. structKomplex.cpp - Datový typ záznam, komplexní čísla
  24. Mandelbrot14.cpp - Aproximace Mandelbrotovy mnoziny, komplexní aritmetika. Děkuji L.H.
  25. midpoint.cpp - Funkce jako parametr, řešení obyč. diferenciálních rovnic, předávání funkce jako parametru.
  26. Ode.zip - 7 příkladů ukazujících princip numerického řešení obyčejných diferenciálních rovnic. Komentář; ke cvičení.
  27. randtest.cpp - Házení kostkou. Základní použití rand() při generování celých a reálných čísel (nevhodné pro serióznější výpočty).
  28. cv13_Teziste.cpp - Výpočet těžiště polokoule jako těžiště souboru rovnoměrně rozdělených náhodných bodů stejné váhy uvnitř tělesa.

Příklady z minulých let

  1. Nasobilka.cpp - Malá násobilka s jedním cyklem for jako varování před zatemňováním kódu.
  2. Krivka.cpp - Kreslení funkce jedné proměnné v gnuplotu Ukázka vlivu zaokrouhlovacích chyb. Sčítání mocninné řady (a proč nám obvykle nechybí operátor pro umocňování).
  3. Kruznice.cpp - Použití součtových vzorců při kreslení parametricky zadané kružnice [cos(s),sin(s)]
  4. Fibo_r.cpp - Rekurzivní výpočet Fibonacciho čísel.
  5. Fibo_c.cpp - Výpočet Fibonacciho čísel cyklem.
  6. Legendre.cpp - program vypíše data pro namalování prvních k_max Legendrových polynomů.
  7. Koch.cpp - Kreslení Kochovy křivky.
  8. mandel12.cpp Letošní Mandelbrotova množina, plus reklama na FORTRAN (děkuji L.H.)
  9. Mandel2.cpp - Barevné znázornění okolí Mandelbrotovy množiny.
  10. koreny.cpp - Hledání kořenů funkce.
  11. Stejne.cpp - Procházení pole celých čísel, hledání duplicit.
  12. Sito.cpp - Deklarace a užití polí. Eratostenovo sito. Cykly. Ve výstupu programu jsou prvočísla reprezentována jako body na číselné spirále, a vypadá to takto.
  13. strtest.cpp - Pole znaků jako řetězce.
  14. ode_euler1.cpp Řešení obyč. dif. rovnice. (děkuji L.H.)
  15. ode_euler2.cpp Řešení soustavy obyč. dif. rovnic -- Svisly vrh. (děkuji L.H.)
  16. lorenz.cpp Řešení soustavy obyč. dif. rovnic -- Lorenzův atraktor. (děkuji L.H.)
  17. detA.cpp - Výpočet determinantu matice.
  18. qpoc.cpp - Třídění pole celých čísel, hledání duplicit.
  19. randi.cpp - Výpočet těžiště polokoule jako těžiště souboru rovnoměrně rozdělených náhodných bodů stejné váhy uvnitř tělesa.
  20. cmplx.cpp - Předávání odkazem. Pro návrat hodnoty komplexního čísla použijeme dva reálné parametry předávané odkazem.
  21. Komplex.cpp - Typ struct,  předávání odkazem, návrat strukturované hodnoty, inicializace struturované proměnné.
  22. Vektory.cpp - 3D vektory jako struct {double x,y,z},  návrh hlaviček funkcí, ověření Ax(BxC) = B(A.C)-C(A.B).
  23. Extrapol.cpp Urychlení sčítání řady při použití polynomiální extrapolace.
  24. Mandelbrot.cpp - Barevné znázornění okolí Mandelbrotovy množiny. Pokud chcete, můžete použít i komplexní čísla, jak je nazančeno v MandelbrotComplex.cpp, ovšem očekávejte cca 3x pomalejší výpočet.
  25. Eratosthenes.cpp - Deklarace a indexování polí. Eratostenovo sito. Cykly. Ve výstupu programu jsou prvočísla reprezentována jako body na číselné spirále, a vypadá to takto. Kdosi se ptal na Python, tak tady je ukázka 20x pomalejší zato pythonové verze téhož algoritmu.
  26. Diference.cpp - Pole jako skladiště. Doplnění všeobecného vzdělání: co to jsou třetí diference. Ch. Babbage.
  27. Ode.zip - 7 příkladů ukazujících princip numerického řešení obyčených diferenciálních rovnic. Komentář ke cvičení.
.