Buscar

tads-basicos

Prévia do material em texto

TADs Básicos Apresentados de Forma Resumida
 Este documento pode ser impresso e levado para prova, desde que não seja modificado, 
todas as folhas contenham o seu nome, e não seja feita nenhuma anotação na folha. 
Note que o documento usa uma notação resumida para que fique compacto. Não utilizar 
tal notação.
Tipos primitivos: inteiro, booleano, caracter, real, string.
 Suponha que todos os tipos primitivos tenham uma operação read(x) que lê 
um valor da entrada padrão e uma operação print(x) que imprime o valor na 
saída padrão.
 Suponha que todos os tipos abstratos possuam uma operação print(v) que 
imprime uma representação do valor v na saída padrão. (Note que não existe a 
operação read)
tipo abstrato Sequência<<T>>
função cria(): Sequência<<T>> 
 Cria sequência vazia. Denotação: [e1,e2,...,eN] representa sequência com N 
elementos 
função cabeca (S: Sequência<<T>>): <<T>> 
 Retorna primeiro elemento da sequência. S não pode estar vazia .
função cauda(S: Sequência<<T>>): Sequência<<T>> 
 Retorna uma sequência idêntica a S, mas sem o primeiro elemento. S não 
pode estar vazia. Denotação [x|s] é uma sequência, tal que x é a cabeça e s a 
cauda 
função vazia (S: Sequência<<T>>): booleano 
 Verdadeiro se S está vazia 
função concat (S1, S2: Sequência<<T>>): Sequência<<T>> 
 Produz nova sequencia com elementos de S2 após S1. 
função get(S: Sequência<<T>>, i: inteiro): <<T>> 
 Retorna i-esimo elemento. Não vazia . Denotação: S[i] 
procedimento insi(S: Sequência<<T>>, e: <<T>>) 
 Insere elemento e no inicio de S. 
função reti(S: Sequência<<T>>): <<T>>) 
 Retira elemento do inicio. Não vazia.
procedimento insf(S: Sequência<<T>>, e: <<T>>) 
 Insere elemento e no fim da sequência. 
função reti(S: Sequência<<T>>): <<T>>) 
 Retira elemento do fim da sequência. Não vazia.
tipo abstrato ProdutoCartesiano<<T1,T2,T3,....,Tn>>
 É o produto cartesiano de n dimensões (n>1). Cada dimensão pode ter um 
domínio diferente.
Pode ser escrito como T1 X T2 X .... X Tn.
função cria(e1:T1, e2:T2,...,eN:Tn): ProdutoCartesiano<<T1,T2,...,Tn>>
 Denotação: <e1,e2,...,eN>. ei pertence a Ti.
função get(P: ProdutoCartesiano<<T1,T2,...,Tn>>, i: inteiro):<<Ti>>
 Retorna valor da i-esima dimensão do produto cartesiano P. Denotação: #i(P)
procedimento set(P: ProdutoCartesiano<<T1,T2,...,Tn>>, i: inteiro, 
v:<<Ti>>)
 Atribui valor v à i-esima dimensão do produto cartesiano P. Denotação: 
#i(P,v).
tipo abstrato Registro<<T1,T2,T3,....,Tn>>
 Semelhante ao produto cartesiano de n dimensões (n>1). Porém cada 
dimensão é identificada por um nome.
Pode ser escrito como rec(n1:T1, n2:T2; .... nN: TN).
função cria(e1:string, e2:string,...,eN:sting): rec(e1:T1, e2:T2,...,en:Tn)
função get(R: rec(e1:T1, e2:T2,...,en:Tn), ei: string):<<Ti>>
 Retorna valor da dimensão do registro R cujo nome é ei. Denotação: #ei(R)
procedimento set( rec(e1:T1, e2:T2,...,en:Tn), ei: string, v:<<Ti>>)
 Atribui valor v à dimensão de R cujo nome é ei. Denotação: #ei(R,v).
tipo abstrato Conjunto<<T>>
 Usar a notação matemática convencional.

Continue navegando