MFF UK / Ústav teoretické fyziky / Tomáš Ledvinka
Přednášky
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
Počítačová algebra
Klasická elektrodynamika (2.r)
Klas. teorie záření
Numerická relativita
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)
Programování prakticky


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


Příklady ze cvičení

  1. cv01a.pas - Nejjednodušší program, příkaz writeln.
  2. cv01b.pas - Součet kvadrátů, proměnné, přiřazovací příkaz, příkaz while.
  3. cv02a_odmocnina.pas - Která racionální čísla p/q aproximují optimálně sqrt(2).
  4. cv02b_reztezovy.pas - Řetězové zlomky aproximující Pi.
  5. cv03a_soucet_rady.pas - Součet geometrické řady.
  6. cv03b_tabulka.pas - Potíže s porovnáváním reálných čísel.
  7. cv03c_pulkolo.pas - Ekvidistantně tabelované funkční hodnoty.
  8. cv04a_stihacka.pas - Pouziti souctovych vzorcu. Dáváme si pozor na přiřazením změněnou proměnnou.
  9. cv04c_pi_obvod.pas - Aproximace Pi prostřednictvím obvodu n-úhelnika. Použití vzorce pro sinus polovičního úhlu. Zaokrouhlovací katastrofa.
  10. cv05a_gcd4.pas - Naše první funkce. Výpočet GCD.
  11. cv05c_fexp.pas - Součet mocniné řady pro exponenciálu.
  12. zubataFunkce.pas - Malujeme graf funkce bez derivace.
  13. cv06a_koreny.pas - Počítáme kořen funkce. Výpočet inverzní funkce k y=f(x).
  14. cv07a_odkazem.pas - Demonstrace použití argumentů předávaných odkazem , počítání se zlomky.
  15. cv07b_bac_cab.pas - Pole jako argumenty a návratové hodnoty funkcí, počítáme a × (b × c) .
  16. cv07c_max.pas - Učíme se procházet pole. Elementární a ne nezbytně optimální algoritmy.
  17. cv08a_duplo.pas - Pole jako argumenty, hledání duplicit v seznamu.
  18. cv08b1_komplex.pas - Typ záznam, komplexní čísla.
  19. cv08b2_komplex.pas - Knihovna ucomplex. Infix operace. kód knihovny
  20. cv09b_mandel.pas - Zápis do souboru, Mandelbrotův fraktál.
  21. cv10a_matxvek.pas - Matice a vektory. Násobení.
  22. cv10b_soustava.pas - Řešení soustavy rovnic, Gauss-Jordanova eliminace.
  23. cv10c_matice.pas - Funkce vracející natice a vektory libovolné dimenze.



Příklady 2021

  1. Euklides.pas - Euklidův algoritmus pro největší společný dělitel.
  2. CyklusWhile.pas - Program s cyklem while.
  3. for4x.pas - Program s cykly for.
  4. soucetDelitelu.pas - Součet dělitelů. Potízže s přetečením pro velká n.
  5. tabulkaHodnot.pas - Tabulka funkčních hodnot pohodlně ale někdy špatně. Potíže s nepřesnou reprezentací reálných čísel.
  6. tabulkaHodnot2.pas - Tabulka funkčních hodnot správně.
  7. archimedes.pas - Tabulka funkčních hodnot. Parametrická křivka -- Archimedova spirála.
  8. StihackaSpatne.dprStihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
  9. taylor_exp.pas - Funkce. Taylorova řada pro exp(x). Ilustruje též potíže se sčítáním mocninných řad.
  10. zubataFunkce.pas - Malujeme graf funkce bez derivace.
  11. puleni.pas - Příklad funkce hledajici kořen (arccos x). Aserce!
  12. cv06d_baccab.pas - Pole jako argumenty a návratové hodnoty funkcí.
  13. cv07c_max.pas - Procery a funkce prohledávající pole -- maximum.
  14. cv07d_test.pas - Procery a funkce prohledávající pole -- přítomnost prvku. Použití příkazu exit
  15. cv08a_sito.pas - Eratostenovo sito.
  16. cv08c_soustava.pas - Lineární algebra. Gauss-Jordanova eliminace. Matice jako konstanta.
  17. cv11b_Lichob.pas - Funkce jako argument -- lichoběžníkové pravidlo.
  18. cv11c_HarmOsc.pas - Funkce jako argument -- Eulerova metoda pro soustavu dvou dif. rovnic.
  19. cv11d_Planeta.pas - Funkce jako argument -- Eulerova metoda pro soustavu čtyř dif. rovnic.
  20. cv11e_dalsi_metody.pas Planeta - 4. Soustava čtyř dif. rovnic.
  21. prednaska_monte_carlo.pas Kód z přednášky demonstrující několik příkladů použití náhodných čísel.
  22. prednaska_blud_zasobnik.pas Kód z přednášky demonstrující procházení bludiště (prohledáváním do hloubky).
  23. prednaska_blud_fronta.pas Kód z přednášky demonstrující procházení bludiště (prohledáváním do šířky).

