• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Camara

Ligação de dados abstractos a classes java

7 mensagens neste tópico

Olá a todos,

Tenho um trabalho para fazer de estruturas de dados, mas estou com alguma dificuldade em deduzir os dados para uma classe java.

Os dados são os seguintes:

specification

  sorts

    Faixa

  constructors

    c r i a r F a i x a : T i t u l o i n t −−>? Faixa ;

  observers

    t i t u l o : Faixa −−> T i t u l o ;

    duracao : Faixa −−> i n t ;

  domains

    T : T i t u l o ; D: i n t ;

    c r i a r F a i x a ( T , D) i f D >= 1 ;

  axioms

    T : T i t u l o ; D: i n t ; F1 , F2 : Faixa ;

    t i t u l o ( criarFaixa (T , D) ) = T ;

    duracao ( c r i a r F a i x a ( T , D ) ) = D ;

end s p e c i f i c a t i o n

Algum de voçês me pode dar uma ajuda.

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O projecto até nem é dificil, cadeira de AED @ fcul estou certo?

Também estou a fazer o projecto, e estou na parte de finalizar os contratos e começar os testes aka debugging.

Qual é a tua dúvida concreta?

Essa especificação, traduz numa linguagem mais formal, qual deve ser o aspecto da classe Faixa, os contratos, e os metodos que nela deve conter.

Os dominios, são as restrições aos metodos, e os axiomas são o que cada observador faz quando chamam um constutor, nada de muito dificil.

A classe Memoria tem uma especifição algo mais complicada, mas "fazível".

Não exites em colocar a tua dúvida concreta ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá!

A minha dúvida é que não consigo extrair uma classe mediante uma especificação.

Além disso quanto à estrutura de dados, quero fazer com uma double linked list, mas não estou a conseguir adaptar o código aisepodes a uma estrutura.  :wallbash:

Se me puderes ajudar!

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A especificação orienta a tua classe, a nível de contratos axiomas e todos aqueles argumentos lá escritos.

O refinamente traduz para uma linguagem mais "aportuguesada" o conceito da classe, ou seja, os metodos, os argumentos, e que tipo de objecto/estrutura ou tipo primitivo deve devolver.

Relativamente à DLL, eu usei uma SLL, mas tens duas opções. Ou programas uma DLL dentro da classe AiSePodes(como nested class, e como temos vindo a fazer nas aulas), ou crias uma classe à parte, já como Lista.

Eu apenas tenho duas classes como pedido pelo enunciado, mas dentro do AiSePodes tenho: uma representação de NO, a SLL(lista simplesmente ligada por nos ligados entre si), e o MeuIterador.

Começa por fazer a classe faixa, lá diz-te quais são os teus métodos, para além do construtor(que vem com nome diferente, mas o nome do construtor tem que ser igual ao da classe), usa mais 2, e se quiseres um 3º aka toString().

No AiSePodes, se olhares no AiMusica, mais precisamente no Menu(ou em cada método que esse menu chama), estão lá os metodos que o AiSePodes chama, e se quiseres podes começar por aí.

O prazo está a acabar, se bem me recordo a entrega é de hoje a 8 dias ;)

força aí  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Valeu  :P;):):D

Um dia temos de nos encontrar na FCUL.

Eu vou dando noticias.

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá mais uma vez!

Já agora está a definir a capacidade () como números de faixas, ou o tempo de cada faixa.

Cumprimentos,

Camara

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já me tinha esquecido deste tópico. Se tiveres duvidas manda pm com o teu msn.

Já agora induzi-te a erro.

A especificação e as classes são dois mundos à parte. A especificação é do mundo dos contractos, e as classes são do mundo java. O refinamento faz a ligação entre esses dois mundos, ligação essa que é observada/compilada pelo congu.

Se fizeres uma estrutura de dados tipo, arvores, listas, pilhas, filas, convém fazer uma classe à parte, como é um conceito que faz sentido fora da classe AiSePodes, é possível que possa ser usado para outros meios.

O enunciado foi ligeiramente alterado nesse aspecto.

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora