1. Signatura datového typu

Podobné dokumenty
C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Programovací jazyky, syntaxe, sémantika, zpsoby popisu

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Ing. Jaroslav Halva. UDS Fakturace

Abstraktní datové typy

1 Píklady popisu typických konstrukcí

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Cykly Intermezzo. FOR cyklus

Úvod do programovacích jazyků (Java)

Abstraktní datové typy FRONTA

Programovací jazyk Pascal

Správa obsahu ízené dokumentace v aplikaci SPM Vema

IB015 Neimperativní programování. Časová složitost, Typové třídy, Moduly. Jiří Barnat Libor Škarvada

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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

PŘETĚŽOVÁNÍ OPERÁTORŮ

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

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

Pedání smny. Popis systémového protokolování. Autor: Ing. Jaroslav Halva V Plzni Strana 1/6

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

GYMNÁZIUM CHEB SEMINÁRNÍ PRÁCE

Konzistentnost. Pro a proti replikaci. Vztah ke škálovatelnosti (1)

POPIS TESTOVACÍHO PROSTEDÍ 1 ZÁLOŽKA PARSER

Úvodní studie (pokraov

Datový typ POLE. Jednorozmrné pole - vektor

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VYTVÁENÍ VÝBROVÝCH DOTAZ

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

KUSOVNÍK Zásady vyplování

ORACLE DISCRETE MANUFACTURING ORACLE DISKRÉTNÍ VÝROBA

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

5 Přehled operátorů, příkazy, přetypování

ORACLE ÍZENÍ VÝROBY ORACLE WORK IN PROCESS KLÍOVÉ FUNKCE ORACLE WORK IN PROCESS

Datové struktury 2: Rozptylovací tabulky

IB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Základní datové struktury

Zbytky zákaznického materiálu

Definice uživatelského typu. Uživatelem definované typy. Součinové datové typy. Součtové datové typy. FLP - Uživatelem definované typy

Binární logika Osnova kurzu

ANOTACE vytvořených/inovovaných materiálů

NPRG030 Programování I, 2010/11

8.2 Používání a tvorba databází

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Úvod do databázových systémů

Datové struktury 1: Základní datové struktury

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Promnné. [citováno z

1 Sémantika a její vztah k syntaxi

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

NPRG030 Programování I, 2016/17 1 / :58:13

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů Standardně zavedené proudy

Programování v jazyce JavaScript

2. PÍKLAD DÍLÍ ÁSTI SOUSTAVY - DÍLÍ ÁST SDÍLENÍ TEPLA

DATABÁZE MS ACCESS 2010

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

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

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

Pravdpodobnost výskytu náhodné veliiny na njakém intervalu urujeme na základ tchto vztah: f(x)

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Základy algoritmizace. Hašování

UŽIVATELSKY DEFINOVANÉ FUNKCE

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Tabulkový procesor Excel

Úvod do logiky (VL): 5. Odvození výrokových spojek z jiných

DUM. Databáze - úvod

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Programování. Psaní čistého kódu. Martin Urza

OOT Objektově orientované technologie

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

EKOLOGICKÝ PRÁVNÍ SERVIS. Plánování a povolování dopravních staveb a posuzování vliv na životní prostedí - základní problémy

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Základy MIDI komunikace

Datový typ prioritní fronta Semestrální práce z předmětu 36PT

Lineární datové struktury

Gymnázium. Kromíž. Zpracování textu. Word 1 SIPVZ-modul-P0

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

IMPORT DAT Z TABULEK MICROSOFT EXCEL

Algoritmy výpočetní geometrie

Algoritmizace a programování

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

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

Problém, jehož různé instance je třeba často řešit Tyto instance lze vyjádřit větami v jednoduchém jazyce

Souhrn Apendixu A doporučení VHDL

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika


Pídavný modul rozvaha lze vyvolat z hlavní nabídky po stisku tlaítka Výkazy / pídavné moduly.

teorie logických spojek chápaných jako pravdivostní funkce

4.2 Syntaxe predikátové logiky

Algoritmizace prostorových úloh

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Dodatek dokumentace KEO-Moderní kancelá verze 7.40

Konstruktory a destruktory

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Transkript:

1. Signatura datového typu a) popisuje vlastnosti operací datového typu b) popisuje sémantiku datového typu c) popisuje jména druh a operací a druhy argument a výsledku d) je grafickým vyjádením implementace datového typu tvrtá možnost odpadá ihned, protože tím, že je datový typ abstraktní, existuje on sám i jeho signatura díve než jakékoli implementace a vbec na nich nezavisí. Sémantika operací je zachycena axiomy, nikoli signaturou, druhá možnost odpadá. První varianta íká prakticky totéž co druhá, takže zbývá jen tetí správná možnost. 2. Signatura datového typu a) popisuje vlastnosti operací datového typu b) lze ji popsat graficky pomocí ovál, malých kroužk a spojovacích ar a písmen c) vyjaduje se pomocí axiom d) popisuje universum hodnot Tetí možnost nedává smysl, nebo axiomy se k signatue pidávají práv proto, aby bylo možno ADT kompletn popsat. Signatura nepopisuje ani vlastnosti operací, nebo práv ony se vyjadují pomocí axiom. První a tetí možnost tedy nedává smysl. Ješt mén smyslu dává poslední tvrtá možnost, universum hodnot pedstavuje pouze všechny vbec možné hodnoty se kterými ADT mže pracovat, vlastnosti této množiny ovšem ADT vbec nezachycuje. Napíklad ADT fronta ned celými ísly nijak blíže celá ísla nespecifikuje. Zbývá jen možnost b), jakkoli pitom vypadá primitivn. 3. Signatura datového typu a) je zájmová skupina naturist b) popisuje syntaxi datového typu c) sestává z druh, jmen operací a axiom d) popisuje sémantiku datového typu Popis sémantiky, tj. jaký má význam a co se strane když... zajišují axiomy datového typu. varianta d) odpadá. Stejn tak odpadá varianta c) nebo axiomy práv souástí signatury nejsou. Protože naturisté jsou osoby programov holdující návratu k pírod, kde se s abstraktními datovými typy nesetkáváme (nanejvýš s jejich implementacemi), platí varianta b). 4. Datová struktura a) je konkrétní realizací datového typu b) je základním stavebním kamenem datových typ c) slouží k ukládání polí v poítai

d) vznikne ze signatury doplnním axiom Pidáním axiom k signatue vzniká abstraktní datový typ, varianta d) neplatí. Pole v poítai je sice píkladem datové struktury, nikoli však jediným, varianta c) je pinejmenším podezelá. U variant a) a b) je nutno rozhodnout, zda se ADT odvozuje od datové struktury i naopak. Vtšinou se konkrétní odvozuje od abstraktního, takže pednost dostane varianta a). 5. Datová struktura a) popisuje jména druh, jména operací a druhy parametr b) popisuje syntaxi datového typu c) je pln popsána soustavou axiom d) vznikne z datového typu volbou nosi druh a implementací operací Datová struktura je realizací uritého ADT. Všechny její podstatné vlastnosti jsou tedy v odpovídajícím ADT popsány, takže ona sama nemusí nic poposovat, varianty a) a b) odpadají. Naopak, soustava axiom k popisu nestaí, axiomy neíkají, nad jakým druhem dat se oparace provádjí, varianta c) také odpadá. Zbývá poslední varianta d). 6. Datový typ a) je pln popsán soustavou axiom b) je uren druhy dat a typickými operacemi c) je uren typickými operacemi d) je uren druhy dat To je otázka pamatování si definice. Pro datový typ musí být známo, s jakými vbec hodnotami mže pracovat (= druhy dat) a také musí být známo, jaké operace nad tmito hodnotami lze v rámci datového typu provádt (= typické operace). Platí b). 7. Druh dat a) popisuje syntaxi datového typu b) popisuje sémantiku datového typu c) je povolená množina hodnot d) lze popsat graficky pomocí ovál, malých kroužk a spojovacích ar a písmen Toto je také otázka smrem do definic druh dat je to, co se zmiuje ve variant c).

8. Soustava axiom op(x, true) = true op(x,false) = x op(x,y) = op(y,x) a) popisuje operaci and b) popisuje operaci xor c) popisuje operaci or d) popisuje operaci not Operace op je binární, operace not je unární, tvrtá možnost odpadá. Po dosazení false za x v prvním axiomu vidíme, že op nemže být operací and. Po dosazení false za x ve druhém axiomu vidíme, že se nemže jednat o operaci xor. Zbývá tudíž jen or tetí možnost. 9. Soustava axiom op(x, true) = x op(x,false) = false op(x,y) = op(y,x) a) Popisuje operaci or b) Popisuje operaci and c) Popisuje operaci xor d) Popisuje operaci not Operace op je binární, operace not je unární, tvrtá možnost odpadá. Po dosazení false za x v prvním axiomu vidíme, že op nemže být operací or. Po dosazení false za x ve druhém axiomu vidíme, že se nemže jednat o operaci xor. Zbývá tudíž jen and druhá možnost. 10. Je dán datový typ množina bez opakování prvk. Kterým výrazem je nutno nahradit písmena xxx v následujících axiomech, popisujících mazání prvku z množiny? del(x,[ ])=[ ] del(x,ins(y,s))= if eq(x,y) then xxx else ins(y,del(x,s)) a) ins(x,s) b) del(x,s) c) s d) x Jsme tázáni, co se stane, když do množiny vložíme prvek x vzáptí jej opt smažeme. Pokud na zaátku prvek x již v množin byl, pokus o vložení množinu s nezmní (množina je bez opakování!) a další operace mazání jej skuten z množiny odstraní,

takže celou událost lze popsat výrazem del(x,s). Žádný z dalších tí nabízených výraz a), c), d) se nehodí. Nyní pozor. Pokud na zaátku prvek x v množin nebyl, zejm vložení a následné smazání zanechá množinu s beze zmny. Naštstí v takovém pípad formáln platí s = del(x,s). A již tedy prvek x v množin s byl nebo nebyl, platí del(x, ins(x,s)) = del(x,s). Jediná možná varianta odpovdi je b). 11. Je dán datový typ množina bez opakování prvk. Kterým výrazem je nutno nahradit písmena xxx v následujících axiomech, popisujících velikost množiny? card([ ])=0 card(ins(y,s))= if in(y, s) then xxx else succ(card(s)) a) succ(card(ins(y,s))) b) card(s) c) s d) card(y) Jsme tázáni, jak velká bude množina poté, co se do ní pokusíme vložit prvek, který už je v ní obsažen. Protože množina je bez opakování, prvek se nevloží a velikost množiny se nezmní. To znamená, že pravdivá je varianta b). 12. Popište abstraktní datový typ množina s opakováním prvk s operacemi: [] prázdná množina ins vložení prvku do množiny isin test píslušnosti prvku k množin del smazání prvku z množiny eq rovnost dvou množin card mohutnost množiny Signatura (1 bod), axiomy (0+1+1+1+1+1): ešení typ: MNOŽINA( ELEMENT ) parametr: typ prvk ELEMENT požadavky na parametr: druhy: Elem operace: eq(_,_): Elem, Elem -> Bool použité typy: ELEMENT, pirozená ísla, logické hodnoty druhy: Elem, Bool, Set, Nat operace: [ ]: Set (prázdná množina) ins(_,_): Elem,Set ->Set (vložení prvku) del(_,_): Elem,Set ->Set (zrušení - - ) in(_,_) : Elem,Set ->Bool(test písluš.)

promnné: axiomy: card(_) : Set->Nat (poet prvk) s: Set, x,y: Elem // nic imezujícího pro ins del(x,[ ])=[ ] del(x, ins(y,s))= if eq(x,y) // mazání jednoho insu then s // maže se jeden výskyt x v s else ins(y, del(x,s)) in(x,[ ]) = false in(x,ins(y,s))= if eq(x,y)then true else in(x,s) card([ ]) = 0 card(ins(x,s)) = succ(card(s)) // poítá se pokaždé eq(s,t) = eq(t,s) eq(s,[ ]) = if eq(s,[ ]) then true eq(ins(x,s),t) = if in(x,t) //jednodušší then eq(s,del(x,t)) 13. Popište abstraktní datový typ množina bez opakování prvk s operacemi: [] prázdná množina ins vložení prvku do množiny isin test píslušnosti prvku k množin del smazání prvku z množiny eq rovnost dvou množin card mohutnost množiny Signatura (1 bod), axiomy (0+1+1+1+1+1): pozor na zamezení vícenásobného vkládání u operace ins a mazáni duplicit pi operaci del. ešení: typ: MNOŽINA( ELEMENT ) parametr: typ prvk ELEMENT požadavky na parametr: druhy: Elem operace: eq(_,_): Elem, Elem -> Bool použité typy: ELEMENT, pirozená ísla, logické hodnoty druhy: Elem, Bool, Set, Nat operace: [ ]: Set (prázdná množina) ins(_,_): Elem,Set ->Set (vložení prvku)

promnné: axiomy: del(_,_): Elem,Set ->Set (zrušení - - ) in(_,_) : Elem,Set ->Bool(test písluš.) card(_) : Set->Nat (poet prvk) s: Set, x,y: Elem ins(x,s) = if in(x,s) then s // druhé vložení bez významu del(x,[ ])=[ ] del(x, ins(y,s))= if eq(x,y) // mazání všech ins then del(x,s) else ins(y, del(x,s)) in(x,[]) = false in(x,ins(y,s))= if eq(x,y)then true else in(x,s) card([]) = 0 card(ins(x,s)) = if(in(x,s)) then card(s) else succ(card(s)) // poítá se jen 1x eq(s,t) = eq(t,s) eq(s,[]) = if eq(s,[]) then true eq(ins(x,s),t) = if in(x,s) then eq(s,t) else if in(x,t) then eq(s,del(x,t))