Příklady 2020

  1. cv01b.dpr - Tabulka třetích mocnin, cyklus while.
  2. cv02b_Trojuhelnik.pas - Vnořený výstup.
  3. cv02c_Pi1234.pas - Cyklus. Vypisování aktuálního minima. Racionální aproximace Pi.
  4. cv02e_PiRetez.pas - Racionální aproximace Pi pomocí řetězového zlomku.
  5. cv03a_GeometrickaRada.pas - Cyklus počítá součet geometrické řady.
  6. cv03b_RadaProPi.pas - Cyklus počítá součet řady (-1)^k/(2k+1).
  7. cv03c_nUhelnikObvod.pas - Obvod n-úhelníka, ztráta přesnosti.
  8. cv04d_Archimedes.pas - Archimédova spirála. Kreslení pomocí gnuplotu.
  9. cv05a_Kolo.pas - Parametrická křivka. Výstup do souboru. GNUPLOT.
  10. cv05b_puleni.lpr - Kořen funkce půlením intervalu. Aserce.
  11. KorenyFunkce.lpr - Hledáme kořeny funkce. Newtonova metoda. Aserce.
  12. Faktorial.lpr - Rekurzivní výpočet faktoriálu.
  13. Fibonacci1.lpr - Rekurzivní výpočet členů Fibonacciho řady. (Strašně pomalé!).
  14. Fibonacci2.lpr - Výpočet členů Fibonacciho řady cyklem (a bez polí).
  15. Legendre.lpr - Výpočet hodnot Legenderova polynomu z Bonnetovy rekurentní formule (ale bez rekurze).
  16. BodyCtverce.lpr - Vracíme výsledek přes argumenty předávané odkazem
  17. baccab.pas - Pole a 3D vektory, základní operace. Rozumíme-li funkcím, umíme i přetěžovat operátory cv06c_baccab_op.lpr
  18. cv07c_sito.lpr - Eratosthenovo síto, procházejí seznamu.
  19. cv10c_komplex.lpr - Záznam. Komplexní čísla. Přetížené operátory.
  20. cv10_eliminace.pas - Lineární algebra. Gauss-Jordanova eliminace. Matice jako konstanta.
  21. cv10_eliminace2.pas - Matice soustavy vytvořená dedikovanou funkcí.
  22. cv09b_hilbert.lpr - Hilbertova matice. Ztráta přesnosti při její inverzi.
  23. Teziste.dpr - Monte Carlo výpočet polohy těžiště polokoule.
  24. cv11a_Koren.pas - Funkce jako argument -- kořen funkce.
  25. cv11b_Lichob.pas - Funkce jako argument -- lichoběžníkové pravidlo.
  26. cv11c_HarmOsc.pas - Funkce jako argument -- Eulerova metoda pro soustavu dvou dif. rovnic.
  27. cv11d_Planeta.pas - Funkce jako argument -- Eulerova metoda pro soustavu čtyř dif. rovnic.
  28. cv11e_dalsi_metody.pas Planeta - 4. Soustava čtyř dif. rovnic.

