| Úvod |
Algoritmus a vazba na program |
Je důležité si uvědomit, že dosud počítače nejsou schopné zcela samostatného myšlení. Pro provádění výpočtů a obecně zpracování dat je
třeba vytvořit jasné postupy - algoritmy
zpracování.
|
|
Algoritmy - Flowgorithm |
Algoritmus HelloWorld
Algoritmus HelloWorldPromenna
Algoritmus HelloWorldNacteni
Algoritmus PrirozeneCislo
Algoritmus Kalkulacka
Algoritmus KalkulackaPodprogramy
Algoritmus KalkulackaPodprogramyZadejKodOperace
Algoritmus KalkulackaPodprogramyVydelParametry
Algoritmus KalkulackaPodprogramyZadejKodOperaceGrafika
|
|
Úvod k cvičením |
|
|
| Základní příklady |
Hello World |
|
|
Teorie: Popis základních kontrolek na WPF formuláři |
(Dílčí příklady jsou převzaty z https://wpf-tutorial.com/ )
Jakým způsobem se pracuje s jednotlivými kontrolkami
bylo vysvětleno u prvního příkladu v rámci cvičení. Doporučujeme se nejprve
podívat na tento příklad. |
|
Převod sekund |
|
|
Povrch a objem koule |
|
|
Flowgorithm |
HelloWorld - Popis: Algoritmus výpisu zprávy Hello, World! na obrazovku
- Zadání: Vytvořte algoritmus pro konzolovou aplikaci, který vypíše na obrazovku zprávu Hello, World!
PrevodSekund - Popis: Algoritmus převodu celkového počtu sekund na celé hodiny, minuty a sekundy
- Zadání: Vytvořte algoritmus výpočtu počtu hodin, minut a sekund ze zadaného celkového počtu sekund. Výpočet a výpis bude proveden v hlavní metodě
PovrchAObjemKoule - Popis: Algoritmus výpočtu povrchu a objemu koule pomocí funkcí, procedur a bez využití podprogramu
- Zadání: Vytvořte algoritmus výpočtu objemu a povrchu koule o zadaném poloměru uživatelem. Vypočtené hodnoty povrchu a objemu koule vypište v hlavním programu
|
|
Základní pojmy |
Při programování je třeba si uvědomit, že různé datové typy mají také různé rozsahy hodnot, tzn. různé dolní a horní meze. Při překročení
rozsahu během aritmetických výpočtů mohou nastat různé problémy. Uvidíme, že reálná čísla jsou ukládána jen
přibližně, což může mít vliv zejména na přesnost opakovaných výpočtů. |
|
Algoritmy - Flowgorithm |
Algoritmus BinarniPrevodPodprogramValidace
Algoritmus DecimalniPrevodPodprogramValidace
Algoritmus HexadecimalniPrevodPodprogramValidaceZnakNaPoziciASCIIPoziceZnakuASCII
Algoritmus NepresneZobrazeni Popis: vývojový diagram nepřesnosti zobrazení reálného čísla Zadání: Vymyslete algoritmus, který poukáže na nepřesnost zobrazení reálného čísla v závislosti na zvoleném datovém typu. Pro reálné číslo uložené v proměnné x zvolte datový typ float a pro proměnnou y zvolte datový typ double. Pro ilustraci nepřesnosti zvolte hodnotu výrazu x = (n+1) * x – 1. V každé iteraci pro jednotlivá n bude do výrazu vložena hodnota proměnné x, která odpovídá výrazu x = 1/n. Zvolte dva cykly s krokem, kde vnořený cyklus proběhne 30-krát pro každou hodnotu n. Tento vnořený cyklus bude zaznamenávat číslo iterace pomocí proměnné iterace. Ve vnějším cyklu bude postupně nastavena hodnota proměnné n od 1 do 10. Výsledek umístěný na řádku pro každou iteraci bude obsahovat aktuální hodnotu proměnných n; iterace; x; y. U výpisu výsledků za každou 10 řádku vložte prázdnou řádku
|
|
| Příklady s podmíněnými příkazy |
Největší číslo |
|
|
Kvadratická rovnice |
|
|
Flowgorithm |
NejvetsiZe2Cisel - Popis: Algoritmus pro získání větší hodnoty ze dvou zadaných čísel
- Zadání: Vytvořte algoritmus pro konzolovou aplikaci, který porovná dvě zadaná celá čísla a vypíše na obrazovku větší z nich
NejvetsiZe2CiselVcetneRovnosti - Popis: Algoritmus pro porovnání dvou zadaných celých čísel včetně porovnání jejich možné rovnosti
- Zadání: Vytvořte algoritmus pro porovnání dvou zadaných celých čísel, včetně porovnání jejich možné rovnosti, provedeného v hlavním programu a zároveň pomocí podprogramu. V programu se bude testovat, zda je možné provést konverzi číslic na celé číslo. Vypište v konzoli největší hodnotu z těchto zadaných čísel včetně identifikátoru proměnné, ve které je největší hodnota uložena
NejvetsiZe3Cisel - Popis: Algoritmus pro porovnání tří zadaných čísel včetně porovnání jejich možné rovnosti
- Zadání: Vytvořte algoritmus pro porovnání tří zadaných celých čísel, včetně porovnání jejich možné rovnosti, provedeného pomocí podprogramů. Pomocí prvních tří podprogramů se v jejich tělech vypíší identifikátory (názvy) proměnných, ve kterých se nachází největší hodnota i včetně výpisu této hodnoty, zbývající dva podprogramy vypíší největší hodnotu ze zadaných čísel
KvadratickaRovnice - Popis: Algoritmus pro výpočet kořenů kvadratické rovnice
- Zadání: Vytvořte algoritmus pro výpočet kořenů kvadratické rovnice. Koeficienty v rovnici jsou zadány uživatelem v konzolové aplikaci
|
|
Představení jazyka C# |
V následujících kapitolách se seznámíme se základní konstrukcí jazyka C#, základními pojmy a principy, které jsme již poznali v předchozích kapitolách týkající se algoritmizace. Tyto a další principy implementujeme pomocí tohoto programovacího jazyka. |
|
Metody |
|
|
Rozhodování |
|
|
Cykly |
|
|
Zpracování chyb a výjimek |
|
|
HelloWorldNacteni_Main |
Program pro výpis proměnné v níž je uložen text zadaný uživatelem |
|
VolaniMetod_Main |
Program navracející součet hodnot dvou lokálních proměnných
|
|
KalkulackaVicenasobneVetveni_Main |
Program pro řešení aritmetických operací u dvou zadaných čísel - vícenásobné větvení
|
|
KalkulackaVyjimka_Main |
Program s ošetřením výjimky chyby na vstupu
|
|
KalkulackaTypyVyjimek_Main |
Program pro ošetření více typů výjimek
|
|
KalkulackaVyvolaniVyjimky_Main |
Program pro řešení aritmetických operací u dvou zadaných čísel - vyvolání výjimky
|
|
| Příklady s cykly |
Výpis řady čísel |
|
|
Faktoriál |
|
|
Prvočísla |
|
|
Flowgorithm |
VypisRady - Popis: Algoritmus pro výpis řady čísel pomocí cyklů
- Zadání: Vytvořte algoritmus pro konzolovou aplikaci pro výpis řady čísel pomocí jednotlivých podprogramů:
- Cyklus s pevným krokem - čísla od 1 do 10
- Cyklus s podmínkou na začátku - čísla od 11 do 20
- Cyklus s podmínkou na konci - čísla od 21 do 30
- Bez cyklu - čísla od 31 do 40
Faktorial - Popis: Algoritmus pro výpočet faktoriálu
- Zadání: Vytvořte algoritmus pro konzolovou aplikaci pro výpočet faktoriálu:
- Pomocí cyklu s podmínkou na začátku
- Pomocí cyklu s podmínkou na konci
- Pomocí cyklu s krokem
- Pomocí rekurze
|
|
Hodnotové typy |
|
|
Referenční typy - pole |
|
|
Referenční typy - třída |
|
|
VyctovyTyp_Main |
Program s deklarací výčtového typu, deklarací proměnné tohoto typu, přiřazení hodnoty a výpisu jejího obsahu
|
|
VyctovyTypIndex_Main |
Program s deklarací výčtového typu, asociace s datovým typem short, deklarace proměnné výčtového typu, přiřazení hodnoty konstantě výčtového typu a aritmetická operace nad položkami výčtového typu
|
|
StrukturaCas_Main |
Program s deklarací struktury, která obsahuje datové složky, konstruktor a metody
|
|
PoleLidiVypisVyjimka_Main |
Výpis obsahu prvku jednorozměrného pole obsahujícího celá čísla s testem konverze a ošetřením výjimky
|
|
PoleStrukturCas_Main |
Deklarace jednorozměrného pole obsahující jednotlivé struktury, výpis datových složek jednotlivých prvků pole
|
|
VytvorVypisPole_Main |
Přetížené metody pro vytvoření jednorozměrného pole, metoda pro výpis obsahů všech celočíselných prvků jednorozměrného pole
|
|
MaticeVedlejsiDiagonala_Main |
Deklarace dvourozměrného pole, velikost pole, instance pole, vedlejší diagonála
|
|
Auto_Main |
Deklarace nestatické třídy, nestatických a statických datových složek, deklarace veřejných metod, deklarace soukromé metody, vytvoření instance třídy
|
|
AnonymniTrida_Main |
Deklarace anonymní třídy, vytvoření instance, výpis datových složek
|
|
| Příklady s jednorozměrnými poli |
Citovaná literatura |
|
|
| 1_mikrotest |
Poděkování projektům |
|