Podcast
Questions and Answers
Co je algoritmus?
Co je algoritmus?
Jak lze znázornit algoritmus?
Jak lze znázornit algoritmus?
Co je to algoritmizace?
Co je to algoritmizace?
Co je to program?
Co je to program?
Signup and view all the answers
Co je to programovací jazyk?
Co je to programovací jazyk?
Signup and view all the answers
Jaké jsou druhy algoritmů?
Jaké jsou druhy algoritmů?
Signup and view all the answers
Jaké jsou druhy programovacích jazyků?
Jaké jsou druhy programovacích jazyků?
Signup and view all the answers
Co určuje míru abstrakce programovacího jazyka?
Co určuje míru abstrakce programovacího jazyka?
Signup and view all the answers
Co je pravda o rekurzivním algoritmu?
Co je pravda o rekurzivním algoritmu?
Signup and view all the answers
Co je pravda o sériovém algoritmu?
Co je pravda o sériovém algoritmu?
Signup and view all the answers
Co je pravda o nízkoúrovňových jazycích?
Co je pravda o nízkoúrovňových jazycích?
Signup and view all the answers
Co je pravda o kompilovaných jazycích?
Co je pravda o kompilovaných jazycích?
Signup and view all the answers
Co je pravda o transpilovaných jazycích?
Co je pravda o transpilovaných jazycích?
Signup and view all the answers
Co je pravda o interpretovaných jazycích?
Co je pravda o interpretovaných jazycích?
Signup and view all the answers
Jaké vlastnosti má algoritmus?
Jaké vlastnosti má algoritmus?
Signup and view all the answers
Co je charakteristické pro první generaci programovacích jazyků?
Co je charakteristické pro první generaci programovacích jazyků?
Signup and view all the answers
Jaký je rozdíl mezi jazyky Wiring, PHP a C#?
Jaký je rozdíl mezi jazyky Wiring, PHP a C#?
Signup and view all the answers
Co je základní strukturou programu v jazyce C#?
Co je základní strukturou programu v jazyce C#?
Signup and view all the answers
Kde se píše kód v jazyce PHP?
Kde se píše kód v jazyce PHP?
Signup and view all the answers
Jaký typ kódu se v základu píše v jazyce JavaScript?
Jaký typ kódu se v základu píše v jazyce JavaScript?
Signup and view all the answers
V jakém typu souboru se píše kód v jazyce Assembler?
V jakém typu souboru se píše kód v jazyce Assembler?
Signup and view all the answers
Co jsou identifikátory v programovacích jazycích?
Co jsou identifikátory v programovacích jazycích?
Signup and view all the answers
Jak se dělí algoritmy podle implementace?
Jak se dělí algoritmy podle implementace?
Signup and view all the answers
Jak lze znázornit algoritmus?
Jak lze znázornit algoritmus?
Signup and view all the answers
Co je to programovací jazyk?
Co je to programovací jazyk?
Signup and view all the answers
Jaké jsou druhy programovacích jazyků?
Jaké jsou druhy programovacích jazyků?
Signup and view all the answers
Která vlastnost algoritmu zaručuje, že algoritmus končí po určitém počtu kroků a nenajde se v cyklu?
Která vlastnost algoritmu zaručuje, že algoritmus končí po určitém počtu kroků a nenajde se v cyklu?
Signup and view all the answers
Která generace programovacích jazyků je charakterizována tím, že instrukce jsou tvořeny posloupností nul a jedniček?
Která generace programovacích jazyků je charakterizována tím, že instrukce jsou tvořeny posloupností nul a jedniček?
Signup and view all the answers
Jaký je rozdíl mezi rekurzivním a iterativním algoritmem?
Jaký je rozdíl mezi rekurzivním a iterativním algoritmem?
Signup and view all the answers
Co je pravda o rekurzivním algoritmu?
Co je pravda o rekurzivním algoritmu?
Signup and view all the answers
Co je charakteristické pro první generaci programovacích jazyků?
Co je charakteristické pro první generaci programovacích jazyků?
Signup and view all the answers
Co je pravda o transpilovaných jazycích?
Co je pravda o transpilovaných jazycích?
Signup and view all the answers
Co je pravda o sériovém algoritmu?
Co je pravda o sériovém algoritmu?
Signup and view all the answers
Study Notes
-
Algoritmus má sedm vlastností: konečnost, správnost, resultativnost, determinovanost, univerzálnost, opakovatelnost a konečnost human prevented looping.
-
Algoritmus končí po určitém počtu kroků a nenajde se v cyklu (konečnost).
-
Výsledek vytvořený algoritmem musí být správný (správnost).
-
Algoritmus dospije k řešení po určitém počtu kroků (resultativnost).
-
Jednoznačný způsob pokračování práce algoritmu je určen v každém kroku (determinovanost).
-
Algoritmus lze použít pro řešení obecné úlohy (univerzálnost).
-
Algoritmus vedoucí k stejným výsledkům, pokud jsou zadána stejná data (opakovatelnost).
-
Neexistují jen čtyři generace programovacích jazyků: 1. generace (strojový kód), 2. generace (symbolické adresy), 3. generace (procedurální jazyky) a 4. generace (objektově orientované jazyky), ale existuje 5. generace s GUI.
-
První generace programovacích jazyků: jednoúčelové programy, instrukce jsou tvořeny posloupností nul a jedniček, hardwarově závislý, obtížné ladit, prakticky nečitelný.
-
Druhá generace programovacích jazyků: obecné příkazy, zkracované pomocí symbolických názvů, hardwarově závislý, čitelnost je lepší.
-
Třetí generace programovacích jazyků: procedurální jazyky, vyšší úroveň programování, hardwarově nezávislí, předchůdce OOP, procedury (funkce), jazyky: C, Pascal, SQL.
-
Čtvrtá generace programovacích jazyků: objektově orientované jazyky, reprezentace reálného světa pomocí objektů, jedná se o snahu zobrazit reálný svět, jazyky: C#.
-
Rozdíl mezi jazyky Wiring, PHP a C#: Wiring = interpretované jazyky (skriptovací jazyky), C# = kompilované jazyky, různý způsob překladu jejich zdrojového kódu.
-
V jazyce C#: základní struktura programu: seznam knihoven (= using), jmenný prostor (= namespace), třída (= zapouzdřuje hlavní metodu), hlavní metoda (= spustí se po startu konzolové aplikace).
-
V jazyce Wiring: metoda setup() = vykoná se při startu programu, metoda void() = vykonává se opakovaně po dobu běhu programu, a to ihned po dokončení metody setup().
-
V jazyce PHP: kód se píše mezi tagy do souboru s příponou .php.
-
V jazyce JavaScript: kód se (v základu) píše do souboru s příponou .js, konzolová funkce k vypisání textu.
-
V jazyce Assembler: kód se píše do souboru s příponou .asm, využívá se přiměřeně snadné složité skládání, produkuje strojový kód.
-
Identifikátory: pojmenovávají entity jazyka, např. proměnné, typy, funkce, struktury, objekty.
-
Zásady názvů identifikátorů záleží na konkrétním jazyku.
-
Obvykle se liší oblasti platnosti (scopes): globální, modulová, funkční a kódového bloku.
-
Algoritmy se dělí podle implementace: rekurzivní a iterativní.
-
Rekurzivní algoritmus: funkce obsahuje kód algoritmu zapouzdřený v rekurzi, rozděluje problém na několik podproblemů, výsledky podproblemů "vybublávají" napovrch, až je k dispozici výsledek pro vyřešení rozloženého problému.
-
Rozdíl mezi rekurzivním a iterativním algoritmem: rekurzivní algoritmus si představuje funkci, ve které je kód algoritmu zapouzdřený v rekurzi, opakuje se na částech vstupních dat, iterativní algoritmus používá smyčku a iteruje se, dokud nejsou splněny určité podmínky.
-
Výhody rekurzivního algoritmu: efektivní pro vyřešení problémů s hierarchickou strukturou, vhodné pro problematiky, kde se koncepce podproblemů vyskytují.
-
Rekurzivní algoritmus:
- Ujednodučený kód může být kratší pro jednodušší problémy
- Používá zásobník (LIFO) pro předání parametrů volání
- Vyžaduje paměť a musí být pečlivě implementováno, aby se končila, jinak může dojít k nekonečnému volání a StackOverflow exception
-
Iterativní algoritmus:
- Algoritmus, který se opakuje v cyklu, dokud nedojde k požadovanému výsledku
- Může být snadnější ke implementaci a má menší spotřebu paměti
- Může být obtížné ke implementaci pro složité úlohy
-
Sériový algoritmus:
- Vykonává všechny příkazy jeden po druhém (v sérii)
- Není vždy možné převést sériový na paralelní
- Může být zrychlené při malém množství repetitivních příkazů, jejichž synchronní provedení je příliš pomalé
-
Paralelní algoritmus:
- Vykonává všechny příkazy zároveň (ve více vláknech)
- Využívá vícevláknové zpracování
- Dosahuje rychlejšího výsledku na více strojích
-
Jazyky podle míry abstrakce:
- Nízkoúrovňové jazyky: – Složí se z registru, paměťových adres a zásobníku volání – Pracují se strukturou, která se blíží strojovému kódu – Hlavní výhoda: nejvyšší rychlost programu – Nevýhody: nepřenositelnost na jiný typ procesoru, složité programování, nepříliš srozumitelný zápis
- Vysokoúrovňové jazyky: – Umožňují zapisovat programy, které se blíží lidskému jazyku – Pracují s proměnnými, poli, objekty, funkcemi, cykly, vlákny – Dělení na kompilované, interpretované a transpilované
-
Kompilované jazyky:
- Převáděné přeložkou (kompilátorem) přímo na strojový kód
- Jednou překladem se program spustí
- Výhody: pokud se překlad nepovede, spuštění programu nebude možné (chyby se odhalí hned při kompilaci), přeložený program běží rychleji, jako by byl napsán v Assembleru
- Nevýhody: při změně zdrojového kódu je nutné provést znovu překlad, určitá závislost na platformě
-
Interpretované jazyky:
- Kód je vyhodnocován řádek po řádku při běhu programu
- Interpret provádí každé volání znovu
- Výhody: řeší problém přenositelnosti programů mezi různými platformami, dynamické typování
- Nevýhody: zjištění chyb až při spuštění chybného kódu, pomalejší než kompilované jazyky
-
Transpilované jazyky:
- Program se přeloží/transpiluje do zdrojového kódu v jiném jazyce
- Výhody: můžeme psát kód v novějším jazyce, který se automaticky přemění na jiný, převod kódu ze staršího jazyka do nového, převod již existujícího kódu do modernější podoby
-
Transpilátor:
- Speciální typ kompilátoru převádí zdrojový kód z jednoho vysokoúrovňového programovacího jazyka na druhý
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Tento kvíz se zaměřuje na základní koncepty algoritmů, jejich znázornění a druhy. Dále se dotýká algoritmizace a významu programování.