6. Riadenie chodu programu

Size: px
Start display at page:

Download "6. Riadenie chodu programu"

Transcription

1 6. Riadenie chodu programu 6.1. Výrazový príkaz 6.2. Prázdny príkaz 6.3. Bloky Oblasť platnosti identifikátora 6.5. Podmienený príkaz if-else Prepínač 6.7. Cykly Cyklus while Cyklus for Cyklus do 6.8. Príkaz skoku V doterajšom výklade sme sa dozvedeli, že sa program skladá z funkcie main() a z príkazov, ktoré táto funkcia obsahuje. Svoje intuitívne predstavy o programe rozšírime nielen o prípadné ďalšie funkcie, ale detailnejšie sa pozrieme aj na obsah funkcií. Telo funkcie obsahuje rad príkazov. Naším cieľom je prevádzať práve tie príkazy, ktoré odpovedajú zvolenému zámeru. Výber z príkazov je určený stavom doterajšieho behu programu, vstupnými údajmi a riadiacimi štruktúrami, ktoré sme použili. Program, prevádzajúci príkazy v pevnom a nemennom poradí, ktorý zodpovedá ich umiestnení v zdrojovom texte a naviac bez možnosti ich výberu, iste nieje naším ideálom. A to bez ohľadu na zvolený vyšší programovací jazyk. Cieľom tejto kapitoly je preto zoznámenie sa s riadiacimi štruktúrami. Pred podrobným prístupom najprv uveďme prehľadne príkazy, ktoré máme v C k dispozícii: výrazový príkaz blok podmienený príkaz prepínač cyklus skok 6.1. Výrazový príkaz Výraz poznáme z predchádzajúceho textu. Výrazom je nielen aritmetický výraz (napríklad a + b, či * a), jednoduchý výskyt konštanty (literálu) či premennej, ale aj funkčné volanie a priradenie. Ak výraz ukončíme symbolom ; (bodkočiarka), získame výrazový príkaz.

2 6.2. Prázdny príkaz Prázdny príkaz je výrazový príkaz, v ktorom nie je výrazová časť. Táto konštrukcia nie je tak nezmyselná, ako sa na prvý pohľad môže zdať. Dáva nám v niektorých prípadoch možnosť umiestniť nadbytočnú bodkočiarku ; do zdrojového textu. Napríklad aj za vnorený blok. Pretože sa o prázdnom príkaze môžeme ťažko dozvedieť niečo ďalšieho, podívajme sa radšej na ďalšie príkazy jazyka C Bloky. Všade v C, kde sa môže vyskytovať príkaz, sa môže vyskytovať aj zložený príkaz. Zložený príkaz je postupnosťou príkazov. Konštrukcia, ktorá zložený príkaz vymedzuje, začína ľavou a končí pravou zloženou zátvorkou, a nazýva sa blok. V bloku môžeme, okrem už spomínanej realizácie zloženého príkazu, prevádzať lokálnu deklaráciu a definíciu. Tie však iba na začiatku bloku. Ich platnosť je obmedzená na blok a prípadné ďalšie vnorené bloky. Vnorený blok nemusí byť ukončený bodkočiarkou. Predstavuje zložený príkaz a jeho koniec je jasne určený. Nie je na škodu si uvedomiť, že telo každé funkcie je blokom. Preto sme mohli v tele funkcie main() definovať a používať lokálne premenné. Syntakticky môžeme blok popísať následovne: [declaration_1[; declaration_2... ];] [statement_1 [; statement_2... ] ] Blok teda môže obsahovať žiadnu, jednu či viacero deklarácii. Pokiaľ deklaráciu obsahuje, musí byť od ďalšej časti bloku oddelená bodkočiarkou. Ďalej blok môže obsahovať jednotlivé príkazy, rovnako oddelené bodkočiarkou. Všimnime si, že posledný z príkazov nemusí byť od uzatváracej zloženej zátvorky bloku oddelený bodkočiarkou Oblasť platnosti identifikátoru Identifikátor, ktorý deklarujeme či definujeme, si ponecháva svoju platnosť v programe, v ktorom je deklarovaný či definovaný. Jeho meno je v tomto rozsahu viditeľné, ak nie je maskované: Na úrovni súboru je rozsah platnosti deklarácie vymedzená miestom, kde je deklarácia dokončená, a koncom prekladanej jednotky. Deklarácia na úrovni argumentu funkcie má rozsah od miesta deklarácie argumentu v rámci definície funkcie až do ukončenia vonkajšieho bloku definície funkcie. Pokiaľ sa nejedná o definíciu funkcie, končí rozsah deklarácie argumentu s deklaráciou funkcie. V rámci bloku je deklarácia platná v rozsahu jej dokončenia až do konca bloku. Meno makra je platné od jeho definície (direktívou define) až do miesta, kedy je definícia odstránená (direktívou undef, pokiaľ vôbec odstránená je). Meno makra nemôže byť maskované.

3 6.5. Podmienený príkaz if-else. Operátor podmieneného výrazu? : používame pre výber časti výrazu. Pre výber z príkazov máme k dispozícii podmienený príkaz. Mohli by sme povedať, že sa jedná o príkazy dva. Ich syntaktický zápis je nasledovný if ( <expression> ) <statement1>; if ( <expression> ) <statement1>; else <statement2>; Význam príkazu if je nasledujúci. Po vyhodnotení výrazu expression (musí byť v zátvorkách) sa v prípade jeho nenulovej hodnoty prevedie príkaz statement1. Po jeho prevedení pokračuje program za týmto príkazom. V prípade nulového výsledku výrazu sa riadenie programu predá bezprostredne za podmienený príkaz. Inak povedané sa príkaz statement1 preskočí. Príkaz if môžeme použiť aj s variantom else. Sémantika takého príkazu if-else je v prvej časti totožná so samotným if. Ak je výslednou hodnotou výrazu expression jedna (nenulová hodnota), prevedie sa príkaz statement1. V opačnom prípade, kedy výsledkom je nula, sa prevedie príkaz statement2. V oboch prípadoch sa riadenie programu po prevedení prvého, respektíve druhého, príkazu predá za celý podmienený výraz. Príkaz if Príkaz else Niekedy sa výklad sémantiky predkladá spôsobom, kedy sa nulovej hodnote hovorí nepravda a nenulovej (jedničke) pravda. Ako je už známe z logických výrazov. Potom môžeme v druhej variante povedať, že ak je podmienka splnená, vykoná sa prvý príkaz statement1, inak príkaz druhý statement2. Zdôraznime, že oba príkazy sú ukončené bodkočiarkou.

