Pseudonáhodná čísla (1)

Slides:



Advertisements
Podobné prezentace
Název školy ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu CZ.1.07/1.4.00/ Číslo a název klíčové aktivity 3.2 Inovace a zkvalitnění výuky prostřednictvím.
Advertisements

Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Formáty souborů (neboli typ souboru) obvykle určuje význam dat v elektronickém souboru. Existuje množství různých formátů, přizpůsobených pro ukládání.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 10: Tvorba vlastních funkcí Bc. Radek Libovický.
Definice: Funkce f na množině D(f)  R je předpis, který každému číslu z množiny D(f) přiřazuje právě jedno reálné číslo. Jinak: Nechť A, B jsou neprázdné.
Název projektu: Moderní výuka s využitím ICT
Základy automatického řízení 1
Mocniny, odmocniny, úpravy algebraických výrazů
Matematika 3 – Statistika Kapitola 4: Diskrétní náhodná veličina
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Lineární funkce - příklady
Řešení nerovnic Lineární nerovnice
ČÍSLO PROJEKTU CZ.1.07/1.5.00/ ČÍSLO MATERIÁLU 1 – Množiny – teorie
Lineární rovnice a nerovnice I.
Výukový materiál zpracován v rámci projektu
Kurz algoritmizace a programování v jazyce C
Vstupní a výstupní operace (1)
Uživatelem definované datové typy
Programování v jazyce C++
Název projektu: Moderní výuka s využitím ICT
8.1.2 Podprostory.
Výukový materiál zpracován v rámci projektu
Databáze MS ACCESS 2010.
Základní jednorozměrné geometrické útvary
Financováno z ESF a státního rozpočtu ČR.
Datové typy v jazyce C Datové typy void skalární aritmetické
Lexikální atomy jazyka C
Poměr v základním tvaru.
Inf Vývojový diagram.
NÁZEV ŠKOLY: Základní škola a Mateřská škola Nedvědice, okr
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
Výukový materiál zpracován v rámci projektu
Kvadratické nerovnice
Regulátory spojité VY_32_INOVACE_37_755
Rovnice a graf přímé úměrnosti.
Řešení nerovnic Lineární nerovnice
Stavební fakulta ČVUT, B407
BIBS Informatika pro ekonomy přednáška 2
Informatika pro ekonomy přednáška 8
Výukový materiál zpracován v rámci projektu
DIGITÁLNÍ UČEBNÍ MATERIÁL
MNOŽINY.
Rovnice základní pojmy.
SIGNÁLY A LINEÁRNÍ SYSTÉMY
Číslicové měřící přístroje
Bibliografické odkazy a citace změny oproti starší verzi normy ISO ČSN 690 Mgr. Zdeňka Firstová Univerzitní knihovna ZČU v Plzni
Materiál byl vytvořen v rámci projektu
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Obchodní akademie, Střední odborná škola a Jazyková škola s právem státní jazykové zkoušky, Hradec Králové Autor: Mgr. Lenka Marková Název materiálu:
NÁZEV ŠKOLY: Základní škola Strančice, okres Praha - východ
Datové typy v jazyce C Datové typy void skalární aritmetické
Poměr v základním tvaru.
KOMBINACE BEZ OPAKOVÁNÍ
Informatika pro ekonomy přednáška 8
Lineární funkce a její vlastnosti
Funkce v jazyce C = „množina“ operací, která provádí nějakou činnost s různými vstupy odstranění vícenásobného psaní či vkládání téhož kódu a lepší přehlednost.
Početní výkony s celými čísly: dělení
Vstupní a výstupní operace (1)
Grafy kvadratických funkcí
Seminář o stavebním spoření
Teorie chyb a vyrovnávací počet 2
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Algoritmizace a datové struktury (14ASD)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Union neboli sjednocení Bitová pole
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Pseudonáhodná čísla (1) Někdy také nepřesně označována jako náhod-ná čísla Čísla generovaná deterministickým algorit-mem vytvářející posloupnost, která se zdá být náhodná Používána v okamžiku, kdy je pro nějakou ap-likaci potřeba náhodnost, kterou na determi-nistickém počítači nelze přímo dosáhnout 22/05/2018

Pseudonáhodná čísla (2) Pseudonáhodná čísla lze použít např. pro: počítačové hry numerické metody (metoda Monte Carlo) kryptografii Poznámka: posloupnost generovaných čísel je periodická po určité (velmi dlouhé) době se začne opakovat Programovací jazyk C umožňuje generování pseudonáhodných čísel pomocí knihovních funkcí 22/05/2018

