Algoritmy a programování

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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?

  • Matematicky (vzorcem)
  • V pseudokódu
  • V tabulce
  • Vývojovým diagramem (correct)

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?

<p>Posloupnost kroků pro postupné řešení problému (D)</p> Signup and view all the answers

Co je to programovací jazyk?

<p>Nástroj pro implementaci algoritmů a zápis programů (A)</p> Signup and view all the answers

Jaké jsou druhy algoritmů?

<p>Iterativní, rekurzivní, paralelní, distribuovaný (B)</p> Signup and view all the answers

Jaké jsou druhy programovacích jazyků?

<p>Nízkoúrovňové, vysokoúrovňové, kompilované, interpretované (B)</p> Signup and view all the answers

Co určuje míru abstrakce programovacího jazyka?

<p>Nízkoúrovňovost nebo vysokoúrovňovost jazyka (B)</p> Signup and view all the answers

Co je pravda o rekurzivním algoritmu?

<p>Používá zásobník (LIFO) pro předání parametrů volání (B)</p> Signup and view all the answers

Co je pravda o sériovém algoritmu?

<p>Vykonává všechny příkazy jeden po druhém (v sérii) (B)</p> Signup and view all the answers

Co je pravda o nízkoúrovňových jazycích?

<p>Složí se z registru, paměťových adres a zásobníku volání (A)</p> Signup and view all the answers

Co je pravda o kompilovaných jazycích?

<p>Převáděné přeložkou (kompilátorem) přímo na strojový kód (D)</p> Signup and view all the answers

Co je pravda o transpilovaných jazycích?

<p>Program se přeloží/transpiluje do zdrojového kódu v jiném jazyce (A)</p> Signup and view all the answers

Co je pravda o interpretovaných jazycích?

<p>Kód je vyhodnocován řádek po řádku při běhu programu (A)</p> Signup and view all the answers

Jaké vlastnosti má algoritmus?

<p>Konečnost, správnost, resultativnost, determinovanost (B)</p> Signup and view all the answers

Co je charakteristické pro první generaci programovacích jazyků?

<p>Hardwarová závislost, instrukce tvořeny posloupností nul a jedniček (A)</p> Signup and view all the answers

Jaký je rozdíl mezi jazyky Wiring, PHP a C#?

<p>Wiring je kompilovaný jazyk, PHP a C# jsou interpretované jazyky (A)</p> Signup and view all the answers

Co je základní strukturou programu v jazyce C#?

<p>Hlavní metoda (C)</p> Signup and view all the answers

Kde se píše kód v jazyce PHP?

<p>Do souboru s příponou .php (C)</p> Signup and view all the answers

Jaký typ kódu se v základu píše v jazyce JavaScript?

<p>.js (A)</p> Signup and view all the answers

V jakém typu souboru se píše kód v jazyce Assembler?

<p>.asm (D)</p> Signup and view all the answers

Co jsou identifikátory v programovacích jazycích?

<p>Pojmenování strukturálních částí zdrojového kódu (C)</p> Signup and view all the answers

Jak se dělí algoritmy podle implementace?

<p>Rekurzivní a iterativní (D)</p> Signup and view all the answers

Jak lze znázornit algoritmus?

<p>Matematicky (vzorcem) (D)</p> Signup and view all the answers

Co je to programovací jazyk?

<p>Nástroj pro implementaci algoritmů a zápis programů (A)</p> Signup and view all the answers

Jaké jsou druhy programovacích jazyků?

<p>Vysokoúrovňové, objektově orientované, procedurální, interpretované (C)</p> 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?

<p>Konečnost (A)</p> 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?

<p>První generace (C)</p> Signup and view all the answers

Jaký je rozdíl mezi rekurzivním a iterativním algoritmem?

<p>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. (B)</p> Signup and view all the answers

Co je pravda o rekurzivním algoritmu?

<p>Může být obtížné ke implementaci pro složité úlohy (D)</p> Signup and view all the answers

Co je charakteristické pro první generaci programovacích jazyků?

<p>Složí se z registru, paměťových adres a zásobníku volání (A)</p> Signup and view all the answers

Co je pravda o transpilovaných jazycích?

<p>Program se přeloží/transpiluje do zdrojového kódu v jiném jazyce (A)</p> Signup and view all the answers

Co je pravda o sériovém algoritmu?

<p>Vykonává všechny příkazy jeden po druhém (v sérii) (B)</p> Signup and view all the answers

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.

Quiz Team

Related Documents

Co je to algoritmus.pdf

More Like This

Algoritmy a programování
18 questions
Algoritmy a programování
22 questions
Algoritmus a programování
12 questions
Úvod do programování
5 questions

Úvod do programování

EverlastingRabbit avatar
EverlastingRabbit
Use Quizgecko on...
Browser
Browser