4 Z predchádzajúcich odstavcov vieme, že miesto príkazu môže byť umiestnený blok. V takom prípade je príkaz jasne vymedzený a bodkočiarku za blokom pred else nepíšeme! Príklad nám ukáže použitie podmieneného príkazu if-else. Máme vypočítať a zobraziť podiel dvoch zadaných racionálnych čísel. Pretože je známe, že nulou deliť nemôžeme, využijeme podmienený príkaz na ošetrenie tohoto obmedzenia. /* subor if-else1.c */ #include <stdio.h> int main(void) float a, b; puts("zadaj dve racionalne cisla:"); scanf("%f %f", &a, &b); if (b == 0.0) puts("\b\nnulou delit nejde!\n"); else float podiel; podiel = a / b; printf("ich podiel je: %10.2f\n", podiel); return 0; Ako prvý príkaz po teste if je jednoduchý výstup reťazca puts(). Je ukončený bodkočiarkou a nasleduje kľúčové slovo else. Príkaz v tejto časti je tvorený blokom. Za blokom bodkočiarka nie je. Pokiaľ by tam bol, bol by chápaný ako prázdny príkaz. Tak je interpretovaná aj bodkočiarka za posledným príkazom v bloku. V úvode tejto kapitoly sme si zhrnuli príkazy jazyka C. Neprekvapí nás teda umiestnenie podmieneného príkazu if ako jedného z príkazov if-else. Spravidla sa umiesťuje na miesto druhého príkazu. Výsledná konštrukcia býva často nazývaná if-else-if: if ( <expression1> ) <statement1>; else if ( <expression2> ) <statement2>; else if ( <expression3> ) <statement3>;... else if ( <expressionn> ) <statementn>; else <statementn+1>; Jej často využívanou vlastnosťou je skutočnosť, že sa prevedie práve jeden z príkazov. Pokiaľ nie je posledný príkaz bez podmienky statementn+1 uvedený, nemusí sa previesť žiadny. Inak povedané, prevedie sa nejviac jeden. Zapamätajme si dobre túto konštrukciu. Nie len pre jej užitočnosť. Po príklade ju budeme môcť porovnať s konštrukciou zvanou prepínač. Našou úlohou je programovo ošetriť, aký alfanumerický znak bol zadaný. Prípadne dať správu o zadaní znaku iného. Pretože je isté, že zadaný znak patrí práve do jednej z tried malé

5 písmená, veľké písmená, číslice a iné, použijeme konštrukciu podmieneného príkazu. Pri použití if-else by pre každú triedu bola znovu testovaná príslušnosť načítaného znaku. Bez ohľadu, či znak už niektorú z predchádzajúcich podmienok splnil. Použitá konštrukcia ifelse-if prípadné nadbytočné testy odstráni. Vždy bude vybraný práve jeden z príkazov. Pripomeňme si logický výraz, ktorý tvorí podmienku if ((znak >= 'a') && (znak <= 'z')) Vonkajšie zátvorky sú povinné, lebo ohraničujú podmienku príkazu if. Vnútorné zátvorky naopak uviesť nemusíme. Priorita operátora && je nižší než relačných operátorov <= a >=. Zátvorky sme aj tak uviedli, lebo zvyšujú čitateľnosť. Celý výpis zdrojového textu nasleduje. /* subor if-else2.c */ #include <stdio.h> int main(void) int znak; printf("zadaj alfanumericky znak:"); scanf("%c", &znak); printf("\nzadal si "); if ((znak >= 'a') && (znak <= 'z')) printf("male pismeno\n"); else if ((znak >= 'A') && (znak <= 'Z')) printf("velke pismeno\n"); else if ((znak >= '0') && (znak <= '9')) printf("cislicu\n"); else printf("\nnezadal si alfanumericky znak!\n"); return 0;

6 6.6. Prepínač Prepínač slúži na rozdelenie postupnosti príkazov na časti, následné vybranie a prevedenie niektorej, či niektorých z nich. Pokiaľ nám táto formulácia prepínač príliš nepriblížila, pokúsme sa inak. Prepínač slúži na vetvenie výpočtu podľa hodnoty celočíselného výrazu. Syntakticky zapísaný príkaz prepínač má tento tvar: switch ( <expression> ) <statement> case <constant expression> : default : Syntaktickú definíciu prepínača však musíme upresniť. Po kľúčovom slove switch nasleduje celočíselný výraz expression uzavretý v zátvorkách. Za ním je príkaz statement, väčšinou tvorený blokom. Blok predstavuje postupnosť príkazov, v ktorých môžu byť umiestnené návestia, ktorých syntax vidíme na druhom riadku definície. Riadiaci príkaz tvorí celočíselný konštantný výraz constant expression uvádzaný kľúčovým slovom case a ukončený dvojbodkou :. Jedno z návestí môže byť kľúčovým slovom default, prirodzene ukončeným dvojbodkou :. Sémantika prepínača je pomerne zložitá. Popíšeme si jednotlivé pravidlá, ktorými sa riadi: Program vyhodnotí konštantný výraz a jeho hodnotu porovnáva s každým z case návestí prepínača. Návestie case môže byť obsiahnuté vo vnútri iných príkazov (v rámci prepínača), okrem prípadného vnoreného prepínača. V jednom prepínači sa nesmú používať dva návestia s rovnakou hodnotou. Ak nastane zhoda hodnoty case návestia s hodnotou switch výrazu expression, je prenesené riadenie programu na toto návestie. Inak je riadenie prenesené na návestie default v rámci príslušného prepínača. Pre návestie default platia rovnaké zásady ako pre iné návestia. Pokiaľ nenapíšeme default návestie a hodnota výrazu switch sa nebude zhodovať so žiadnym z návestí, bude riadenie prenesené na príkaz nasledujúci za prepínačom. Pokiaľ program pri prevádzaní prepínača vykoná príkaz break, bude riadenie prenesené na príkaz nasledujúci za prepínačom. Príkaz break môže byť v rámci prepínača umiestnený v ľubovolných príkazoch, okrem prípadných vnorených do, for, switch alebo while príkazoch. Prepínač switch môže mať mnoho foriem. Pozrime sa na príklad, v ktorom použijeme jednu z nich. Našou úlohou je podať informáciu o tom, aká hodnota padla pri simulovanom hode kocky. Miesto kocky použijeme generátor pseudonáhodných čísel (ďalej im budeme hovoriť len náhodné). Pretože takú elektronickú kocku budeme používať aj v príklade v nasledujúcom odstavci, venovanom cyklom, preberieme si funkcie s ňou spojených podrobnejšie.

7 Pomocou funkcie srand()nastavíme postupnosť náhodných čísel. Ako počiatočnú hodnotu nemôžeme zvoliť konštantu, lebo potom by bola generovaná postupnosť náhodných veličín vždy rovnaká. Preto potrebujeme vhodnú hodnotu, ktorá bude pri každom spustení programu iná. Takto vhodne sa mení napríklad čas. Preto použijeme ako argument návratovú hodnotu funkcie time(). Iné zámery s funkciou time() nemáme, preto použijeme ako jej argument NULL. Nesmieme však zabudnúť čas správne pretypovať. A generátor máme pripravený: srand((unsigned) time(null) ); Teraz musíme vedieť kockou hádzať. Pri volaní funkcie rand() dostávame náhodné celé číslo v rozsahu 0 až RAND_MAX. 16 bitový BC31 definuje túto hodnotu ako MAXINT, konkrétne Pre našu potrebu stačí číslo v rozsahu 0 až 5, ku ktorému pripočítame jedničku. Túto prácu prevedie operácia modulo šiestich. switch (rand() % 6 + 1) Získaná hodnota 1 až 6 je výrazom prepínača switch. V závislosti na tejto hodnote sa riadenie programu prenesie na konštantné návestie. Problém je v tom, že pokiaľ by sme takto označenú postupnosť príkazov neukončili príkazom break, pokračoval by od návestia program ďalej, až po koniec prepínača. Aj táto vlastnosť sa dá využiť. Ukážku vidíme v spojenom hlásení pre hodnoty 2 a 3. Umiestnenie návestia default v prepínači je ľubovolné. Spravidla sa píše na koniec, čo je pomerne zakorenený zvyk. Budeme ich rovnako dodržovať. /* subor switch-1.c */ #include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) char *s; printf("\nhadzem kockou...\n"); srand((unsigned) time(null) ); switch (rand() % 6 + 1) case 1: s = "jednotka"; case 2: case 3: s = "dvojka alebo trojka"; case 4: s = "stvorka"; case 5: s = "patka"; default: s = "sestka"; printf("\npadla %s.\n\n", s); return 0;

8 Ak porovnáme prepínač s konštrukciou if-else-if, vidíme zásadne rozdiely: 1. Rozhodovací výraz if môže testovať hodnoty akéhokoľvek typu, zatiaľ čo rozhodovací výraz príkazu switch musí byť výhradne celočíselným výrazom. 2. V konštrukcii if-else-if sa prevedie najviac (alebo podľa použitia práve) jeden z príkazov. Aj pri prepínači sa nemusí previesť žiadny z príkazov. Môže ich byť však prevedených viac. Konštantné návestie určuje iba prvý z nich. Pokiaľ chceme, oddelíme nasledujúce príkazy príkazom break. 3. V prepínači sa návestie default môže vyskytovať kdekoľvek. Zodpovedajúci variant v konštrukcii ifelseif môže byť umiestnený iba na konci Cykly Cyklus je časť programu, ktorá je v závislosti na podmienke prevádzaná opakovane. U cyklu obvykle rozlišujeme riadiacu podmienku cyklu a telo cyklu. Riadiaca podmienka cyklu určuje, či bude prevedené telo cyklu, alebo bude riadenie predané za príkaz cyklu. Telo cyklu je príkaz, spravidla v podobe bloku. Cykly môžeme rozdeliť podľa toho, či sa telo prevedie aspoň jedenkrát, a cykly, kde telo nemusí byť prevedené vôbec. Rozhodne môžeme povedať, že aj keď v C existujú rôzne typy cyklov, je možné vystačiť s jedným z nich. Aj tak si v tejto podkapitole povieme o všetkých. Ich výber ponecháme na vhodnosti použitia v danej situácii aj na ich individuálnej obľube. V časti venovanej príkazu while si popíšeme niektoré vlastnosti spoločné pre všetky cykly. Postupne teda while, for a do. Cyklus while Príkaz while, vykonáva príkaz statement (telo cyklu) viackrát, alebo vôbec, pokiaľ má v danom kontexte testovací výraz expression nenulovou hodnotu. Syntax príkazu while je nasledujúci: while ( <expression> ) <statement> Príkaz je veľmi často blokom. Tu sa najmä začiatočníci mylne domnievajú, že pokiaľ sa kontext kdekoľvek behom prevádzania príkazov bloku tela cyklu zmení, a podmienka tak prestane byť splnená, je cyklus ukončený. To však nie je pravda. Pravidlo hovorí, že sa príkaz statement prevedie, ak je podmienka expression splnená. Ak je príkazom blok, prevedie sa teda blok celý. Až potom sa znovu prevedie test. Názornejšie bude, pozrieť sa na vývojový diagram.

9 Vo vývojovom diagrame sa vyskytujú nepovinné príkazy break a continue. S prvým z nich sme sa už stretli pri prepínači. Druhý zatiaľ nepoznáme. Ich sémantiku, zakreslenú vo vývojovom diagrame, si teraz popíšeme. Najprv poznamenajme, že obidva sú pokladané za prostriedky štruktúrovaného programovania. Príkaz break má vo všetkých cykloch rovnaký význam. Ukončí prevádzanie príkazov tela cyklu a predá riadenie prvému príkazu za príkazom while. Týmto spôsobom môžeme bezprostredne ukončiť priebeh cyklu bez ohľadu na hodnotu podmienky. Príkaz continue rovnako ukončí prevádzanie príkazov tela cyklu. Riadenie však predá tesne pred príkaz cyklu. Prebehne teda vyhodnotenie testovacieho výrazu a podľa jeho hodnoty pokračuje program rovnako, ako by bolo telo cyklu vykonané do konca (teda bez predčasného ukončenia vykonaním continue). Podobne ako break, má príkaz continue vo všetkých cykloch rovnaký význam. Použitie príkazu while ukazuje príklad. Opäť v ňom používame kocku. S ňou súvisiace funkcie sme popísali v predchádzajúcom príklade. Tentokrát je naším cieľom sčítať počet pokusov, potrebných na to, aby sme hodili šestku POCET-krát. Súčasne s novou látkou si pripomenieme niektoré poznatky z predchádzajúcich kapitol. Konštanta POCET, ktorá nemá uvedený typ má implicitne typ int. Kľúčovým slovom static použitým pri deklarácii premenných celkom a pocet (je to iný identifikátor než POCET), nielen umiestňujeme tieto premenné do dátového segmentu programu, ale zároveň je im pri spustení programu definovaná počiatočná hodnota nula. Vďaka tomu ich ďalej nemusíme inicializovať. Cyklus while samotný prebieha tak dlho, dokiaľ platí podmienka (pocet < POCET). Za blokom, tvoriacim príkaz cyklu, nemusíme písať ukončovaciu bodkočiarku. Nasleduje formátovaný štandardný výstup výsledku a záver funkcie main(). /* subor while-1.c */ #include <stdlib.h> #include <stdio.h> #include <time.h> const POCET = 10; int main(void) static int celkom, pocet; printf("\nhadzem kockou pokial mi nepadne %d-krat sestka....\n", POCET); srand((unsigned) time(null) ); while (pocet < POCET) celkom++; if ((rand() % 6 + 1) == 6) pocet++; printf("\na je to! Hodov bolo celkom %d.\n\n", celkom); return 0;

10 Nasledujúci príklad ukazuje použitie príkazu while spolu s if-else-if a príkazy break a continue. Našou úlohou je porovnanie dvoch načítaných reťazcov a zobrazenie menšieho z nich. Tento príklad používa aritmetiku ukazovateľov, preberanú v rámci jednej z ďalších kapitol. V tomto okamihu prijmeme skutočnosť, že prostredníctvom ukazovateľov porovnávame ASCII hodnoty jednotlivých znakov odpovedajúcich reťazcov. Každý reťazec je ukončený znakom s kódom nula. Zvolená mnemonika pomenúva dva reťazce a a b, ukazovatele na, respektíve do, týchto reťazcov pa a pb. Identifikátor pk predstavuje ukazovateľ na kratší z porovnávaných reťazcov. Algoritmus úlohy porovnáva postupne znaky oboch reťazcov, pokiaľ sú si rovné: else if (*pa == *pb) pa++; pb++; continue; Použitie continue nie je v našom prípade nevyhnutné. Vďaka if-else-if nemôže v tejto vetve tela cyklu nasledovať iný príkaz. Naopak break v oboch ďalších vetvách opúšťa cyklus. Ukončuje tým porovnávanie reťazcov a určuje kratší z nich. V prvom zo zmienených prípadov je if (*pa < *pb) pk = a; hodnota znaku v reťazci a menší, než v reťazci b. a je teda kratší. Cyklus je ukončený. Ďalej by sme totiž opustili definovaný rozsah reťazca a. A pretože je podmienka cyklu napísaná tak, že zaisťuje jeho opakovanie, pokiaľ nenarazíme na koniec aspoň jedného z reťazcov: while ((*pa!= 0x0) && (*pb!= 0x0)) /* '\0' 0 */ Máme istotu, že pokiaľ nenastali predchádzajúce možnosti, musí platiť: else pk = b; Teda, že kratší je druhý reťazec. Tesne za telom cyklu máme ošetrenú variantu, keď skončí druhý z reťazcov skôr. Potom je kratším z reťazcov. Nám neostáva, než ho zobraziť a ukončiť program. Nasleduje neprerušený výpis zdrojového textu riešenia.

11 /************************************************/ /* subor cmp_str.c - compare two strings */ /* porovna dva nacitane retazce a zobrazi mensi */ /************************************************/ #include <stdio.h> #define DLZKA 50 int main(void) char a[dlzka], b[dlzka], *pa, *pb, *pk; /* pa[], pb[], pk[] */ pk = pa = gets(a); pb = gets(b); while ((*pa!= 0x0) && (*pb!= 0x0)) /* '\0' 0 0x0 - toiste*/ if (*pa < *pb) pk = a; else if (*pa == *pb) pa++; pb++; continue; else pk = b; if ((*pa!= 0x0) && (*pb == 0x0)) pk = b; puts("\nkratsi je:"); puts(pk); return 0; Cyklus for Príkaz for prevádza príkaz statement viackrát, alebo vôbec, pokiaľ je hodnota nepovinného testovacieho výrazu expr2 nenulová. V príkaze for môžeme ešte napísať dva ďalšie výrazy s vedľajším efektom, expr1 a expr3. Syntaxe for: for ( [<expr1>] ; [<expr2>] ; [<expr3>] ) <statement> Nepovinný výraz expr1 je prevedený pred prvým vyhodnotením testu. Typicky sa používa pre inicializáciu premenných pred cyklom. Po každom prevedení tela cyklu statement, prevedie program nepovinný výraz expr3. Typicky sa jedná o prípravu ďalšej iterácie cyklu. Pokiaľ neuvedieme testovací výraz expr2, použije prekladač hodnotu 1, a teda bude prevádzať nekonečný cyklus. Našťastie môžeme použiť príkazy break a continue s rovnakým významom, aký sme popísali pri while.

12 Vývojový diagram úplného variantu príkazu for je na obrázku, v ktorom sme ponechali značenie zodpovedajúce vyššie uvedenému syntaxu: Pre tlač ASCII tabuľky znakov s kódmi 32 až 127 použijeme príkaz for v úplnej variante: for (znak = ' '; znak < 128; znak++) V tomto prípade môžeme nazývať premennú znak riadiacou premennou cyklu. Pred testom ju inicializujeme medzerou, teda prvým zobraziteľným ASCII znakom. Nasleduje test na hodnotu 128. Prevádza sa pred každým priechodom telom cyklu. Ak nie je podmienka splnená, pokračuje sa za cyklom. Po každom priechode telom cyklu je riadiaca premenná cyklu znak zvýšená o jedna. Tak je pripravený ďalší priechod cyklom s hodnotou následného ASCII znaku. Samotné telo cyklu vlastne len zobrazuje jednotlivý znak. Ak je jeho ASCII hodnota deliteľná 16 bezo zbytku, zaistí vysielanie konca riadku tvar tabuľky. /* subor for-1.c */ #include <stdio.h> int main(void) int znak; putchar('\n'); for (znak = ' '; znak < 128; znak++) if (znak % 16 == 0) putchar('\n'); putchar(znak); putchar('\n'); return 0; /*!"#$%&'()*+,-./ PQRSTUVWXYZ[\]^_ `abcdefghijklmno pqrstuvwxyz ~&127 */

13 Cyklus do Príkaz do je jediným z cyklov, ktorý zaisťuje aspoň jedno prevedenie tela cyklu. Inak povedané, jeho testovací príkaz statement je testovaný až po priechode telom cyklu. Pokiaľ je test splnený, prevádza sa telo cyklu. Po syntaktickej stránke tvorí telo cyklu opäť výraz expression: do <statement> while ( <expression> ); Vývojový diagram príkazu do túto vlastnosť ukazuje ešte názornejšie: Príkazy break a continue v tele cyklu sa chovajú rovnako, ako v cykloch ostatných. Po break je cyklus opustený, zatiaľ čo po continue je prevedený výraz expression a podľa jeho výsledku sa pokračuje ďalej. Časté použitie príkazu do nájdeme napríklad v tých numerických výpočtoch, kedy je aspoň jedna iterácia nevyhnutná. V našom prípade sa jedná o výpočet približnej hodnoty Eulerového čísla. V prvom priblížení položíme hodnotu e rovnú jednej rovnako, ako hodnotu prírastku epsilon. Za upozornenie stojí dátový typ long double, a teda aj odpovedajúce vhodné určenie typov číselných konštánt. Aj vo formátovanom výstupe sme museli špecifikovať príslušný dátový typ. Operátory priradenia spojené s operáciou nad svojou ľavou stranou sú použité skôr pre pripomenutie ich existencie. /* subor dowhile2.c */ #include <stdio.h> #include <math.h> #define chyba 1.0e-15L int main(void) long double e = 1.0L, epsilon = 1.0L; unsigned long n = 0L; printf("\n"); do epsilon /= ++n; e += epsilon; while (epsilon > chyba); printf("e=%21.18lf\tpocet iteracii:%ld", e, n); return 0;

14 6.8. Príkaz skoku Príkaz skoku patrí k zatracovaným príkazom štruktúrovaného programovania. Skutočne s jeho pomocou dokáže menej skúsený programátor vytvoriť zdrojový text, pre ktorý sa vžilo označenie špagetový. Skutočnosť, že sme si príkaz skoku nezatajili má tri príčiny: 1. Jazyk C proste príkaz skoku obsahuje. Jeho neuvedenie by nebolo fér. 2. Jazyk C umožňuje ako systémový prostriedok písať programy na veľmi nízkej úrovni. Často veľmi blízke strojovému kódu. Použitie skoku v takom prípade môže byť veľmi žiaduce. 3. Skokové príkazy break, continue a return sú označované ako štruktúrované skoky. Ich použitie teórie (ani praxe) programovanie neodmieta. Zostáva nám teda len príkaz skoku goto. Jeho syntax je jednoduchá: identifier: <statement> ; goto <identifier> ; Uviedli sme si nielen syntax goto samotného, ale aj súvisiaceho návestia identifier. Návestie neprevádza žiadnu akciu a nemá iný vplyv na riadenie behu. Jeho identifikátor len označuje nejaké miesto v zdrojovom texte. Príkaz goto prenáša riadenie na príkaz, označený návestím. V rámci jednej funkcie nesmú byť dva rovnaké návestia. Predchádzajúca kapitola Obsah Začiatok Nasledujúca kapitola

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť

More information

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠOVANIE KONCEPTU TRIEDY VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie

More information