Pseudonáhodná čísla (3) Funkce rand: deklarována v: stdlib.h prototyp: int rand(void); funkce: generuje celé pseudonáhodné číslo, které je v rozmezí 0 až RAND_MAX RAND_MAX je konstanta definovaná v hlavičkovém souboru stdlib.h (např. 32767) vrácená hodnota: vygenerované pseudonáhodné číslo 22/05/2018

Pseudonáhodná čísla (4) Funkce srand: deklarována v: stdlib.h prototyp: void srand(unsigned int seed); funkce: inicializuje generátor pseudonáhodných čísel hodnotou seed vrácená hodnota: funkce nevrací žádnou hodnotu poznámka: hodnota předávaného parametru seed se většinou od-vozuje z aktuálního času 22/05/2018

Pseudonáhodná čísla (5) Funkce time: deklarována v: time.h prototyp: time_t time(time_t *timer); funkce: slouží ke zjištění aktuálního času vrácená hodnota: aktuální čas zakódovaný jako objekt typu time_t jestliže parametr timer je různý od hodnoty NULL, pak je vrácená hodnota rovněž uložena do proměnné, jejíž adresa byla v době volání funkci předána 22/05/2018

Pseudonáhodná čísla (6) poznámka: zakódování vráceného času pomocí time_t je závislé na konkrétní platformě většinou se používá počet sekund, které uběhly od 1. 1. 1970, 00:00 UTC programy by k vrácené hodnotě funkcí time neměly přistupovat přímo, ale měly by pro její zpracování využívat další knihovní funkce 22/05/2018

Znakový typ (1) Používán pro reprezentaci konečné uspořá-dané množiny znaků, které umí: vstupní zařízení akceptovat výstupní zařízení publikovat Konstanty znakového typu se zapisují jako znaky uzavřené mezi apostrofy např. ’*’, ’A’, ’B’, ’c’ atd. Pro zápis hodnot znakového typu je také možné použít řídící posloupnost: uvozena symbolem \ podobně jako v řetězco-vém literálu: 22/05/2018

Znakový typ (2) Patří mezi integrální datové typy ’\n’ přechod na nový řádek ’\t’ horizontální tabulátor ’\\’ zpětné lomítko ’\’’ apostrof ’\xhh’ kde hh označuje číslo v šestnáctkové soustavě požadovaného znaku ’\ooo’ kde ooo označuje číslo v osmičkové soustavě požadovaného znaku Patří mezi integrální datové typy Jeho hodnoty jsou celá čísla a mohou se po-užít ve výrazech jako celočíselné operandy 22/05/2018

Znakový typ (3) Jazyk C rozlišuje tři druhy znakového typu: prostý – char se znaménkem – signed char bez znaménka – unsigned char Každý z těchto typů zaujímá stejné množ-ství paměti (1 B  sizeof(char) = 1), ale může reprezentovat různé hodnoty Interpretace prostého znakového typu (se znaménkem nebo bez znaménka) je závislá na konkrétní implementaci 22/05/2018

Znakový typ (4) Hlavičkový soubor limits.h definuje pojmenované konstanty udávající rozsahy jednotlivých druhů znakového typu: Jméno Hodnota Význam SCHAR_MIN –128 Minimální hodnota pro signed char SCHAR_MAX 127 Maximální hodnota pro signed char UCHAR_MAX 255 Maximální hodnota pro unsigned char CHAR_MIN –128 Min. hodnota pro char CHAR_MAX 127 Max. hodnota pro char 22/05/2018

Znakový typ (5) Na dvojice hodnot znakového typu lze apliko-vat relační operátory (==, !=, <, <=, >=, >) Musí splňovat následující požadavky: podmnožina dekadických číslic ’0’ až ’9’ musí být numericky uspořádaná a souvislá podmnožina velkých písmen ’A’ až ’Z’ a pod-množina malých písmen ’a’ až ’z’ musí být abecedně uspořádané (nemusí být souvislé) 22/05/2018

Znakový typ (6) Číselné hodnoty znakových konstant jsou od-vozeny z odpovídající kódové tabulky, např. rozšířené množiny ASCII (American Standard Code for Information Interchange): platí: X < Y pro " X Î á’A’; ’Z’ń, " Y Î á’a’; ’z’ń neplatí tedy např. ’a’ < ’Z’ jestliže rozšířená část ASCII obsahuje znaky ná-rodní abecedy, tak jejich množina není souvislá ani uspořádaná 22/05/2018

Znakový typ (7) Poznámky: desítková číslice jako konstanta znakového ty-pu nepředstavuje svou numerickou hodnotu. Tuto hodnotu můžeme vypočítat pomocí: c – ’0’, kde c Î á’0’; ’9’ń pro zobrazení (načtení) hodnoty znakového typu prostřednictvím funkce printf (scanf) je možné použít specifikaci %c funkce printf (při použití formátovací znač-ky %c) zobrazuje znak po převodu na unsigned char 22/05/2018