Příklady 2018

  1. cv01b.dpr - Tabulka třetích mocnin, cyklus while.
  2. cv2b.dpr - Euklidův algoritmus pro největší společný dělitel.
  3. CyklusWhile2.lpr - Program s cyklem while.
  4. CyklusRepeat.lpr - Program s cyklem repeat.
  5. CyklusFor.lpr - Program s cyklem for.
  6. Nasobilka.lpr - Program s dvěma cykly (tabulka malé násobilky).
  7. Podminky.lpr - Program s dvěma cykly a podmínkou.
  8. SoucetRady.dpr - Součet geometrické řady.
  9. cv03b_tabulka.dpr - Tabulka hodnot funkce.
  10. StihackaSpatne.dprStihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
  11. ZubataFunkce.lpr - Malujeme graf funkce bez derivace.
  12. cv05a_pi.lpr - Obvod n-úhelníka půlením úhlů. Ztráta přesnosti při odečítání blízkých čísel.
  13. cv05b_puleni.lpr - Kořen funkce půlením intervalu. Aserce.
  14. KorenyFunkce.lpr - Hledáme kořeny funkce. Newtonova metoda. Aserce.
  15. BodyCtverce.lpr - Vracíme výsledek přes argumenty předávané odkazem (varianta: ViceCtvercu.lpr).
  16. Faktorial.lpr - Rekurzivní výpočet faktoriálu.
  17. Fibonacci1.lpr - Rekurzivní výpočet členů Fibonacciho řady. (Strašně pomalé!).
  18. Fibonacci2.lpr - Výpočet členů Fibonacciho řady cyklem (a bez polí).
  19. Legendre.lpr - Výpočet hodnot Legenderova polynomu z Bonnetovy rekurentní formule (ale bez rekurze).
  20. baccab.pas - Pole a 3D vektory, základní operace. Rozumíme-li funkcím, umíme i přetěžovat operátory cv06c_baccab_op.lpr
  21. cv07_ruznapole.lpr - Používáme pole jako parametry.
  22. cv07c_sito.lpr - Eratosthenovo síto, procházejí seznamu.
  23. cv09b_hilbert.lpr - Hilbertova matice. Ztráta přesnosti při její inverzi.
  24. cv11a_ODE1.pas Dif. rovnice - 1. Princip a chyba Eulerovy metody
  25. cv11b_ODE2.pas Matematické kyvadlo - 2. Eulerova metoda pro dif. rovnici 2. řádu
  26. cv11c_ODE2.pas Matematické kyvadlo - 3. Oddělení numerické metody a řešené rovnice
  27. cv11e_ODE3.pas Planeta - 4. Soustava čtyř dif. rovnic.
  28. cv12a_random6x6.lpr - Náhodná čísla. Kolikrát musíme hodit aby nám padla 6 šestaek za sebou.
  29. cv12_kosikova.lpr - Náhodná čísla. Rozdělení výstupu generátoru náhodných čísel do košů.
  30. cv12_teziste.lpr - Náhodná čísla. Výpočet těžiště polokoule.


Příklady 2018

  1. UzBezim.lpr - Minimální program.
  2. NSD.lpr - Euklidův algoritmus pro výpočet NSD.
  3. CyklusWhile1.lpr - Program s cyklem.
  4. CyklusWhile2.lpr - Program s cyklem while.
  5. CyklusRepeat.lpr - Program s cyklem repeat.
  6. CyklusFor.lpr - Program s cyklem for.
  7. Nasobilka.lpr - Program s dvěma cykly (tabulka malé násobilky).
  8. Podminky.lpr - Program s dvěma cykly a podmínkou.
  9. GrafSin.lpr - Malujeme graf funkce.
  10. RadaSin.lpr - Malujeme graf funkce.
  11. ZubataFunkce.lpr - Malujeme graf funkce bez derivace.
  12. ParamOdkazem.lpr - Předáváme argumenty odkazem.
  13. BodyCtverce.lpr - Vracíme výsledek přes argumenty předávané odkazem (varianta: ViceCtvercu.lpr).
  14. KorenyFunkce.lpr - Hledáme kořeny funkce.
  15. Faktorial.lpr - Rekurzivní výpočet faktoriálu.
  16. Fibonacci1.lpr - Rekurzivní výpočet členů Fibonacciho řady. (Strašně pomalé!).
  17. Fibonacci2.lpr - Výpočet členů Fibonacciho řady cyklem (a bez polí).
  18. Legendre.lpr - Výpočet hodnot Legenderova polynomu z Bonnetovy rekurentní formule (ale bez rekurze).
  19. cv09a_det.lpr - Výpočet determinantu matice.
  20. cv10a_matice.lpr - Matice různých velikostí v jednom programu.
  21. cv10c_komplex.lpr - Záznam. Komplexní čísla. Přetížené operátory.
  22. cv10d_mandel.lpr - Zajímavá posloupnost komplexních čísel. Mandelbrotův fraktál.
  23. cv11a_ODE1.pas Dif. rovnice - 1. Princip a chyba Eulerovy metody
  24. cv11b_ODE2.pas Matematické kyvadlo - 2. Eulerova metoda pro dif. rovnici 2. řádu
  25. cv11c_ODE2.pas Matematické kyvadlo - 3. Oddělení numerické metody a řešené rovnice
  26. cv11e_ODE3.pas Planeta - 4. Soustava čtyř dif. rovnic.
  27. blud_lifo.pas Bludiště I.
  28. blud_lifo.pas Bludiště II.