Jeden z variantov príkazu priradenia nám umožňuje zadať za sebou aj viacej vstupných hodnôt, ako napríklad

Jeden z variantov príkazu priradenia nám umožňuje zadať za sebou aj viacej vstupných hodnôt, ako napríklad Príkaz priradenia Príkaz priradenia slúži na priradenie hodnoty premennej. Má tvar premenná = výraz, kde premenná je identifikátor, znak = sa číta priraď a vyhodnotením výrazu sa získa hodnota určitého

More information

Databázové systémy. SQL Window functions

Databázové systémy. SQL Window functions Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score

More information

Registrácia účtu Hik-Connect

Registrácia účtu Hik-Connect Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document

More information

Databázy (1) Prednáška 11. Alexander Šimko

Databázy (1) Prednáška 11. Alexander Šimko Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy

More information

kucharka exportu pro 9FFFIMU

kucharka exportu pro 9FFFIMU požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,

More information

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je

More information

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami)

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) I2AI: Lecture 04 Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) Lubica Benuskova Reading: AIMA 3 rd ed. chap. 6 ending with 6.3.2 1 Constraint satisfaction problems (CSP) We w

More information

Poradové a agregačné window funkcie. ROLLUP a CUBE

Poradové a agregačné window funkcie. ROLLUP a CUBE Poradové a agregačné window funkcie. ROLLUP a CUBE 1) Poradové a agregačné window funkcie 2) Extrémy pomocou DENSE_RANK(), TOP() - Príklady 3) Spriemernené poradia 4) Kumulatívne súčty 5) Group By a Datepart,

More information

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.

More information

Testovanie bieleho šumu

Testovanie bieleho šumu Beáta Stehlíková FMFI UK Bratislava Opakovanie z prednášky Vygenerujeme dáta Vygenerujeme dáta: N

More information

Databázy (1) Prednáška 08. Alexander Šimko

Databázy (1) Prednáška 08. Alexander Šimko Databázy (1) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Subqueries (poddopyty) konštrukcia WITH Section 1 Subqueries (poddopyty) Subquery (poddopyt) Použitie SELECTu na mieste, kde sme

More information

7. UKAZOVATELE, POLIA A REŤAZCE

7. UKAZOVATELE, POLIA A REŤAZCE 7. UKAZOVATELE, POLIA A REŤAZCE 7.1. Ukazovatele 7.2. Pole 7.3. Aritmetika ukazovateľov 7.4. Reťazce 7.5. Viacrozmerné pole, ukazovateľ na ukazovateľ 7.6. Ukazovateľ na ukazovateľ a pole ukazateľov 7.7.

More information

2. Konštanty, premenné a deklarácie.

2. Konštanty, premenné a deklarácie. 2. Konštanty, premenné a deklarácie. 2.1 Identifikátory, kľúčové slová a komentáre. 2.2 Základné typy dát 2.3 Konštanty a premenné. Konštanty Celočíselné konštanty Racionálne konštanty Znakové konštanty

More information

Programovanie v jazyku Python. Michal Kvasnica

Programovanie v jazyku Python. Michal Kvasnica Programovanie v jazyku Python Michal Kvasnica Organizačné detaily Prednášky aj cvičenia v 638 Povinná účasť na cvičeniach Hodnotenie: priebežné odovzdávanie zadaní (40% známky) záverečný projekt na skúške

More information

Aplikačný dizajn manuál

Aplikačný dizajn manuál Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,

More information

Systém pre podporu výuky teórie programovacích jazykov

Systém pre podporu výuky teórie programovacích jazykov Mendelova univerzita v Brně Provozně ekonomická fakulta Systém pre podporu výuky teórie programovacích jazykov Diplomová práca Vedúci práce: doc. Ing. Dr. Jiří Rybička Bc. Petra Pavlačičová Brno 2012 Ďakujem

More information

Databázy (2) Prednáška 08. Alexander Šimko

Databázy (2) Prednáška 08. Alexander Šimko Databázy (2) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Funkcie Zložené typy PL/pgSQL Agregačné funkcie Funkcie Section 1 Funkcie Funkcie PostgreSQL umožňuje vytvoriť si vlastné databázové

More information

Copyright 2016 by Martin Krug. All rights reserved.

Copyright 2016 by Martin Krug. All rights reserved. MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without

More information

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Jazyk SQL Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Jazyk SQL - Structured Query Language SQL je počítačový jazyk určený na komunikáciu s relačným SRBD neprocedurálny (deklaratívny) jazyk

More information

1 Komplexný príklad využitia OOP

1 Komplexný príklad využitia OOP 1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou

More information

Obrázok č. 1 Byte. Obrázok č. 2 Slovo

Obrázok č. 1 Byte. Obrázok č. 2 Slovo C++ pod lupou Nie som ortodoxným prívržencom nijakého dnes používaného jazyka, poznám ich už riadnu kôpku, ale najbližšie mám práve k C++. Prečo, o tom by sa dalo diskutovať donekonečna, nie je to však

More information

1 Vytvorenie tabuľky

