A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de.

Apresentações semelhantes


Apresentação em tema: "Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de."— Transcrição da apresentação:

1 Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de multi-conjuntos

2 Definição e notação de bags - Bags podem ser modelados como funções: bag X = X  N 1 ^ I N \ {0} I - Notação: [a 1, a 2,..., a n ] == {a 1 K 1, a 2 K 2,..., a n K n } [ ] == {}  [] [ ] Ocorrências de cada elemento

3 Alguns exemplos de bags [a, b, a] = [a, a, b] = [b, a, a] = {a 2, b 1} [a, b] = [b, a] = {a 1, b 1} [ ] = { } [a, a, a] = {a 3} [ ] [ ][ ]  [ [ [ ] ] ] ] [  

4 Operação count Informa a quantidade de ocorrências de um dado elemento de um bag Exemplos: count [a, b, b, b, b] b = 4 count [a, b, b, b, b] a = 1 count [a, b, b, b, b] c = 0 [ ] [ ] [ ] [X] count _ : bag X  ( X  N )  B: bag X  count B = ( x: X  0 )  B I > 

5 Operação in Equivalente a operação de pertinência (  ) para conjuntos Exemplos: b in [a, b, b, b, b] é verdadeiro a in [a, b, b, b, b] é verdadeiro c in [a, b, b, b, b] é falso Teorema: x in B  count B x > 0 [ ] [ ] [ ] [X] _ in _ : X  bag X  x:X; B: bag X  x in B  x  dom B

6 União de bags Equivalente a operação de união (  ) para conjuntos Exemplo: [a, a]  [a, b, b, b, b] = [a, a, a, b, b, b, b] [ ] [X] _  _ : bag X  bag X  bag X  x:X; B, C: bag X  count (B  C) x = count B x + count C x + [ [ ] ] + +

7 Teoremas dom (B  C) = dom B  dom C [ ]  B = B  [ ] = B B  C = C  B (B  C)  D = B  (C  D) + [[]] + + + + + + ++

8 Operação items Transforma uma seqüência em um bag Exemplo: items  a, b, a, b, a  = [a, b, a, b, a] = {a 3, b 2} [ ] [X] items _ : seq X  bag X  s: seq X; x: X  count (items s) x = # {i: dom s | s i = x} 

9 Teoremas dom (items s) = ran s items  a 1,..., a n  = [a 1,..., a n ] items (s t) = items s  items t items s = items t  (  f: dom s  dom t  s= t f) ) [ ]  > +

10 Componentes de especificação Z n Tipos básicos (“given sets”) n Tipos algébricos (“free types”) n Abreviações (constantes) n Constantes genéricas n Declarações n Definições axiomáticas n Definições genéricas n Esquemas –Estado –Operações –Como tipo

11 Uma especificação em Z n Formada por parágrafos n Cada parágrafo pode ser: –Uma instância de um dos componentes citados anteriormente, ou –Uma frase em linguagem natural (por exemplo: Português, Inglês, etc), usada para explicar a parte formal

12 Tipos básicos (“given sets”) n Introdução de tipos através de nomes n Abstração de detalhes de implementação n Notação: –[T 1,..., T n ] n Exemplos: –[Pessoa, Livro] –[Chave, Informacao] –[Tarefas]

13 Tipos pré-definidos n Z corresponde ao conjunto {...,-1,0,1,...} n N provém de Z da seguinte forma N=={x:Z | x  0} n Ou seja, restrições (predicados) podem ser usados para tornar o tipo mais específico n “Domínio” de discurso: Objetos ou entidades (Escopo Global) n Exemplos:[Alunos] Alunos  Pessoas # Alunos  20 I I

14 Tipos algébricos (“free types”) n Forma geral: –tipoFT ::= c 1 [  T 1  ] |... | c n [  T n  ] n Enumeração –Interruptor ::= ligado | desligado –Semana ::= dom | seg |... | sab n Tipos recursivos –Nat ::= zero | succ  Nat  –Lista ::= nil | next  IN  Lista  Opcional I

15 Abreviações (constantes) n Forma geral: Identificador == Expressão n Exemplos: –Pares == {n: N | 2 divide n} –DiasUteis == {seg, ter, qua, qui, sex} –Quadrado == x: N  x 2 –ParDeNat == N  N I I I I

16 Constantes genéricas n Forma geral: –Identificador [Parâmetros] == Expressão, ou –Parâmetro Identificador Parâmetro == Expressão n Exemplos: –  [X] == {x: X | false} “Conjunto vazio” –X  Y == P(X  Y) I

17 Declarações n Forma geral: –Identificadores: Tipo n Exemplos: –x: N –a 1, a 2 : Aluno n Conjuntos podem ser usados como tipos –Seja Pares == {x: N | 2 divide x}, então –a declaração y: Pares equivale a –y: N | y  Pares I I I

18 Definições axiomáticas n Forma geral: n Exemplos: Identificadores 1 : Tipo 1 Identificadores n : Tipo n Predicado... Limite: IN 0 < Limite  50 R 1, R 2 : {0,1}  {0,1} R 1 = {0 0, 1 0} R 2 = {}  se Predicado for true então pode ser omitido

19 Definições genéricas n Forma geral: n Exemplo: [X] _ in _ : X  bag X  x:X; B: bag X  x in B  x  dom B [Parâmetros] Declarações Predicado


Carregar ppt "Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de."

Apresentações semelhantes


Anúncios Google