Příklady 2017

  1. cv01b.dpr - Tabulka třetích mocnin, cyklus while.
  2. cv01c.dpr - Tabulka třetích mocnin, cyklus repeat.
  3. cv01d.dpr - Tabulka třetích mocnin, cyklus for.
  4. cv01e.dpr - Součet geometrické řady.
  5. cv01f.dpr - Dva vnořené cykly, malá násobolka.
  6. cv02a.dpr - Cyklus pro počítání součtu řady.
  7. cv02b.dpr - Cyklus vypisující tabulku funčních hodnot.
  8. cv02b.dpr - Cyklus vypisující tabulku funčních hodnot funkce sin(1/x).
  9. cv05a_ctverec.lpr - Předávání parametrů odkazem.
  10. cv06a_pole.lpr - Pole a 3D vektory, základní operace.
  11. cv07_ruznapole.lpr - Používáme pole jako parametry.
  12. cv11planeta.lpr - Řešení pohybových rovnic planety.
  13. cvDifRov.zip - sedm příkladů nastiňujících zejména programátorské fígle související s numerickým řešením obyčejných diferencálních rovnic. Poznámky ke cvičení.
  14. cv12_random.lpr - Náhodná čísla. Průměry výstupu generátoru náhodných čísel.
  15. cv12_kosikova.lpr - Náhodná čísla. Rozdělení výstupu generátoru náhodných čísel do košů.
  16. cv12_teziste.lpr - Náhodná čísla. Výpočet těžiště polokoule.


Příklady 2016

  1. UzBezim.dpr - kód nejjednoduššího programu.
  2. cv2a.dpr, cv2b.dpr, cv2c.dpr - Euklidův algoritmus pro největší společný dělitel (různé verze).
  3. cv2rada.dpr - Součet řady pro π.
  4. cv02NasobilkaRepeat.dpr, cv02NasobilkaWhile.dpr, cv02NasobilkaFor.dpr - Varianty programu s vnořenými cykly. Logické výrazy.
  5. cv3sin.dpr - Funkce. Výpočet součtu řady.
  6. StihackaSpatne.dprStihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
  7. Riemann.dpr - Spojitá funkce, co nemá skoro nikde derivaci.
  8. SoucetRadySin.dpr - Funkce počítající mocninnou řadu (a jak se záměrně obejít bez funkce pro mocnění).
  9. cv05_FourierovaRada.dpr - Rozcvička: Funkce počítající harmonickou sumu.
  10. cv06StihackaVar.dpr - Předávání parametrů odkazem.
  11. Faktorial.dpr - běžná a rekurzivní verze funkce realizující výpočet faktoriálu. Aserce.
  12. Fibonacci1.dpr - rekurzivní a z podstaty šíleně pomalá realizace funkce vracející n-tý člen Fibonacciho posloupnosti.
  13. Fibonacci2.dpr - obvyklá školní verse funkce vracející n-tý člen Fibonacciho posloupnosti.
  14. LegendreP.dpr - Legenderovy polynomy jsou definovány podobně jako Fibonacciho čísla pomocí rekuzního vztahu, proto puožíváme i podobn algoritmus jako u Fibonacci2.
  15. Koreny.dpr - Hledani korenu pulenim intervalu a Newtonovou metodou.
  16. cv08Duplo.dpr - Pole. Procházení, hledání duplicit. Příkaz break.
  17. cv09_Sito.dpr - Pole. Eratostenovo síto. Hledání nejdelších mezer mezi prvočísly.
  18. cv10_Sito.dpr - Pole. Eratostenovo síto. Statistika mezer mezi prvočísly.
  19. cv11_Interpolace.dpr Lagrangeův interpolační vzorec.
  20. cv11_Obvod.dpr Obvod parametricky zadané křivky (Program budeme ještě vylepšovat...).
  21. baccab.pas - Pole a 3D vektory, základní operace.
  22. cmplx.pas - Komplexní číslo jako záznam, základní operace. Newtonova metoda. (Příklad s obrázekm a komplexní aritmetikou v Pascalu je fpccmplx.pas, též Wikipedie)
  23. difftest.pas Zkousime numericky pocitat derivaci. Ukazka vlivu zaokrouhlovacich chyb. Richardsnova extrapolace.
  24. kyvadlo.pas Eulerova metoda řešení obyčejných diferencálních rovnic.
  25. kyvadlo2.pas Totéž ale s oddělením numerické metody a vlastních rovnic. Navíc přidána o něco lepší metoda pro řešešní dif. rovnic.
  26. cvDifRov.zip - sedm příkladů nastiňujících zejména programátorské fígle související s numerickým řešením obyčejných diferencálních rovnic. Poznámky ke cvičení.