1 Vytvorenie tabuľky Základy jazyka SQL (Structured Query Language) - vyvinula IBM začiatkom 70-tych rokov - je to deklaratívny jazyk (popisuje čo urobiť, nie ako) - je súčasťou veľkých databázových systémov (Informix, Oracle,

More information

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals...

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals... Desatinné čísla #1a Mravec išiel 5,5 cm presne na sever, potom 3,4 cm na východ, 1,8 cm na juh, 14,3 cm na západ, 1,3 cm na sever a 10,9 cm na východ. Najmenej koľko cm musí teraz prejsť, aby sa dostal

More information

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit.

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit. Fiber 5 Mbit ** 5 Mbit / Mbit 5,90 Fiber 50 Mbit * 50 Mbit / 8 Mbit 9,90 Fiber 80 Mbit * 80 Mbit / Mbit 5,90 Mini Mbit* Mbit / Mbit 9,90 Klasik 2 Mbit* 2 Mbit / 2 Mbit Standard 8 Mbit* 8 Mbit / 3Mbit Expert

More information

Spôsoby zistenia ID KEP

Spôsoby zistenia ID KEP Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup

More information

XHTML1folie.doc XHTML Čo bolo predtým?

XHTML1folie.doc XHTML Čo bolo predtým? XHTML1folie.doc 1 1.1 XHTML 1.1.1 Čo bolo predtým? XHTML - nová definícia jazyka HTML vo forme XML. Vývoj HTML: r. 1995 HTML 2.0 (základné formátovanie a štruktúrovanie, obrázky, formuláre). V r. 1995

More information

Vnorené SQL. Autor prezentácie: Peter Šípoš

Vnorené SQL. Autor prezentácie: Peter Šípoš Vnorené SQL Autor prezentácie: Peter Šípoš Literatúra Programmatic SQL od Pearson Ed Embedded SQL: http://download.oracle. com/docs/cd/b10501_01/appdev.920/a97269/pc_06sql.htm Oracle Dynamic SQL: http://download.oracle.

More information

Portál pre odborné publikovanie ISSN

Portál pre odborné publikovanie ISSN 1 Portál pre odborné publikovanie ISSN 1338-0087 16. Matlab 2D grafy Foltin Martin MATLAB/Comsol 25.09.2009 Silnou stránkou prostredia Matlab je grafika. Grafika je nástroj na prehľadné zobrazovanie výsledkov,

More information

2. prednáška ( )

2. prednáška ( ) 2. prednáška (24.9.2018) č 1 Na predošlej prednáške (1) Vytvorenie objektu triedy a premennej (napr. franklin), cez ktorú s vytvoreným objektom komunikujeme: Turtle franklin = new Turtle(); Volanie metód

More information

Triedy v C++ 1. Úvod do tried

Triedy v C++ 1. Úvod do tried 1. Úvod do tried Používanie nového dátového typu ktorý budeme oht class trieda nás dovedie k využívaniu objektových vlastností jazyka C++. Tento nový typ programov OOP objektovo orientované programovanie

More information

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky

More information

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov D.4 Kontajner XML údajov (XMLDataContainer) Príloha č. 11 k výnosu č. 55/2014 Z. z. [pridaná novelou č. 275/2014 Z. z.,

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULITMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Mikroprocesor. Mikroprocesor. Program. Federico Faggin, tvorca prvého mikroprocesora i4004

Mikroprocesor. Mikroprocesor. Program. Federico Faggin, tvorca prvého mikroprocesora i4004 Mikroprocesor Federico Faggin, tvorca prvého mikroprocesora i4004 Mikroprocesor Program 1. Choď z D-110 do D0A1 2. Presuň obsah z adresy 33 do košíka 3. Prines obsah košíka do D-110 4. Spracuj obsah 5.

More information

/* toto je viacriadková poznámka */ ako v Delphi, len sa rozlišujú malé a veľké písmená!!!

/* toto je viacriadková poznámka */ ako v Delphi, len sa rozlišujú malé a veľké písmená!!! Organizácia programu #include using namespace std; int main() return 0; // jednoriadková poznámka Identifikátor Dátové typy int (long), unsigned, float (double), bool 0,1, char, trieda

More information

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 851(01(Bra@slava Titl.: Ján(Hrčka Bohrova(11 851(01(Bra@slava V(Bra@slave(21.11.2013 Vec:(Odpoveď(na(informácie(ohľadom(mandátnej(zmluvy(na(základe(Zákona(č.(211/2000(Zb.

More information

TYPY, KONŠTANTY, PROCEDÚRY A FUNKCIE PRE PRÁCU S POĽOM

TYPY, KONŠTANTY, PROCEDÚRY A FUNKCIE PRE PRÁCU S POĽOM TYPY, KONŠTANTY, PROCEDÚRY A FUNKCIE PRE PRÁCU S POĽOM Doposiaľ sme si ukázali základné štruktúry a jednotky jazyka. Pracovali sme s premennými rôznych typov ako aj s konštantnými hodnotami. Používali

More information

BETA BASIC 3.0 (C) Betasoft 1985, 92 Oxford Road, Masley, Birmingham

BETA BASIC 3.0 (C) Betasoft 1985, 92 Oxford Road, Masley, Birmingham BETA BASIC 3.0 (C) Betasoft 1985, 92 Oxford Road, Masley, Birmingham PREHĽAD...2 PRÍKAZY:...2 FUNKCIE:...3 ÚVOD...4 EDITÁCIA...4 PROCEDÚRY A PARAMETRE...5 Referencie, alebo odovzdávanie parametra adresou:...7

More information

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE. Peter Piják. Interpret redukovaného Pascalu

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE. Peter Piják. Interpret redukovaného Pascalu Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Peter Piják Interpret redukovaného Pascalu Katedra teoretické informatiky a matematické logiky Vedoucí bakalářské práce: RNDr.

More information

18. Matlab figure ako objekt

18. Matlab figure ako objekt 1 Portál pre odborné publikovanie ISSN 1338-0087 18. Matlab figure ako objekt Foltin Martin MATLAB/Comsol 06.11.2009 Dlhším používaním grafických funkcií v Matlabe, dôjdete k poznaniu že ich možnosti sú

More information

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia Microsoft Azure platforma pre Cloud Computing Juraj Šitina, Microsoft Slovakia m Agenda Cloud Computing Pohľad Microsoftu Predstavujeme platformu Microsoft Azure Benefity Cloud Computingu Microsoft je

More information

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám.

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL LED svietidlá na osvetlenie športovísk MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL SPORT LL SPORT je sofistikované vysoko výkonné LED svietidlo špeciálne

More information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange

More information

Structures. Dr. Donald Davendra Ph.D. (Department of Computing Science, Structures FEI VSB-TU Ostrava)

Structures. Dr. Donald Davendra Ph.D. (Department of Computing Science, Structures FEI VSB-TU Ostrava) Structures Dr. Donald Davendra Ph.D. Department of Computing Science, FEI VSB-TU Ostrava 1/18 Derived and Structured Data Types basic data type - part of the standard language, preprocessor - without parameters,

More information

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu Inštalačná príručka Obsah 1 Predpoklady pre inštaláciu D.Signer... 3 1.1 Inštalácia.NET Framework... 3 1.1.1 Windows 8, 8.1... 4 1.1.2

More information

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga.

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga. Ochrana koncových staníc pomocou Cisco Security Agent 6.0 Ľubomír Varga lubomir.varga@lynx.sk Agenda CSA 6.0 refresh Vybrané vlastnosti CSA 6.0 Application Trust levels Notify User Rule Actions User Justifications

More information

Obsah. SOA REST REST princípy REST výhody prest. Otázky

Obsah. SOA REST REST princípy REST výhody prest. Otázky REST Peter Rybár Obsah SOA REST REST princípy REST výhody prest Otázky SOA implementácie WEB (1990) CORBA (1991) XML-RPC (1998) WS-* (1998) SOAP RPC/literal SOAP Document/literal (2001) REST (2000) SOA

More information

PRACOVNÝ ZOŠIT Z PROGRAMOVANIA 2

PRACOVNÝ ZOŠIT Z PROGRAMOVANIA 2 PRACOVNÝ ZOŠIT Z PROGRAMOVANIA 2 Ing. Igor Marko, 2011 PODPROGRAMY V PASCALE DEFINÍCIA, GLOBÁLNE A LOKÁLNE PREMENNÉ Podprogram v programovacom jazyku je postupnosť príkazov vystupujúcich pod jedným názvom,

More information

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový

More information

Javascript Manuál. Drgo Pavel SOŠ

Javascript Manuál. Drgo Pavel SOŠ 2016 Javascript Manuál Drgo Pavel SOŠ 24.7.2016 OBSAH JavaScript návod 01 Úvod do JavaScriptu...3 JavaScript návod 02 Kam s ním...5 JavaScript návod 03 Premenné úvod...9 JavaScript návod 04 Premenné typy...11

More information

Automatizovanie navrhovania objektov v prostredí Autocad

Automatizovanie navrhovania objektov v prostredí Autocad SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE STAVEBNÁ FAKULTA Automatizovanie navrhovania objektov v prostredí Autocad Bakalárska práca SvF- 5342-28794 Študijný program: matematicko-počítačové modelovanie

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU.

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU. UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU Diplomová práca 2017 Bc. Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA

More information

Riešenia a technológie pre jednotnú správu používateľov

Riešenia a technológie pre jednotnú správu používateľov Riešenia a technológie pre jednotnú správu používateľov Radovan Semančík Agenda Úvod: Identity Crisis Technológie správy používateľov Postup nasadenia Záver Súčasný stav IT Security Nekonzistentné bezpečnostné

More information

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1 VLSM a CIDR CCNA2 Kapitola 6 1 Trošku histórie Pred rokom 1981 IP adresy používali na špecifikáciu siete len prvých 8 bitov Rok1981, RFC 791 Zaviedol adresný priestor s tromi triedami adries Polovica 90

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS KONSTRUKCE NEDETERMINISTICKÝCH

More information

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová Ochrana proti DDoS za použitia open-source software Katarína Ďurechová katarina.durechova@nic.cz 30.11.2013 Distributed Denial of Service odopretie služby dosiahnutím limitu pripojenia sieťovej karty CPU

More information

Generátor náhodných čísel, cyklus for - downto typ boolean, príkaz break

Generátor náhodných čísel, cyklus for - downto typ boolean, príkaz break Generátor náhodných čísel, cyklus for - downto typ boolean, príkaz break V praxi sa často vyskytujú náhodné javy (losovanie čísel, hádzanie kockou, výskyt elektrónu v obale atómu). V tejto kapitole naprogramujeme

More information

Zobrazenie čísiel v počítači

Zobrazenie čísiel v počítači Zobrazenie čísiel v počítači Celé nezáporné čísla - čísla bez znamienka dvojková sústava iné používané sústavy - šestnástková a osmičková BCD kódovanie - Binary-Coded Decimal Všetky celé čísla - čísla

More information

package balik; public class TopLevel1 {... }

package balik; public class TopLevel1 {... } Seminář Java Speciální třídy, výčtový typ Radek Kočí Fakulta informačních technologií VUT Březen 2010 Radek Kočí Seminář Java Speciální třídy, výčtový typ 1/ 20 Téma přednášky Vnořené třídy Anonymní třídy

More information

Python Documentation. Vydanie. Andrej Blaho

Python Documentation. Vydanie. Andrej Blaho Python Documentation Vydanie. Andrej Blaho 18. mar 2017 Obsah 1 Letný semester 3 1.1 Úvodná prednáška v letnom semestri.................................. 3 1.2 Zásobníky a rady.............................................

More information

IMPLEMENTACE MODULÁRNÍ ARITMETIKY DO OBVODŮ FPGA A ASIC

IMPLEMENTACE MODULÁRNÍ ARITMETIKY DO OBVODŮ FPGA A ASIC VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

More information

2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové

2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 1. Prvky jazyka MySQL http://dev.mysql.com/doc/refman/5.7/en/language-structure.html 2. Typy a pretypovanie http://dev.mysql.com/doc/refman/5.7/en/data-types.html

More information

Príloha A: Tvorba projektov

Príloha A: Tvorba projektov Príloha A: Tvorba projektov Prešli sme výukou jazyka C až do konca. Aj keď sme jazyk zvládli, stále nám chýba niečo, čo však nie je priamou súčasťou jazyka. Schopnosť vytvárať a spravovať rozsiahlejšie

More information

Podpora VBA v alternatívnych kancelárskych systémoch

Podpora VBA v alternatívnych kancelárskych systémoch Bankovní institut vysoká škola Praha zahraničná vysoká škola Banská Bystrica Katedra kvantitatívnych metód a informatiky Podpora VBA v alternatívnych kancelárskych systémoch VBA support in the alternative

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia dec.16 nov.16 okt.16 sep.16 aug.16 júl.16 jún.16 máj.16 apr.16 mar.16 feb.16 jan.16 Internetová populácia SR 12+ 3 728 988 3 718 495 3 718 802 3 711 581 3 700

More information

Go networking. Peter Borovanský, KAI, I-18, borovan(a)ii.fmph.uniba.sk

Go networking. Peter Borovanský, KAI, I-18, borovan(a)ii.fmph.uniba.sk Go networking Peter Borovanský, KAI, I-18, borovan(a)ii.fmph.uniba.sk Prejdeme si v Go tri úrovne tzv. TCP Stacku, a naprogramujeme klient/server aplikáciu cez TCP/IP sockety, príklad chat sntp udp klient

More information

NÁSTROJ PRO SLEDOVÁNÍ RTP STREAMŮ

NÁSTROJ PRO SLEDOVÁNÍ RTP STREAMŮ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS NÁSTROJ PRO SLEDOVÁNÍ

More information

SYNTAKTICKÁ ANALÝZA VNORENÝCH

SYNTAKTICKÁ ANALÝZA VNORENÝCH UNIVERZITA KOMENSKÉHO, BRATISLAVA FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY SYNTAKTICKÁ ANALÝZA VNORENÝCH PROGRAMOVACÍCH JAZYKOV DIPLOMOVÁ PRÁCA 2015 Bc. Tomáš Belan UNIVERZITA KOMENSKÉHO, BRATISLAVA FAKULTA

More information

Osobovo-orientovaný prístup vývoja softvéru

Osobovo-orientovaný prístup vývoja softvéru Osobovo-orientovaný prístup vývoja softvéru TOMÁŠ BACKSTUBER Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičova 3, 842 16 Bratislava backy007[zavináč]gmail[.]com Abstrakt.

More information

1) 2) 3) 4) 5) 6) 7) XML. 8) 9) 10) 11) CRUD

1) 2) 3) 4) 5) 6) 7) XML. 8) 9) 10) 11) CRUD OBSAH 1) Úvod do SQL Server, množinové operácie 2) Uložené procedúry, funkcie 3) Pohľady a CTE 4) Rekurzia a transitívny uzáver 5) Triggery. Transakcie. 6) Kurzory.Pivot tabuľky 7) XML. B-stromy a indexy

