Baixe o app para aproveitar ainda mais
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.
Compartilhar