Zadání k 2. programovacímu testu

Rozměr: px
Začít zobrazení ze stránky:

Download "Zadání k 2. programovacímu testu"

Transkript

1 Zadání k 2. programovacímu testu Úvod do programovacích jazyků (Java) :08 Michal Krátký Katedra informatiky Technická univerzita Ostrava Historie změn, příklady: 21 Poznámka: Pokud není řečeno jinak, posloupnost na výstupu bude setříděna vzestupně. 1

2 1. Zadání 1. Napište metodu quicksort(byte[] pole), která setřídí vstupní posloupnost rekurzivním algoritmem třídění rozdělováním (QuickSort). 2. Napište metodu void print(byte[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu quicksort pro posloupnost {5, 9, 1, -9, 8, 85, 23, -80, 10, 19, 0, -3, 33, 42, 37}. Vypište pole metodou print před a po 2. Zadání 1. Napište metodu quicksort(short[] pole), která setřídí vstupní posloupnost rekurzivním algoritmem třídění rozdělováním (QuickSort). 2. Napište metodu void print(short[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu quicksort pro posloupnost {500, 9012, 1, -781, 8, 58, 2389, -80, 105, 197, 0, -33, 3374, 42, 73}. Vypište pole metodou print před a po 3. Zadání 1. Napište metodu quicksort(int[] pole), která setřídí vstupní posloupnost rekurzivním algoritmem třídění rozdělováním (QuickSort). 3. V metodě main() volejte metodu quicksort pro posloupnost {500, , 1, -781, 8, 89558, 2389, -80, 105, 197, 0, -33, 3374, 42452, 32}. Vypište pole metodou print před a po 4. Zadání 1. Napište metodu quicksort(double[] pole), která setřídí vstupní posloupnost rekurzivním algoritmem třídění rozdělováním (QuickSort). 2. Napište metodu void print(double[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu quicksort pro posloupnost {0.1, , 1.789, , 8.4, 8.6, 238.9, -8.0, 10.5, 1.97, 0, -33.7, 7.337, 2.42, 75.4}. Vypište pole metodou print před a po 5. Zadání 1. Napište metodu quicksort(long[] pole), která setřídí vstupní posloupnost rekurzivním algoritmem třídění rozdělováním (QuickSort). 2. Napište metodu void print(long[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu quicksort pro posloupnost {500, L, 1, -781, 8, L, 2389, -80, 105, 197, 0, -33, 3374, 4, 32}. Vypište pole metodou print před a po

3 6. Zadání 1. Napište metodu invquicksort(int[] pole), která sestupně setřídí vstupní posloupnost rekurzivním algoritmem třídění rozdělováním (QuickSort). 3. V metodě main() volejte metodu invquicksort pro posloupnost {500, , 1, -781, 8, 89558, 2389, -80, 105, 197, 0, -33, 3374, 42452, 32}. Vypište pole metodou print před a po 7. Zadání 1. Napište metodu insertsort(int[] pole), která setřídí vstupní posloupnost algoritmem třídění vkládáním (InsertSort). 2. Napište metodu void setrandom(int[] pole), která nastaví prvky pole na náhodné hodnoty < Napište metodu void print(int[] pole), která vypíše hodnoty pole. 4. V metodě main() vytvořte pole 20 čísel, pomocí metody setrandom nastavte prvky pole na náhodné hodnoty a zavolejte metodu insertsort. Vypište pole metodou print před a po Poznámka: Pro vygenerování náhodného čísla použijte metodu double Math.random(), která vrátí hodnotu z intervalu 0.0, 1.0). Pro zjištění délky pole použijte atribut length, např. pole.length 8. Zadání 1. Napište metodu insertsort(double[] pole), která setřídí vstupní posloupnost algoritmem třídění vkládáním (InsertSort). 2. Napište metodu void setrandom(double[] pole), která nastaví prvky pole na náhodné hodnoty < Napište metodu void print(double[] pole), která vypíše hodnoty pole. 4. V metodě main() vytvořte pole 20 čísel, pomocí metody setrandom nastavte prvky pole na náhodné hodnoty a zavolejte metodu insertsort. Vypište pole metodou print před a po Poznámka: Pro vygenerování náhodného čísla použijte metodu double Math.random(), která vrátí hodnotu z intervalu 0.0, 1.0). Pro zjištění délky pole použijte atribut length, např. pole.length 9. Zadání 1. Napište metodu binaryinsertsort(int[] pole), která setřídí vstupní posloupnost algoritmem třídění vkládáním s binárním vyhledáváním (BinaryInsertSort). 3. V metodě main() volejte metodu binaryinsertsort pro posloupnost {500, , 1, -781, 8, 89558, 2389, -80, 105, 197, 0, -33, 3374, 42452, 32}. Vypište pole metodou print před a po

4 10. Zadání 1. Napište metodu selectsort(int[] pole), která setřídí vstupní posloupnost algoritmem třídění výběrem (SelectSort). 2. Napište metodu void setrandom(int[] pole), která nastaví prvky pole na náhodné hodnoty < Napište metodu void print(int[] pole), která vypíše hodnoty pole. 4. V metodě main() vytvořte pole 20 čísel, pomocí metody setrandom nastavte prvky pole na náhodné hodnoty a zavolejte metodu selectsort. Vypište pole metodou print před a po Poznámka: Pro vygenerování náhodného čísla použijte metodu double Math.random(), která vrátí hodnotu z intervalu 0.0, 1.0). Pro zjištění délky pole použijte atribut length, např. pole.length 11. Zadání 1. Napište metodu selectsort(double[] pole), která setřídí vstupní posloupnost algoritmem třídění výběrem (SelectSort). 2. Napište metodu void setrandom(double[] pole), která nastaví prvky pole na náhodné hodnoty < Napište metodu void print(double[] pole), která vypíše hodnoty pole. 4. V metodě main() vytvořte pole 20 čísel, pomocí metody setrandom nastavte prvky pole na náhodné hodnoty a zavolejte metodu selectsort. Vypište pole metodou print před a po Poznámka: Pro vygenerování náhodného čísla použijte metodu double Math.random(), která vrátí hodnotu z intervalu 0.0, 1.0). Pro zjištění délky pole použijte atribut length, např. pole.length 12. Zadání 1. Napište metodu invselectsort(int[] pole), která sestupně setřídí vstupní posloupnost algoritmem třídění výběrem (SelectSort). 2. Napište metodu void setrandom(int[] pole), která nastaví prvky pole na náhodné hodnoty < Napište metodu void print(int[] pole), která vypíše hodnoty pole. 4. V metodě main() vytvořte pole 20 čísel, pomocí metody setrandom nastavte prvky pole na náhodné hodnoty a zavolejte metodu invselectsort. Vypište pole metodou print před a po Poznámka: Pro vygenerování náhodného čísla použijte metodu double Math.random(), která vrátí hodnotu z intervalu 0.0, 1.0). Pro zjištění délky pole použijte atribut length, např. pole.length

5 13. Zadání 1. Napište metodu shellsort(int[] pole), která setřídí vstupní posloupnost algoritmem třídění vkládání s ubývajícím krokem (ShellSort). 3. V metodě main() volejte metodu shellsort pro posloupnost {500, , 1, -781, 8, 89558, 2389, -80, 105, 197, 0, -33, 3374, 42452, 32}. Vypište pole metodou print před a po 14. Zadání 1. Napište metodu shellsort(double[] pole), která setřídí vstupní posloupnost algoritmem třídění vkládání s ubývajícím krokem (ShellSort). 2. Napište metodu void print(double[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu shellsort pro posloupnost {0.1, , 1.789, , 8.4, 8.6, 238.9, -8.0, 10.5, 1.97, 0, -33.7, 7.337, 2.42, 75.4}. Vypište pole metodou print před a po 15. Zadání 1. Napište metodu bubblesort(int[] pole), která setřídí vstupní posloupnost algoritmem bublinkové třídění (BubbleSort). 2. Napište metodu int BinarySearch(int[] pole, int item), která v poli nalezne index prvku item algoritmem binárního vyhledávání. Pokud se prvek v poli nenachází, metoda vrátí Napište metodu void print(int[] pole), která vypíše hodnoty pole. 4. V metodě main() volejte metodu bubblesort pro posloupnost {500, , 1, -781, 8, 89558, 2389, -80, 105, 197, 0, -33, 3374, 42452, 32}. Zavolejte metodu BinarySearch nad setříděným polem pro hodnoty 32 a 31. Vypište pole metodou print před a po 16. Zadání 1. Napište metodu ripplesort(double[] pole), která setřídí vstupní posloupnost variací algoritmu bublinkové třídění RippleSort. V tomto algoritmu si pamatujeme pozici první měněné dvojice posloupnosti. V dalším cyklu pak začínáme od této pozice Napište metodu int BinarySearch(double[] pole, double item), která v poli nalezne index prvku item algoritmem binárního vyhledávání. Pokud se prvek v poli nenachází, metoda vrátí Napište metodu void print(double[] pole), která vypíše hodnoty pole. 4. V metodě main() volejte metodu ripplesort pro posloupnost {0.1, , 1.789, 781.0, 8.4, 8.6, 238.9, 8.0, 10.5, 1.97, 0, 33.7, 7.337, 2.42, 75.4}. Zavolejte metodu BinarySearch nad setříděným polem pro hodnoty 32.0 a Vypište pole metodou print před a po

6 17. Zadání 1. Napište metodu shakersort(int[] pole), která setřídí vstupní posloupnost variací algoritmu bublinkové třídění ShakerSort. 3. V metodě main() volejte metodu shakersort pro posloupnost {500, , 1, 781, 8, 89558, 2389, 80, 105, 197, 0, 33, 3374, 42452, 32}. Vypište pole metodou print před a po 18. Zadání 1. Napište metodu shakersort(double[] pole), která setřídí vstupní posloupnost variací algoritmu bublinkové třídění ShakerSort. 2. Napište metodu void print(double[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu shakersort pro posloupnost {0.1, , 1.789, 781.0, 8.4, 8.6, 238.9, 8.0, 10.5, 1.97, 0, 33.7, 7.337, 2.42, 75.4}. Vypište pole metodou print před a po 19. Zadání 1. Napište metodu invshakersort(int[] pole), která sestupně setřídí vstupní posloupnost variací algoritmu bublinkové třídění ShakerSort. 3. V metodě main() volejte metodu invshakersort pro posloupnost {500, , 1, 781, 8, 89558, 2389, 80, 105, 197, 0, 33, 3374, 42452, 32}. Vypište pole metodou print před a po 20. Zadání 1. Napište metodu dobsort(int[] pole), která setřídí vstupní posloupnost variací algoritmu bublinkové třídění DobSort. 3. V metodě main() volejte metodu dobsort pro posloupnost {500, , 1, -781, 8, 89558, 2389, -80, 105, 197, 0, -33, 3374, 42452, 32}. Vypište pole metodou print před a po

7 21. Zadání 1. Napište metodu radixsort(short[] pole), která setřídí vstupní posloupnost algoritmem RadixSort s M = Napište metodu void print(short[] pole), která vypíše hodnoty pole. 3. V metodě main() volejte metodu radixsort pro posloupnost {500, 9012, 1, 781, 8, 8958, 2389, 80, 105, 197, 0, 33, 3374, 2452, 32}. Vypište pole metodou print před a po 22. Zadání 1. Implementujte dynamické pole hodnot datového typu int. 2. Napište metodu int[] createarray(int capacity), která vytvoří pole o kapacitě capacity. 3. Napište metodu int[] insert(int []array, int item), která vloží prvek item do pole za poslední vložený prvek. Pokud se prvek do pole nevleze, dojde k realokaci pole na dvojnásobnou velikost a metoda vrátí ukazatel na nové pole. V opačném případě metoda vrátí ukazatel na původní pole. 4. Napište metodu void print(int[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 5. V metodě main() vytvořte pomocí metody createarray pole o kapacitě 5 a pak do něj v cyklu uložte 30 hodnot. Nakonec vypište pole metodou print. 23. Zadání 1. Implementujte dynamické pole hodnot datového typu byte. 2. Napište metodu byte[] createarray(int capacity), která vytvoří pole o kapacitě capacity. 3. Napište metodu byte[] insert(byte []array, byte item), která vloží prvek item do pole za poslední vložený prvek. Pokud se prvek do pole nevleze, dojde k realokaci pole na dvojnásobnou velikost a metoda vrátí ukazatel na nové pole. V opačném případě metoda vrátí ukazatel na původní pole. 4. Napište metodu void print(byte[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 5. V metodě main() vytvořte pomocí metody createarray pole o kapacitě 5 a pak do něj v cyklu uložte 30 hodnot. Nakonec vypište pole metodou print.

8 24. Zadání 1. Implementujte dynamické pole hodnot datového typu short. 2. Napište metodu short[] createarray(int capacity), která vytvoří pole o kapacitě capacity. 3. Napište metodu short[] insert(short []array, short item), která vloží prvek item do pole za poslední vložený prvek. Pokud se prvek do pole nevleze, dojde k realokaci pole na dvojnásobnou velikost a metoda vrátí ukazatel na nové pole. V opačném případě metoda vrátí ukazatel na původní pole. 4. Napište metodu void print(short[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 5. V metodě main() vytvořte pomocí metody createarray pole o kapacitě 5 a pak do něj v cyklu uložte 30 hodnot. Nakonec vypište pole metodou print. 25. Zadání 1. Implementujte dynamické pole hodnot datového typu long. 2. Napište metodu long[] createarray(int capacity), která vytvoří pole o kapacitě capacity. 3. Napište metodu long[] insert(long []array, long item), která vloží prvek item do pole za poslední vložený prvek. Pokud se prvek do pole nevleze, dojde k realokaci pole na dvojnásobnou velikost a metoda vrátí ukazatel na nové pole. V opačném případě metoda vrátí ukazatel na původní pole. 4. Napište metodu void print(long[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 5. V metodě main() vytvořte pomocí metody createarray pole o kapacitě 5 a pak do něj v cyklu uložte 30 hodnot. Nakonec vypište pole metodou print. 26. Zadání 1. Implementujte dynamické pole hodnot datového typu double. 2. Napište metodu double[] createarray(int capacity), která vytvoří pole o kapacitě capacity. 3. Napište metodu double[] insert(double []array, double item), která vloží prvek item do pole za poslední vložený prvek. Pokud se prvek do pole nevleze, dojde k realokaci pole na dvojnásobnou velikost a metoda vrátí ukazatel na nové pole. V opačném případě metoda vrátí ukazatel na původní pole. 4. Napište metodu void print(double[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 5. V metodě main() vytvořte pomocí metody createarray pole o kapacitě 5 a pak do něj v cyklu uložte 30 hodnot. Nakonec vypište pole metodou print.

9 27. Zadání 1. Implementujte setříděné statické pole hodnot datového typu int. 2. Napište metodu boolean insert(int []array, int item), která zatřídí prvek item do pole. Pro vyhledání pozice pro nový prvek použijte algoritmus sekvenční vyhledávání. Pokud se prvek do pole nevleze, metoda vrátí false. V opačném případě vrátí true. 3. Napište metodu void print(int[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 4. V metodě main() vytvořte pole o velikosti 30 a pak do něj v cyklu uložte hodnoty {30, 29,..., 0}. Nakonec vypište setříděné pole metodou print. 28. Zadání 1. Implementujte setříděné statické pole hodnot datového typu double. 2. Napište metodu boolean insert(double []array, double item), která zatřídí prvek item do pole. Pro vyhledání pozice pro nový prvek použijte algoritmus binární vyhledávání. Pokud se prvek do pole nevleze, metoda vrátí false. V opačném případě vrátí true. 3. Napište metodu void print(double[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 4. V metodě main() vytvořte pole o velikosti 30 a pak do něj v cyklu uložte hodnoty {30.0, 29.0,..., 0.0}. Nakonec vypište setříděné pole metodou print. 29. Zadání 1. Implementujte sestupně setříděné statické pole hodnot datového typu int. 2. Napište metodu boolean invinsert(int []array, int item), která sestupně zatřídí prvek item do pole. Pro vyhledání pozice pro nový prvek použijte algoritmus sekvenční vyhledávání. Pokud se prvek do pole nevleze, metoda vrátí false. V opačném případě vrátí true. 3. Napište metodu void print(int[] pole), která vypíše všechny hodnoty, které byly do pole vloženy. 4. V metodě main() vytvořte pole o velikosti 30 a pak do něj v cyklu uložte hodnoty {0, 1,..., 29, 30}. Nakonec vypište setříděné pole metodou print.

10 30. Zadání 1. Implementujte datovou strukturu Fronta pomocí pole pro uložení hodnot typu int. 2. Napište metodu int[] createqueue(int capacity), která vytvoří frontu o kapacitě capacity. 3. Napište metodu boolean put(int[] arrayqueue, int item), která uloží prvek na konec fronty a vrátí true. Pokud se prvek do fronty nevleze, metoda vrátí false. 4. Napište metodu int get(int[] arrayqueue), která vyjme první prvek z fronty. Pokud ve frontě není žádný prvek, metoda vrátí Napište metodu boolean empty(int[] arrayqueue), která vrátí true pokud je fronta prázdná. V opačném případě vrátí false. 6. V metodě main() vytvořte pomocí metody createqueue frontu o kapacitě 11 a pak do této fronty vložte v cyklu 13 prvků metodou put. V dalším cyklu 13 volejte metodu get. Vypište výsledky volání těchto metod. 31. Zadání 1. Implementujte datovou strukturu Fronta pomocí pole pro uložení hodnot typu double. 2. Napište metodu double[] createqueue(int capacity), která vytvoří frontu o kapacitě capacity. 3. Napište metodu boolean put(double[] arrayqueue, double item), která uloží prvek na konec fronty a vrátí true. Pokud se prvek do fronty nevleze, metoda vrátí false. 4. Napište metodu double get(double[] arrayqueue), která vyjme první prvek z fronty. Pokud ve frontě není žádný prvek, metoda vrátí Napište metodu boolean empty(double[] arrayqueue), která vrátí true pokud je fronta prázdná. V opačném případě vrátí false. 6. V metodě main() vytvořte pomocí metody createqueue frontu o kapacitě 11 a pak do této fronty vložte v cyklu 13 prvků metodou put. V dalším cyklu 13 volejte metodu get. Vypište výsledky volání těchto metod.

11 32. Zadání 1. Implementujte datovou strukturu Zásobník pomocí pole pro uložení hodnot typu int. 2. Napište metodu int[] createstack(int capacity), která vytvoří zásobník o kapacitě capacity. 3. Napište metodu boolean push(int[] arraystack, int item), která uloží prvek na vrchol zásobníku a vrátí true. Pokud se prvek do zásobníku nevleze, metoda vrátí false. 4. Napište metodu int pop(int[] arraystack), která vyjme prvek z vrcholu zásobníku. Pokud v zásobníku není žádný prvek, metoda vrátí Napište metodu boolean empty(int[] arraystack), která vrátí true pokud je zásobník prázdný. V opačném případě vrátí false. 6. V metodě main() vytvořte pomocí metody createstack zásobník o kapacitě 11 a pak do tohoto zásobníku vložte v cyklu 13 prvků metodou push. V dalším cyklu 13 volejte metodu pop. Vypište výsledky volání těchto metod. 33. Zadání 1. Implementujte datovou strukturu Zásobník pomocí pole pro uložení hodnot typu double. 2. Napište metodu double[] createstack(int capacity), která vytvoří zásobník o kapacitě capacity. 3. Napište metodu boolean push(double[] arraystack, double item), která uloží prvek na vrchol zásobníku a vrátí true. Pokud se prvek do zásobníku nevleze, metoda vrátí false. 4. Napište metodu double pop(double[] arraystack), která vyjme prvek z vrcholu zásobníku. Pokud v zásobníku není žádný prvek, metoda vrátí Napište metodu boolean empty(double[] arraystack), která vrátí true pokud je zásobník prázdný. V opačném případě vrátí false. 6. V metodě main() vytvořte pomocí metody createstack zásobník o kapacitě 11 a pak do tohoto zásobníku vložte v cyklu 13 prvků metodou push. V dalším cyklu 13 volejte metodu pop. Vypište výsledky volání těchto metod.

Maturitní téma: Programovací jazyk JAVA

Maturitní téma: Programovací jazyk JAVA Maturitní téma: Programovací jazyk JAVA Insert Sort (třídění vkládáním) 1. Jako setříděnou část označíme první prvek pole. Jako nesetříděnou část označíme zbytek pole. 2. Vezmeme první (libovolný) prvek

Více

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3 DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),

Více

Kolekce, cyklus foreach

Kolekce, cyklus foreach Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro

Více

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) { Vyhledání extrému v poli použito v algoritmech řazení hledání maxima int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) // nikoli 0 if (Pole[i] > max) max = pole[i];

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů: Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4 Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Třídění, vyhledávání Daniela Szturcová

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;

Více

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto:

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto: 20. Programovací techniky: Abstraktní datový typ, jeho specifikace a implementace. Datový typ zásobník, fronta, tabulka, strom, seznam. Základní algoritmy řazení a vyhledávání. Složitost algoritmů. Abstraktní

Více

Časová složitost algoritmů

Časová složitost algoritmů Časová složitost algoritmů Důležitou vlastností algoritmu je časová náročnost výpočtů provedené podle daného algoritmu Ta se nezískává měřením doby výpočtu pro různá data, ale analýzou algoritmu, jejímž

Více

Pole a kolekce. v C#, Javě a C++

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Abstraktní datové typy

Abstraktní datové typy Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 17. Řadící algoritmy Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický

Více

Spojová implementace lineárních datových struktur

Spojová implementace lineárních datových struktur Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Šablony, kontejnery a iterátory

Šablony, kontejnery a iterátory 7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Databázové a informační systémy 1/9 DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Katedra informatiky FEI VŠB Technická univerzita Ostrava 2012/2013 Databázové a informační systémy 2/9 TABULKA ST U D E N T Pokud nebude

Více

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

Složitosti základních operací B + stromu

Složitosti základních operací B + stromu Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +

Více

Prioritní fronta, halda

Prioritní fronta, halda Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje

Více

Dynamické datové struktury I.

Dynamické datové struktury I. Dynamické datové struktury I. Seznam. Fronta. Zásobník. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Šablony, kontejnery a iterátory

Šablony, kontejnery a iterátory 11. března 2015, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 31 Obsah přednášky 1 Šablony 2 Abstraktní datové struktury 3 Iterátory 4 Array

Více

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12. Obsah přednášky: Definice pojmů o datový typ, o abstraktní datový typ Datové struktury Abstraktní datové typy a jejich implementace o Fronta (Queue) o Zásobník (Stack) o Množina (Set) Algoritmizace (Y36ALG),

Více

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2 PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Programování v C++ 1, 5. cvičení

Programování v C++ 1, 5. cvičení Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

Abstraktní datové typy FRONTA

Abstraktní datové typy FRONTA Abstraktní datové typy FRONTA Fronta je lineární datová struktura tzn., že ke každému prvku s výjimkou posledního náleží jeden následník a ke každému prvku s výjimkou prvního náleží jeden předchůdce. Do

Více

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol. Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Úvod Přetěžování Generika Kolekce Konec. Programování v C# Další jazykové konstrukce. Petr Vaněček 1 / 31

Úvod Přetěžování Generika Kolekce Konec. Programování v C# Další jazykové konstrukce. Petr Vaněček 1 / 31 Programování v C# Další jazykové konstrukce Petr Vaněček 1 / 31 Obsah přednášky Přetěžování metody operátory Generika Kolekce třídy rozhraní 2 / 31 Překrytí vs. přetížení Rozdíl ve způsobu deklarace metody/operátoru

Více

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

1. Téma 03 - Rozhodování

1. Téma 03 - Rozhodování 1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice

Více

Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015

Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015 Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015 doc. Mgr. Jiří Dvorský, Ph.D. 6. dubna 2015 Verze zadání 6. dubna 2015 První verze 1 1 Sledování elektroměrů V panelovém

Více

Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort.

Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort. Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká

Více

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Reprezentace dat v informačních systémech. Jaroslav Šmarda Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

ABSTRAKTNÍ DATOVÉ TYPY (ADT)

ABSTRAKTNÍ DATOVÉ TYPY (ADT) ABSTRAKTNÍ DATOVÉ TYPY (ADT) hierarchie abstrakcí: nejvyšší úroveň ZOO DruhZvirat celá čísla, řetězce nejnižší úroveň bity Abstrahujeme od - reprezentace (implementace) dat - realizace (implementace) operací

Více

NPRG030 Programování I, 2018/19 1 / :03:07

NPRG030 Programování I, 2018/19 1 / :03:07 NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Iterator & for cyklus

Iterator & for cyklus Iterator & for cyklus for (Object o : foo) funguje pokud je foo pole nebo je foo iterovatelné jako to zařídit? implementovat interface java.lang.iterable Iterable má jednu metodu java.util.iterator iterator()

Více

Základy řazení. Karel Richta a kol.

Základy řazení. Karel Richta a kol. Základy řazení Karel Richta a kol. Přednášky byly připraveny s pomocí materiálů, které vyrobili Marko Berezovský, Petr Felkel, Josef Kolář, Michal Píše a Pavel Tvrdík Katedra počítačů Fakulta elektrotechnická

Více

Rekurze a rychlé třídění

Rekurze a rychlé třídění Rekurze a rychlé třídění Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 54 Rekurze Rychlé třídění 2 / 54 Rekurze Recursion Rekurze = odkaz na sama sebe, definice za pomoci sebe

Více

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí: Metody řazení ve vnitřní a vnější paměti. Algoritmy řazení výběrem, vkládáním a zaměňováním. Heapsort, Shell-sort, Radix-sort, Quicksort. Řazení sekvenčních souborů. Řazení souborů s přímým přístupem.

Více

Vysvětlete funkci a popište parametry jednotlivých komponent počítače a periferních zařízení.

Vysvětlete funkci a popište parametry jednotlivých komponent počítače a periferních zařízení. 1 Struktura osobního počítače Zakreslete základní schéma počítače podle Johna von Neumanna. Popište základní strukturu osobního počítače. Vysvětlete funkci a popište parametry jednotlivých komponent počítače

Více

Dynamické datové struktury IV.

Dynamické datové struktury IV. Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Anotace. pointery (pars prima). Martin Pergel,

Anotace. pointery (pars prima). Martin Pergel, Anotace Základní třídicí algoritmy, jednotky oddělený překlad, pointery (pars prima). Problém třídění jednoduché třídicí algoritmy Bublinkové třídění (BubbleSort), zatřid ování alias třídění přímým vkládáním

Více

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

Digitální učební materiál

Digitální učební materiál Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_149_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 5. března 2019 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Třídění a vyhledávání Searching and sorting

Třídění a vyhledávání Searching and sorting Třídění a vyhledávání Searching and sorting Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 33 Vyhledávání Třídění Třídící algoritmy 2 / 33 Vyhledávání Searching Mějme posloupnost (pole)

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý

Více

Rekurze a zásobník. Jak se vypočítá rekurzivní program? volání metody. vyšší adresy. main(){... fa(); //push ret1... } ret1

Rekurze a zásobník. Jak se vypočítá rekurzivní program? volání metody. vyšší adresy. main(){... fa(); //push ret1... } ret1 Rekurze a zásobník Jak se vypočítá rekurzivní program? volání metody vyšší adresy ret1 main(){... fa(); //push ret1... PC ret2 void fa(){... fb(); //push ret2... return //pop void fb(){... return //pop

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 7 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň - ternární

Více

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right) Indukcí dokažte následující výrok: pokud lef t a right jsou parametry funkce f a platí left right, pak volání f(array, left, right) vrátí minimální hodnotu z hodnot všech prvků v poli array na indexech

Více

ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION

ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION FUNKCE PŘI JEJÍM ZAVOLÁNÍ, JEJÍ POSTCONDITION JE SPLNĚNA PŘI NÁVRATU Z FUNKCE (POKUD NASTANE) OBECNĚ FUNKCE

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.

Více

Univerzita Pardubice

Univerzita Pardubice Univerzita Pardubice Fakulta elektrotechniky a informatiky Vizualizace a porovnání algoritmů třídění tabulek Václav Mareš Bakalářská práce 2009 Prohlašuji: Tuto práci jsem vypracoval samostatně. Veškeré

Více

Základy algoritmizace. Hašování

Základy algoritmizace. Hašování Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně

Více

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort. A4B33ALG 2010/05 ALG 07 Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated Quicksort Stabilita řazení 1 Selection sort Neseřazeno Seřazeno Start T O U B J R M A K D Z E min

Více

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky LG 04 Zásobník Fronta Operace nqueue, equeue, Front, mpty... yklická implementace fronty Průchod stromem do šířky Grafy průchod grafem do šířky průchod grafem do hloubky Ořezávání a heuristiky 1 Zásobník

Více

Dynamické datové struktury III.

Dynamické datové struktury III. Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ; Pole Příklad: přečíst teploty naměřené v jednotlivých dnech týdnu, vypočítat průměrnou teplotu a pro každý den vypsat odchylku od průměrné teploty Řešení s proměnnými typu int: int t1, t2, t3, t4, t5,

Více

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti

Více

vyhledávací stromové struktury

vyhledávací stromové struktury vyhledávací algoritmy Brute Force Binary Search Interpolation Search indexové soubory Dense index, Sparse index transformační funkce Perfect Hash, Close Hash Table, Open Hash Table vyhledávací stromové

Více

OOPR_05. Případové studie

OOPR_05. Případové studie OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára

Více