More information

Výukové prostredie založené na jazyku Karel

Výukové prostredie založené na jazyku Karel Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Výukové prostredie založené na jazyku Karel Bakalárska práca 2017 Andrej Zbín Univerzita Komenského v Bratislave Fakulta matematiky,

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia mar.18 feb.18 jan.18 dec.17 nov.17 okt.17 sep.17 aug.17 júl.17 jún.17 máj.17 apr.17 mar.17 Internetová populácia SR 12+ 3 904 509 3 802 048 3 870 654 3 830

More information

POKROČILÉ C++ Marian Vittek

POKROČILÉ C++ Marian Vittek POKROČILÉ C++ Marian Vittek vittek@fmph.uniba.sk O predmete Pôvodne seminár Teraz normálna prednáška so skúškou/testom Predmetom kurzu je detailnejší pohľad na jazyk C++ a občasné porovnanie s inými programovacími

More information

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky BGP - duálne prepojenie AS (primary + backup spoj), s IBGP, cez virtuální L2 linky Peter Jašica Abstrakt: Cieľom tohto projektu je zhotoviť a otestovať funkčnosť BGP s dvojitým prepojením Autonómnych systémov.

More information

Malé velké databázy III. / 1. cast

Malé velké databázy III. / 1. cast Malé velké databázy III. / 1. cast Hovorí sa, že tam, kde sa nieco koncí, iné sa zacína. Oficiálny školský rok sa blíži k úspešnému koncu, ale my zacíname. Preto vás vítam na vysokej škole databáz. Ako

More information

Problém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec

Problém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec Problém Big Data a ako ho riešiť pomocou NoSQL Ján Zázrivec Softec Dáta dnešného sveta Oblasti kde sa spracováva veľké množstvo dát: Internet Web vyhľadávače, Sociálne siete Veda Large Hadron Collider,

More information

Vzory, rámce a webové aplikácie

Vzory, rámce a webové aplikácie Vzory, rámce a webové aplikácie Jakub Šimko jakub.simko@stuba.sk Návrhové vzory (načo slúžia?) 1. Dobré zvyky v programovaní 2. Riešia často sa opakujúce problémy praxou overeným spôsobom 3. Pomôžu nám

More information

Analýza a vizualizácia veľkých dát

Analýza a vizualizácia veľkých dát MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Analýza a vizualizácia veľkých dát DIPLOMOVÁ PRÁCA Bc. Jakub Caban Brno, 2015 Prehlásenie Prehlasujem, že táto diplomová práca je mojím pôvodným autorským dielom,

More information

obsahuje 5 príkladov, spolu 29>25 bodov skupina:

obsahuje 5 príkladov, spolu 29>25 bodov skupina: Midterm 2013, verzia A Meno a priezvisko: obsahuje 5 príkladov, spolu 29>25 bodov skupina: 1A) [8 bodov] Zistite, čo počíta nasledujúca rekurzívna funkcia foo pre n>=0. Hint: foo(2013) = 6. static long

More information

Ekonomický pilier TUR

Ekonomický pilier TUR Názov indikátora: HDP na obyvateľa Zaradenie indikátora v DPSIR štruktúre: Základné informácie: SR Definícia Hrubý domáci produkt vyjadrovaný ako celková peňažná hodnota statkov a služieb vytvorených za

More information

Štruktúra APK súboru na OS Android

Štruktúra APK súboru na OS Android Masarykova univerzita Fakulta informatiky Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Štruktúra APK súboru na OS Android Bakalárska práca Ivo Hrádek Brno, jar 2015 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Diagramatická konverzia súborov 2014 János Farkas UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFOMATIKY

More information

Interpreter UNITY DIPLOMOVÁ PRÁCA

Interpreter UNITY DIPLOMOVÁ PRÁCA Interpreter UNITY DIPLOMOVÁ PRÁCA Autor práce: Michal Šuster UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY FYZIKY A INFORMATIKY KATEDRA INFORMATIKY Vedúci záverečnej práce: RNDr. Damas Gruska,

More information

PostScript podpora pre pdftex (bakalárska práca)

PostScript podpora pre pdftex (bakalárska práca) Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava PostScript podpora pre pdftex (bakalárska práca) Peter Gatial Odbor: Informatika 9.2.1 Vedúci: Mgr. Vladimír

More information

Superstrict mód pre Javascript

Superstrict mód pre Javascript Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Superstrict mód pre Javascript Bakalárska práca 2016 Matej Krajčovič Univerzita Komenského v Bratislave Fakulta matematiky, fyziky

More information

JAVA. Sieťové programovanie

JAVA. Sieťové programovanie JAVA Sieťové programovanie Sieťové programovanie Sieťová knižnica jazyka JAVA bola vytvorená podľa súborovej knižnice Zapúzdrovanie pripojení do streamov Multithreading Identifikácia počítača Každý počítač

More information

Stretnutie s Pascalom II.

Stretnutie s Pascalom II. Stretnutie s Pascalom II 1 časť Predchádzajúcou časťou sme ukončili výučbu štruktúrovaného programovania Viem, že rozsah seriálu nestačil na vyškolenie profesionálneho programátora Bolo by vhodné niektoré

More information

Útoky typu Cross-Site Scripting

Útoky typu Cross-Site Scripting Masarykova univerzita Fakulta informatiky Útoky typu Cross-Site Scripting Bakalárska práca Oliver Chorvát Brno, jar 2010 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom,

More information

Mgr. Martin Vesel M 114

Mgr. Martin Vesel M 114 Mgr. Martin Vesel martin.vesel@gmail.com M 114 Where 2 go W3C, CSS špecifikácia http://www.w3.org/standards/techs/css#w3c_all http://www.w3.org/tr/2011/rec-css2-20110607/ http://www.w3.org/tr/2012/rec-css3-mediaqueries-20120619/

More information

Cvičenie 1-2 Concept: Locating Controls, Functions, and VIs

Cvičenie 1-2 Concept: Locating Controls, Functions, and VIs Cvičenie 1-2 Concept: Locating Controls, Functions, and VIs 1. Open a blank LabVIEW project. Click the Create Project button in the LabVIEW Getting Started window and then click Blank Project. Click Finish.

More information

Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzity Komenského, Bratislava. Triediace algoritmy. (Bakalárska práca)

Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzity Komenského, Bratislava. Triediace algoritmy. (Bakalárska práca) Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzity Komenského, Bratislava Triediace algoritmy (Bakalárska práca) Juraj Zemianek Odbor: Informatika 9.2.1 Vedúci: doc. RNDr. Juraj Procházka,

More information

4. prednáška ( )

4. prednáška ( ) 4. prednáška (8.10.2018) ť ť 1 Čo už vieme... Vytvoriť objekt nejakej triedy pomocou new vieme, že objekt môže mať viacero konštruktorov líšiacich sa parametrami (WinPane, String, ) Vytvoriť vlastnú triedu

More information

Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS

Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS Bakalárska práca Brno 2012 Roman Mačor Prehlasujem, že táto práca je mojím pôvodným autorským dielom,

More information

Informatika 2. Generiká

Informatika 2. Generiká Informatika 2 Generiká Pojmy zavedené v 10. prednáške (1) štandardný vstup a výstup textové súbory binárne súbory objektové prúdy Informatika 2 1 Pojmy zavedené v 10. prednáške (2) objektové prúdy nečitateľné

More information

Import príkazov na inkaso vo formáte XML

Import príkazov na inkaso vo formáte XML Import príkazov na inkaso vo formáte XML Internet banking podporuje import príkazov na inkaso vo formáte XML, ktorého štruktúra je definovaná normou ISO 20022. Táto norma definuje viacero typov správ pre

More information

Tvorba informačných systémov. 4. prednáška: Návrh IS

Tvorba informačných systémov. 4. prednáška: Návrh IS Tvorba informačných systémov 4. prednáška: Návrh IS Návrh informačného systému: témy Ciele návrhu ERD DFD Princípy OOP Objektová normalizácia SDD Architektonické pohľady UML diagramy Architektonické štýly

More information

Keď nepoznajú Céčko, sme stratení... II-1

Keď nepoznajú Céčko, sme stratení... II-1 Keď nepoznajú Céčko, sme stratení... II-1 Algoritmizácia a programovanie 2. prednáška Klasifikácia algoritmov. Vybrané lineárne algoritmy násobenia (a la russe, rozdeluj a panuj, násobenie sčítaním...).

More information

CUIT. Coded UI Testing

CUIT. Coded UI Testing CUIT Coded UI Testing 1 Autor: Ing. Peter Kováč Kontakt: kovac.peter1@centrum.sk Dátum vydania: 2018 2 Obsah 1 Testovanie...5 1.1 Rozdelenie testovania... 6 2 Automatizované testy...9 2.1 Výhody a nevýhody

More information