Seznam vybraných programů ze cvičení 2015-2022
Příklady ze cvičení 2022
cv01a.pas - Nejjednodušší program, příkaz writeln .
cv01b.pas - Součet kvadrátů, proměnné, přiřazovací příkaz, příkaz while .
cv02a_odmocnina.pas - Která racionální čísla p/q aproximují optimálně sqrt(2).
cv02b_reztezovy.pas - Řetězové zlomky aproximující Pi.
cv03a_soucet_rady.pas - Součet geometrické řady.
cv03b_tabulka.pas - Potíže s porovnáváním reálných čísel.
cv03c_pulkolo.pas - Ekvidistantně tabelované funkční hodnoty.
cv04a_stihacka.pas - Pouziti souctovych vzorcu. Dáváme si pozor na přiřazením změněnou proměnnou.
cv04c_pi_obvod.pas - Aproximace Pi prostřednictvím obvodu n-úhelnika. Použití vzorce pro sinus polovičního úhlu. Zaokrouhlovací katastrofa.
cv05a_gcd4.pas - Naše první funkce. Výpočet GCD.
cv05c_fexp.pas - Součet mocniné řady pro exponenciálu.
zubataFunkce.pas - Malujeme graf funkce bez derivace.
cv06a_koreny.pas - Počítáme kořen funkce. Výpočet inverzní funkce k y=f(x).
cv07a_odkazem.pas - Demonstrace použití argumentů předávaných odkazem
, počítání se zlomky.
cv07b_bac_cab.pas - Pole jako argumenty a návratové hodnoty funkcí, počítáme a × (b × c) .
cv07c_max.pas - Učíme se procházet pole. Elementární a ne nezbytně optimální algoritmy.
cv08a_duplo.pas - Pole jako argumenty, hledání duplicit v seznamu.
cv08b1_komplex.pas - Typ záznam, komplexní čísla.
cv08b2_komplex.pas - Knihovna ucomplex. Infix operace. kód knihovny
cv09b_mandel.pas - Zápis do souboru, Mandelbrotův fraktál.
cv10a_matxvek.pas - Matice a vektory. Násobení.
cv10b_soustava.pas - Řešení soustavy rovnic, Gauss-Jordanova eliminace.
cv10c_matice.pas - Funkce vracející natice a vektory libovolné dimenze.
Příklady 2021
Euklides.pas - Euklidův algoritmus pro největší společný dělitel.
CyklusWhile.pas - Program s cyklem while .
for4x.pas - Program s cykly for .
soucetDelitelu.pas - Součet dělitelů. Potízže s přetečením pro velká n .
tabulkaHodnot.pas - Tabulka funkčních hodnot pohodlně ale někdy špatně. Potíže s nepřesnou reprezentací reálných čísel.
tabulkaHodnot2.pas - Tabulka funkčních hodnot správně.
archimedes.pas - Tabulka funkčních hodnot. Parametrická křivka -- Archimedova spirála.
StihackaSpatne.dpr , StihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
taylor_exp.pas - Funkce. Taylorova řada pro exp(x) . Ilustruje též potíže se sčítáním mocninných řad.
zubataFunkce.pas - Malujeme graf funkce bez derivace.
puleni.pas - Příklad funkce hledajici kořen (arccos x). Aserce!
cv06d_baccab.pas - Pole jako argumenty a návratové hodnoty funkcí.
cv07c_max.pas - Procery a funkce prohledávající pole -- maximum.
cv07d_test.pas - Procery a funkce prohledávající pole -- přítomnost prvku. Použití příkazu exit
cv08a_sito.pas - Eratostenovo sito.
cv08c_soustava.pas - Lineární algebra. Gauss-Jordanova eliminace. Matice jako konstanta.
cv11b_Lichob.pas - Funkce jako argument -- lichoběžníkové pravidlo.
cv11c_HarmOsc.pas - Funkce jako argument -- Eulerova metoda pro soustavu dvou dif. rovnic.
cv11d_Planeta.pas - Funkce jako argument -- Eulerova metoda pro soustavu čtyř dif. rovnic.
cv11e_dalsi_metody.pas Planeta - 4. Soustava čtyř dif. rovnic.
prednaska_monte_carlo.pas Kód z přednášky demonstrující několik příkladů použití náhodných čísel.
prednaska_blud_zasobnik.pas Kód z přednášky demonstrující procházení bludiště (prohledáváním do hloubky).
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
cv01b.dpr - Tabulka třetích mocnin, cyklus while.
cv02b_Trojuhelnik.pas - Vnořený výstup.
cv02c_Pi1234.pas - Cyklus. Vypisování aktuálního minima. Racionální aproximace Pi.
cv02e_PiRetez.pas - Racionální aproximace Pi pomocí řetězového zlomku.
cv03a_GeometrickaRada.pas - Cyklus počítá součet geometrické řady.
cv03b_RadaProPi.pas - Cyklus počítá součet řady (-1)^k/(2k+1) .
cv03c_nUhelnikObvod.pas - Obvod n-úhelníka, ztráta přesnosti.
cv04d_Archimedes.pas - Archimédova spirála. Kreslení pomocí gnuplotu.
cv05a_Kolo.pas - Parametrická křivka. Výstup do souboru. GNUPLOT.
cv05b_puleni.lpr - Kořen funkce půlením intervalu. Aserce.
KorenyFunkce.lpr - Hledáme kořeny funkce. Newtonova metoda. Aserce.
Faktorial.lpr - Rekurzivní výpočet faktoriálu.
Fibonacci1.lpr - Rekurzivní výpočet členů Fibonacciho řady. (Strašně pomalé!).
Fibonacci2.lpr - Výpočet členů Fibonacciho řady cyklem (a bez polí).
Legendre.lpr - Výpočet hodnot Legenderova polynomu z Bonnetovy rekurentní formule (ale bez rekurze).
BodyCtverce.lpr - Vracíme výsledek přes argumenty předávané odkazem
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
cv07c_sito.lpr - Eratosthenovo síto, procházejí seznamu.
cv10c_komplex.lpr - Záznam. Komplexní čísla. Přetížené operátory.
cv10_eliminace.pas - Lineární algebra. Gauss-Jordanova eliminace. Matice jako konstanta.
cv10_eliminace2.pas - Matice soustavy vytvořená dedikovanou funkcí.
cv09b_hilbert.lpr - Hilbertova matice. Ztráta přesnosti při její inverzi.
Teziste.dpr - Monte Carlo výpočet polohy těžiště polokoule.
cv11a_Koren.pas - Funkce jako argument -- kořen funkce.
cv11b_Lichob.pas - Funkce jako argument -- lichoběžníkové pravidlo.
cv11c_HarmOsc.pas - Funkce jako argument -- Eulerova metoda pro soustavu dvou dif. rovnic.
cv11d_Planeta.pas - Funkce jako argument -- Eulerova metoda pro soustavu čtyř dif. rovnic.
cv11e_dalsi_metody.pas Planeta - 4. Soustava čtyř dif. rovnic.
Příklady 2018
cv01b.dpr - Tabulka třetích mocnin, cyklus while.
cv2b.dpr - Euklidův algoritmus pro největší společný dělitel.
CyklusWhile2.lpr - Program s cyklem while .
CyklusRepeat.lpr - Program s cyklem repeat .
CyklusFor.lpr - Program s cyklem for .
Nasobilka.lpr - Program s dvěma cykly (tabulka malé násobilky).
Podminky.lpr - Program s dvěma cykly a podmínkou.
SoucetRady.dpr - Součet geometrické řady.
cv03b_tabulka.dpr - Tabulka hodnot funkce.
StihackaSpatne.dpr , StihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
ZubataFunkce.lpr - Malujeme graf funkce bez derivace.
cv05a_pi.lpr - Obvod n-úhelníka půlením úhlů. Ztráta přesnosti při odečítání blízkých čísel.
cv05b_puleni.lpr - Kořen funkce půlením intervalu. Aserce.
KorenyFunkce.lpr - Hledáme kořeny funkce. Newtonova metoda. Aserce.
BodyCtverce.lpr - Vracíme výsledek přes argumenty předávané odkazem
(varianta: ViceCtvercu.lpr ).
Faktorial.lpr - Rekurzivní výpočet faktoriálu.
Fibonacci1.lpr - Rekurzivní výpočet členů Fibonacciho řady. (Strašně pomalé!).
Fibonacci2.lpr - Výpočet členů Fibonacciho řady cyklem (a bez polí).
Legendre.lpr - Výpočet hodnot Legenderova polynomu z Bonnetovy rekurentní formule (ale bez rekurze).
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
cv07_ruznapole.lpr - Používáme pole jako parametry.
cv07c_sito.lpr - Eratosthenovo síto, procházejí seznamu.
cv09b_hilbert.lpr - Hilbertova matice. Ztráta přesnosti při její inverzi.
cv11a_ODE1.pas Dif. rovnice - 1. Princip a chyba Eulerovy metody
cv11b_ODE2.pas Matematické kyvadlo - 2. Eulerova metoda pro dif. rovnici 2. řádu
cv11c_ODE2.pas Matematické kyvadlo - 3. Oddělení numerické metody a řešené rovnice
cv11e_ODE3.pas Planeta - 4. Soustava čtyř dif. rovnic.
cv12a_random6x6.lpr - Náhodná čísla. Kolikrát musíme hodit aby nám padla 6 šestaek za sebou.
cv12_kosikova.lpr - Náhodná čísla. Rozdělení výstupu generátoru náhodných čísel do košů.
cv12_teziste.lpr - Náhodná čísla. Výpočet těžiště polokoule.
Příklady 2018
UzBezim.lpr - Minimální program.
NSD.lpr - Euklidův algoritmus pro výpočet NSD.
CyklusWhile1.lpr - Program s cyklem.
CyklusWhile2.lpr - Program s cyklem while .
CyklusRepeat.lpr - Program s cyklem repeat .
CyklusFor.lpr - Program s cyklem for .
Nasobilka.lpr - Program s dvěma cykly (tabulka malé násobilky).
Podminky.lpr - Program s dvěma cykly a podmínkou.
GrafSin.lpr - Malujeme graf funkce.
RadaSin.lpr - Malujeme graf funkce.
ZubataFunkce.lpr - Malujeme graf funkce bez derivace.
ParamOdkazem.lpr - Předáváme argumenty odkazem.
BodyCtverce.lpr - Vracíme výsledek přes argumenty předávané odkazem
(varianta: ViceCtvercu.lpr ).
KorenyFunkce.lpr - Hledáme kořeny funkce.
Faktorial.lpr - Rekurzivní výpočet faktoriálu.
Fibonacci1.lpr - Rekurzivní výpočet členů Fibonacciho řady. (Strašně pomalé!).
Fibonacci2.lpr - Výpočet členů Fibonacciho řady cyklem (a bez polí).
Legendre.lpr - Výpočet hodnot Legenderova polynomu z Bonnetovy rekurentní formule (ale bez rekurze).
cv09a_det.lpr - Výpočet determinantu matice.
cv10a_matice.lpr - Matice různých velikostí v jednom programu.
cv10c_komplex.lpr - Záznam. Komplexní čísla. Přetížené operátory.
cv10d_mandel.lpr - Zajímavá posloupnost komplexních čísel. Mandelbrotův fraktál.
cv11a_ODE1.pas Dif. rovnice - 1. Princip a chyba Eulerovy metody
cv11b_ODE2.pas Matematické kyvadlo - 2. Eulerova metoda pro dif. rovnici 2. řádu
cv11c_ODE2.pas Matematické kyvadlo - 3. Oddělení numerické metody a řešené rovnice
cv11e_ODE3.pas Planeta - 4. Soustava čtyř dif. rovnic.
blud_lifo.pas Bludiště I.
blud_lifo.pas Bludiště II.
Příklady 2017
cv01b.dpr - Tabulka třetích mocnin, cyklus while.
cv01c.dpr - Tabulka třetích mocnin, cyklus repeat.
cv01d.dpr - Tabulka třetích mocnin, cyklus for.
cv01e.dpr - Součet geometrické řady.
cv01f.dpr - Dva vnořené cykly, malá násobolka.
cv02a.dpr - Cyklus pro počítání součtu řady.
cv02b.dpr - Cyklus vypisující tabulku funčních hodnot.
cv02b.dpr - Cyklus vypisující tabulku funčních hodnot funkce sin(1/x) .
cv05a_ctverec.lpr - Předávání parametrů odkazem.
cv06a_pole.lpr - Pole a 3D vektory, základní operace.
cv07_ruznapole.lpr - Používáme pole jako parametry.
cv11planeta.lpr - Řešení pohybových rovnic planety.
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í.
cv12_random.lpr - Náhodná čísla. Průměry výstupu generátoru náhodných čísel.
cv12_kosikova.lpr - Náhodná čísla. Rozdělení výstupu generátoru náhodných čísel do košů.
cv12_teziste.lpr - Náhodná čísla. Výpočet těžiště polokoule.
Příklady 2016
UzBezim.dpr - kód nejjednoduššího programu.
cv2a.dpr , cv2b.dpr , cv2c.dpr - Euklidův algoritmus pro největší společný dělitel (různé verze).
cv2rada.dpr - Součet řady pro π.
cv02NasobilkaRepeat.dpr ,
cv02NasobilkaWhile.dpr ,
cv02NasobilkaFor.dpr
- Varianty programu s vnořenými cykly. Logické výrazy.
cv3sin.dpr - Funkce. Výpočet součtu řady.
StihackaSpatne.dpr , StihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
Riemann.dpr - Spojitá funkce, co nemá skoro nikde derivaci.
SoucetRadySin.dpr - Funkce počítající mocninnou řadu (a jak se záměrně obejít bez funkce pro mocnění).
cv05_FourierovaRada.dpr - Rozcvička: Funkce počítající harmonickou sumu.
cv06StihackaVar.dpr - Předávání parametrů odkazem.
Faktorial.dpr - běžná a rekurzivní verze funkce realizující výpočet faktoriálu. Aserce.
Fibonacci1.dpr - rekurzivní a z podstaty šíleně pomalá realizace funkce vracející n-tý člen Fibonacciho posloupnosti.
Fibonacci2.dpr - obvyklá školní verse funkce vracející n-tý člen Fibonacciho posloupnosti.
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.
Koreny.dpr - Hledani korenu pulenim intervalu a Newtonovou metodou.
cv08Duplo.dpr - Pole. Procházení, hledání duplicit. Příkaz break.
cv09_Sito.dpr - Pole. Eratostenovo síto. Hledání nejdelších mezer mezi prvočísly.
cv10_Sito.dpr - Pole. Eratostenovo síto. Statistika mezer mezi prvočísly.
cv11_Interpolace.dpr Lagrangeův interpolační vzorec.
cv11_Obvod.dpr Obvod parametricky zadané křivky (Program budeme ještě vylepšovat...).
baccab.pas - Pole a 3D vektory, základní operace.
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 )
difftest.pas Zkousime numericky pocitat derivaci. Ukazka vlivu zaokrouhlovacich chyb. Richardsnova extrapolace.
kyvadlo.pas Eulerova metoda řešení obyčejných diferencálních rovnic.
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.
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
UzBezim.dpr - kód nejjednoduššího programu.
KvadratySWhile.dpr - tabulka kvadrátů celých čísel 0..10 s použitím cyklu while . Trik s Readln před zmizením konzole.
KvadratySRepeat.dpr - tabulka kvadrátů celých čísel 0..10 s použitím cyklu repeat .
KvadratySFor.dpr - tabulka kvadrátů celých čísel 0..10 s použitím cyklu for .
cv3a.dpr - Ukázka programu s vnořenými cykly. Logické výrazy.
nsd.dpr - Největší společn delitel
StihackaSpatne.dpr , StihackaDobre.dpr - příklad na předčasnou ztrátu hodnoty v přiřazovacím příkazu.
Ctverce.dpr - jiný příklad s rizikem předčasného přiřazení. Obr.: Ctverce.png
Faktorial.dpr - běžná a rekurzivní verze funkce realizující výpočet faktoriálu. Aserce.
Fibonacci1.dpr - rekursivní a
z podstaty šíleně pomalá realizace funkce
vracející n-tý člen Fibonacciho posloupnosti.
Fibonacci2.dpr - obvyklá školní verse funkce vracející n-tý člen Fibonacciho posloupnosti.
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.
WrInt.dpr - rekursivní vpis celého čísla v dané soustavě.
Prehod.dpr - jednoduchá procedura a parametry předávané odkazem.
KomplexSkrzVar.dpr - jak z podoprogramu vrátit dvě reálné čísla, t.j.
znovu parametry předávané odkazem. Nepovinné parametry.
Diference.dpr - vpis ekvidistantně tabelovanch funkčních hodnot,
prvních, druhých a třetích diferencí. Pole
- Deklarace, použití, low , high .
Eratosthenes.dpr - nelze vynechat, s použitím gnuplotu jsme pak kreslili četnost prvočísel v intervalu 1..N.
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ů .
Koren.dpr - Hledání kořenu funkce jedné proměnné půlením intervalu a metodou tečen.
PresnostDerivace.dpr - Pokus o numerick vpočet hodnoty derivace jako směrnice sečny a extrapolace na tečnu.
KomplexSkrzRecord.dpr - Tentokrát se zavedou komplexní čísla jako záznam. Mandelbrotův fraktál.
LinAlgebra.dpr - Vpočet determinantu matice a řešení soustavy Gauss-Jordanovou eliminací.
OpakujeSe.dpr - Hledání duplicit v poli O(N^2).
Bublej.dpr - Třídění (řazení) pole probubláváním. Pomalé -- O(N^2) -- ale zkusit to musíme.
TridRychle.dpr - Třídění (řazení) pole -- Quicksort -- O(N log N).
RetezceSeZarazkou.dpr - procházení pole při použití zarážky. Délka a spojování řetězců.
PrumerNCisel.dpr - uložení seznamu spolu s délkou. Inicializovaná proměnná typu záznam a pole.
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í.
Teziste.dpr - Monte Carlo výpočet polohy těžiště polokoule.
Magnet.dpr - Monte Carlo vpočet pole magnetu.