Minulé ročníky

  1. UzBezim.dpr - kód nejjednoduššího programu.
  2. KvadratySWhile.dpr - tabulka kvadrátů celých čísel 0..10 s použitím cyklu while. Trik s Readln před zmizením konzole.
  3. KvadratySRepeat.dpr -  tabulka kvadrátů celých čísel 0..10 s použitím cyklu repeat.
  4. KvadratySFor.dpr - tabulka kvadrátů celých čísel 0..10 s použitím cyklu for.
  5. cv3a.dpr - Ukázka programu s vnořenými cykly. Logické výrazy.
  6. nsd.dpr - Největší společn delitel
  7. StihackaSpatne.dprStihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
  8. Ctverce.dpr - jiný příklad s rizikem předčasného přiřazení. Obr.: Ctverce.png
  9. Faktorial.dpr - běžná a rekurzivní verze funkce realizující výpočet faktoriálu. Aserce.
  10. Fibonacci1.dpr - rekursivní a z podstaty šíleně pomalá realizace funkce vracející n-tý člen Fibonacciho posloupnosti.
  11. Fibonacci2.dpr - obvyklá školní verse funkce vracející n-tý člen Fibonacciho posloupnosti.
  12. LegendreP.dpr - Legenderovy polynomy jsou definovány podobně jako Fibonacciho čísla pomocí rekuzního vztahu, proto puožíváme i podobn algoritmus jako u Fibonacci2.
  13. WrInt.dpr - rekursivní vpis celého čísla v dané soustavě.
  14. Prehod.dpr - jednoduchá procedura a parametry předávané odkazem.
  15. KomplexSkrzVar.dpr - jak z podoprogramu vrátit dvě reálné čísla, t.j. znovu parametry předávané odkazem. Nepovinné parametry.
  16. Diference.dpr - vpis ekvidistantně tabelovanch funkčních hodnot, prvních, druhých a třetích diferencí. Pole - Deklarace, použití, low, high.
  17. Eratosthenes.dpr - nelze vynechat, s použitím gnuplotu jsme pak kreslili četnost prvočísel v intervalu 1..N.
  18. Vektory3D.dpr - definice nového typu + procedury pro práci s ním. Test vztahu A x ( B x C ) = B (A . C) - C (A . B) . Příklad použití: pokus o otáčení vektorů.
  19. Koren.dpr - Hledání kořenu funkce jedné proměnné půlením intervalu a metodou tečen.
  20. PresnostDerivace.dpr - Pokus o numerick vpočet hodnoty derivace jako směrnice sečny a extrapolace na tečnu.
  21. KomplexSkrzRecord.dpr - Tentokrát se zavedou komplexní čísla jako záznam. Mandelbrotův fraktál.
  22. LinAlgebra.dpr - Vpočet determinantu matice a řešení soustavy Gauss-Jordanovou eliminací.
  23. OpakujeSe.dpr - Hledání duplicit v poli O(N^2).
  24. Bublej.dpr - Třídění (řazení) pole probubláváním. Pomalé -- O(N^2) -- ale zkusit to musíme.
  25. TridRychle.dpr - Třídění (řazení) pole -- Quicksort -- O(N log N).
  26. RetezceSeZarazkou.dpr - procházení pole při použití zarážky. Délka a spojování řetězců.
  27. PrumerNCisel.dpr - uložení seznamu spolu s délkou. Inicializovaná proměnná typu záznam a pole.
  28. cvDifRov.zip - sedm příkladů nastiňujících zejména programátorské fígle související s numerickým řešením obyčejných diferencálních rovnic. Poznámky ke cvičení.
  29. Teziste.dpr - Monte Carlo výpočet polohy těžiště polokoule.
  30. Magnet.dpr - Monte Carlo vpočet pole magnetu.
.