Funkce getchar Deklarována v: stdio.h Prototyp: int getchar(void); načte znak ze standardního vstupu Vrácená hodnota: v případě bezchybného načtení vrací načtený znak jako hodnotu typu int v případě chyby nebo dosažení konce souboru vstupních dat vrací hodnotu EOF (-1) vrácená hodnota by měla být přiřazována do proměnné typu int (nikoliv char) 22/05/2018

Funkce putchar Deklarována v: stdio.h Prototyp: int putchar(int c); zobrazí znak specifikovaný parametrem c na standardní výstup Vrácená hodnota: v případě bezchybného výstupu vrací stejný znak, který byl vypsaný v případě chyby vrací hodnotu EOF (-1) 22/05/2018

Výčtový typ (1) Představuje množinu celočíselných hodnot reprezentovaných identifikátory Použité identifikátory se nazývají výčtové konstanty Definice výčtového typu: enum jmTypu {id1, id2, …, idn}; Příklad: enum den {po, ut, st, ct, pa, so, ne}; 22/05/2018

Výčtový typ (2) Poznámka: žádný identifikátor se nesmí vyskytovat v sez-namu prvků více než u jednoho výčtového typu Na základě definovaného výčtového typu je možné následně definovat proměnné: enum jmTypu p1, p2, …, pn; kde p1, p2, …, pn označují identifikátory proměnných typu jmTypu Příklad: enum den d1, d2; definuje proměnné d1 a d2 typu den 22/05/2018

Výčtový typ (3) Definici výčtového typu a odpovídajících proměnných lze spojit do jednoho zápisu Příklad: enum barva {cervena, zelena, modra} zaklBarva; Výčtový typ patří mezi integrální typy  jeho hodnoty lze používat jako celočíselné operandy (je možné na ně aplikovat stejné operátory) 22/05/2018

Výčtový typ (4) Celočíselné hodnoty výčtového typu jsou dány pořadím jednotlivých identifikátorů v definici typu (není-li uvedeno jinak): první identifikátor má hodnotu 0 hodnoty dalších identifikátorů se zvyšují po jedné Jazyk C také dovoluje konkrétní hodnotě výčtového typu přiřadit libovolné celé číslo 22/05/2018

Výčtový typ (5) Příklad: enum cisla {nula, jedna,dve,tri, deset = 10, jedenact, dvanact, trinact, dvacet = deset + 10}; Jednotlivé hodnoty výčtového typu pak mají následující celočíselné hodnoty: nula tri 3 dvanact 12 jedna 1 deset 10 trinact 13 dve 2 jedenact 11 dvacet 20 22/05/2018

Příkaz switch (1) Slouží k vícenásobnému větvení Testuje, zda (řídící) výraz odpovídá jed-nomu z několika konstantních výrazů Řídící výraz musí být integrálního typu Jednotlivé konstantní výrazy jsou uvozeny klíčovým slovem case a musí být vzájem-ně odlišné, tj. stejný konstantní výraz nesmí být v rámci jednoho příkazu switch po-užitý vícekrát) 22/05/2018

Příkaz switch (2) Obecný tvar: switch (výraz) { case konst_výraz1: příkazy1 case konst_výraz2: příkazy2 case konst_výrazn: příkazyn default: příkazyn+1 } Nepovinná část 22/05/2018

Příkaz switch (3) Funkce: vyhodnotí se řídící výraz je-li hodnota řídícího výrazu (výraz) rovna konst_výrazi (i = 1, 2, …, n) za klíčo-vým slovem case, pak se začnou provádět příkazyi není-li hodnota řídícího výrazu rovna žádnému z konst_výrazi a je-li použito klíčové slovo default, pak se prove-dou příkazyn+1 není-li použito klíčové slovo default, pak se po-kračuje příkazem následujícím bezprostředně za příkazem switch 22/05/2018

Příkaz switch (4) Předá-li se řízení na příkazyi (i = 1, 2, …, n), pak se provádějí postupně všechny příkazyj (j = i, i+1, …, n (n+1)) Provádění pokračuje tak dlouho, dokud se: nedosáhne konce příkazu switch nepřejde ven z příkazu switch prostřednict-vím příkazu break, return nebo goto 22/05/2018

Příkaz switch (5) Poznámka: je-li zapotřebí, aby se pro více různých hodnot řídícího výrazu provedly stejné příkazy, je možné zapsat více klíčových slov case následovaných různými konstantními výrazy jako oddělovač (mezi konstantním výrazem a klíčovým slovem case) se používá symbol : 22/05/2018