Podcast
Questions and Answers
Co je algoritmus?
Co je algoritmus?
- Posloupnost kroků pro postupné řešení problému (correct)
- Proces tvorby algoritmu pro řešení konkrétního problému
- Název způsobu myšlení potřebného pro tvorbu algoritmů
- Řešení konkrétního problému v programovacím jazyce
Jak lze znázornit algoritmus?
Jak lze znázornit algoritmus?
- Matematicky (vzorcem)
- V pseudokódu
- V tabulce
- Vývojovým diagramem (correct)
Co je to algoritmizace?
Co je to algoritmizace?
- Proces tvorby algoritmu pro řešení konkrétního problému (correct)
- Název způsobu myšlení potřebného pro tvorbu algoritmů
- Posloupnost kroků pro postupné řešení problému
- Implementace algoritmů v programovacím jazyce
Co je to program?
Co je to program?
Co je to programovací jazyk?
Co je to programovací jazyk?
Jaké jsou druhy algoritmů?
Jaké jsou druhy algoritmů?
Jaké jsou druhy programovacích jazyků?
Jaké jsou druhy programovacích jazyků?
Co určuje míru abstrakce programovacího jazyka?
Co určuje míru abstrakce programovacího jazyka?
Co je pravda o rekurzivním algoritmu?
Co je pravda o rekurzivním algoritmu?
Co je pravda o sériovém algoritmu?
Co je pravda o sériovém algoritmu?
Co je pravda o nízkoúrovňových jazycích?
Co je pravda o nízkoúrovňových jazycích?
Co je pravda o kompilovaných jazycích?
Co je pravda o kompilovaných jazycích?
Co je pravda o transpilovaných jazycích?
Co je pravda o transpilovaných jazycích?
Co je pravda o interpretovaných jazycích?
Co je pravda o interpretovaných jazycích?
Jaké vlastnosti má algoritmus?
Jaké vlastnosti má algoritmus?
Co je charakteristické pro první generaci programovacích jazyků?
Co je charakteristické pro první generaci programovacích jazyků?
Jaký je rozdíl mezi jazyky Wiring, PHP a C#?
Jaký je rozdíl mezi jazyky Wiring, PHP a C#?
Co je základní strukturou programu v jazyce C#?
Co je základní strukturou programu v jazyce C#?
Kde se píše kód v jazyce PHP?
Kde se píše kód v jazyce PHP?
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?
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?
Co jsou identifikátory v programovacích jazycích?
Co jsou identifikátory v programovacích jazycích?
Jak se dělí algoritmy podle implementace?
Jak se dělí algoritmy podle implementace?
Jak lze znázornit algoritmus?
Jak lze znázornit algoritmus?
Co je to programovací jazyk?
Co je to programovací jazyk?
Jaké jsou druhy programovacích jazyků?
Jaké jsou druhy programovacích jazyků?
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?
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?
Jaký je rozdíl mezi rekurzivním a iterativním algoritmem?
Jaký je rozdíl mezi rekurzivním a iterativním algoritmem?
Co je pravda o rekurzivním algoritmu?
Co je pravda o rekurzivním algoritmu?
Co je charakteristické pro první generaci programovacích jazyků?
Co je charakteristické pro první generaci programovacích jazyků?
Co je pravda o transpilovaných jazycích?
Co je pravda o transpilovaných jazycích?
Co je pravda o sériovém algoritmu?
Co je pravda o sériovém algoritmu?
Flashcards are hidden until you start studying
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.