Podcast
Questions and Answers
Přiřaďte druhy algoritmů k jejich popisu:
Přiřaďte druhy algoritmů k jejich popisu:
Rekurzivní = Algoritmus, který volá sám sebe Iterativní = Algoritmus, který využívá smyčku pro opakované provádění kroků Sériový = Algoritmus, ve kterém jsou kroky prováděny postupně jeden po druhém Paralelní = Algoritmus, ve kterém jsou některé kroky prováděny současně
Přiřaďte pojmy k jejich významu:
Přiřaďte pojmy k jejich významu:
Algoritmizace = Proces tvorby algoritmu pro řešení konkrétního problému Program = Implementace algoritmů, posloupnost instrukcí popisující činnost počítače Programovací jazyk = Nástroj pro implementaci algoritmů a zápis programů Míra abstrakce = Určuje, jestli je programovací jazyk nízkoúrovňový nebo vysokoúrovňový
Přiřaďte druhy programovacích jazyků k jejich charakteristikám:
Přiřaďte druhy programovacích jazyků k jejich charakteristikám:
Nízkoúrovňové = Kompilované do strojového kódu a přímo manipulují s pamětí a registry Vysokoúrovňové = Poskytují vysokou úroveň abstrakce a jsou nezávislé na konkrétním hardwaru Kompilované = Překládají se do strojového kódu před spuštěním programu Interpretované = Překládají se až během provádění programu
Přiřaďte zásady tvorby algoritmů k jejich popisu:
Přiřaďte zásady tvorby algoritmů k jejich popisu:
Signup and view all the answers
Spojte následující typy algoritmů s jejich popisem:
Spojte následující typy algoritmů s jejich popisem:
Signup and view all the answers
Spojte následující typy jazyků s jejich vlastnostmi:
Spojte následující typy jazyků s jejich vlastnostmi:
Signup and view all the answers
Spojte následující typy jazyků s jejich primárním použitím:
Spojte následující typy jazyků s jejich primárním použitím:
Signup and view all the answers
Přiřaďte název generace programovacích jazyků k jejich popisu:
Přiřaďte název generace programovacích jazyků k jejich popisu:
Signup and view all the answers
Přiřaďte způsob překladu jazyka k jeho názvu:
Přiřaďte způsob překladu jazyka k jeho názvu:
Signup and view all the answers
Spojte název programovacího jazyka s jeho základní strukturou programu:
Spojte název programovacího jazyka s jeho základní strukturou programu:
Signup and view all the answers
Přiřaďte pojmy k jejich významu:
Přiřaďte pojmy k jejich významu:
Signup and view all the answers
Přiřaďte výhody rekurzivního algoritmu k jejich popisu:
Přiřaďte výhody rekurzivního algoritmu k jejich popisu:
Signup and view all the answers
Přiřaďte vlastnosti algoritmu k jejich popisu:
Přiřaďte vlastnosti algoritmu k jejich popisu:
Signup and view all the answers
Spojte pojmenování oblasti platnosti s jejich popisem:
Spojte pojmenování oblasti platnosti s jejich popisem:
Signup and view all the answers
Přiřaďte druhy algoritmů k jejich popisu:
Přiřaďte druhy algoritmů k jejich popisu:
Signup and view all the answers
Přiřaďte druhy programovacích jazyků k jejich charakteristikám:
Přiřaďte druhy programovacích jazyků k jejich charakteristikám:
Signup and view all the answers
Přiřaďte názvy programovacích jazyků k jejich primárním použitím:
Přiřaďte názvy programovacích jazyků k jejich primárním použitím:
Signup and view all the answers
Přiřaďte zásady tvorby algoritmů k jejich popisu:
Přiřaďte zásady tvorby algoritmů k jejich popisu:
Signup and view all the answers
Study Notes
-
Rekurzivní algoritmus používá zásobník pro předání parametrů a je vyžadována přítomnost paměti, aby ukončil rekurzi, jinak dojde k nekonečnému volání a k chybě StackOverflow exception.
-
Iterativní algoritmus se opakuje v cyklu, dokud nedojde k požadovanému výsledku. Může být snadnější k implementacii a má menší spotřebu paměti než rekurzivní algoritmus. Pro složité úlohy může být obtížné k implementaci.
-
Sěrový algoritmus provádí všechny příkazy jeden po druhém. Ne vždy možné převést sérový na paralelní, ale může dojít ke zrychlení pro obrovské množství repetitivních příkazů, jejichž synchronní provedení je příliš pomalé.
-
Paralelní algoritmus provádí všechny příkazy zároveň ve více vláknech. Dosahuje rychlejšího výsledku než sérový algoritmus.
-
Jazyky se dělí podle míry abstrakce na nízkoúrovňové a vysokoúrovňové.
-
Nízkoúrovňové jazyky, jako jako Assembly, jsou blíže strojovému kódu a pracují s registry, paměťovými adresami a zásobníky. Mají nejvyšší rychlost programu, ale jsou obtížné pro implementování složitých programů jako je psaní jader OS.
-
Vysokoúrovňové jazyky, jako C#, Java, Python, C++, umožňují zapisovat programy podobné přirozenému lidskému jazyku a pracují s proměnnými, poli, objekty, funkcemi, cykly a vlákny.
-
Jazyky se rozděluji na kompilované, interpretované a transpilované.
-
Kompilované jazyky, jako C, C++, jsou převáděny přímo na strojový kód a mají rychlý spuštění, ale po změně zdrojového kódu je nutné provést znovu překlad a některé závislosti na platformě.
-
Interpretované jazyky, jako Python, Ruby, JavaScript, mají dynamické typování, ale chyby se objevují až při spuštění nepravidelného kódu, a zdrojový kód se analyzuje při každém volání interpretovanému jazyku.
-
Transpilované jazyky, jako TypeScript, převádějí zdrojový kód do jiného jazyka při jeho spuštění a mají výhodu možnosti psát kód v novějším jazyce.
-
Imperativní, objektově orientované, procedurální a funkční jsou různé kategorie vysokoúrovňových jazyků.
-
Imperativní jazyky, jako C, používají příkazy, které mění stav programu.
-
Objektivně orientované jazyky, jako Java, pracují s objekty a operacemi na nich.
-
Procedurální jazyky, jako C, pracují s procedurami a voláními.
-
Funkční jazyky, jako Haskell, pracují s funkcemi.
-
Algoritmus má sedm vlastností: konečnost, správnost, resultativnost, determinovanost, univerzálnost, opakovatelnost a konečnost.
-
Konečnost: Algoritmus skončí po určitém počtu kroků, nezacykluje se.
-
Správnost: Výsledek musí být správný, v Souladě se vstupními data.
-
Resultativnost: Po určitém počtu kroků dospijí k řešení nebo vrátí chybový výsad.
-
Determinovanost: V každém kroku je určen způsob pokračování práce algoritmu.
-
Univerzálnost: Lze použít pro řešení obecné úlohy.
-
Opakovatelnost: Vede vždy ke stejným výsledkům s danými vstupy.
-
Existují čtyři základní generace programovacích jazyků: strojový kód, symbolické adrese, procedurální jazyky a objektově orientované jazyky.
-
- generace: Jednoúčelové programy, instrukce jsou tvořeny nulami a jedničkami, hardwarově závislý, obtížné při hledání chyb, nečitelný.
-
- generace: Obecné příkazy, zkracovány pomocí symbolických názvů, hardwarově závislý, čitelnost je lepší, ale porozumění je stále těžké.
-
- generace: Vyšší úroveň programování, representace reálného světa pomocí objektů, hardwarově nezávislý, jedná se o concept strukturovaného programování, procedury, jazyky: C, Pascal, SQL.
-
- generace: Objektově orientované jazyky, WYSIWYG, jedná se o snahu o reprezentaci reálného světa pomocí objektů, jazyky: C#.
-
Rozdíl mezi minimize jazyky Wiring, PHP a C#: liší se způsobem překladu jejich zdrojového kódu, kompilované jazyky: C#, Wiring, interpretované jazyky: PHP.
-
Základní struktura programu v jazyce C#: základní struktura se liší vytvořeným řešením (konzolová aplikace, desktopová aplikace.), seznam knihoven, jmenný prostor, třída (zapouzdřuje hlavní metodu), hlavní metoda.
-
Základní struktura programu v jazyce Wiring: metoda
setup()
= vykoná se při startu programu, metodavoid()
= vykonává se opakovaně po dobu běhu programu. -
Základní struktura programu v jazyce PHP: kód se píše mezi tagy do souboru s příponou
.php
. -
Základní struktura programu v jazyce JavaScript: kód se (v základu) píše do souboru s příponou
.js
. -
Základní struktura programu v jazyce Assembler: kód se minimize do souboru s příponou
.asm
. -
Identifikátory: pojmenovávají entities jazyka, např. proměnné, typy, funkce, struktury, objekty.
-
Zásady názvů identifikátorů: záleží na konkrétním jazyku.
-
Oblasti platnosti: definují oblast, ze které je možné k vlastnosti přistupovat, rozlišujeme obecně: globální, modulová, funkční, kódového bloku.
-
Rekurzivní algoritmus: si lze představit jako funkci, ve které je kód algoritmu zapouzdřený v rekurzi, rozdělí problem na několik podproblemů, jejichž výsledky uchovává v zásobníku, následně je používá k získání kýženého výsledku, funkce je znovu volána dříve, než je dokončeno její předchozí volání, stejný postup opakuje na částech vstupních dat, musí obsahovat zarážku (podmínku), která má rekurzivní volání ukončit a vrátit výsledek, výsledek vrácený zarážkou je použit k získání mezivýsledků (výsledků podproblémů), výsledky podproblémů postupně "vybublávají" napovrch, až je k dispozici výsledek pro vyřešení rozloženého problému.
-
Výhody rekurzivního algoritmu: může být účinnější než iterativní řešení, jednodušeji popisovat komplikované problémy, může být snadněji paralelizovatelný, může být efektivnější v mnoha oblastech AI a matematiky.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Zjistěte, jak dobře rozumíte algoritmům, programování a jejich různým způsobům znázornění. Tento kvíz vám pomůže procvičit vaše znalosti o algoritmizaci, druzích algoritmů a implementaci programů.