Tópicos

  • Construção de objectos
  • Realização de hierarquias de classes simples
  • Polimorfismo
  • Overloading e overriding de métodos
  • O exercício de C++ deve ser entregue, em papel, na aula prática da semana de 2014/10/06 - ex03cpp.pdf

    Exercício 1: Porta AND Binária

    Realize uma classe Java que represente uma porta lógica AND com duas entradas. Esta classe deve chamar-se AndGate2 e ter, entre outras que sejam (justificadamente) julgadas necessárias, a seguinte funcionalidade:

    • Se, na construção, não se especificarem os valores lógicos das entradas, devem ser considerados falsos;
    • Se, na construção, se especifica apenas um valor lógico, assume-se que é o mesmo para as duas entradas;
    • Se, na construção, se especificam dois valores lógicos, então cada entrada deve ser definida em conformidade;
    • Depois de criado o objecto, deve ser possível estabelecer o valor de cada entrada, tanto individualmente, como em conjunto;
    • Deve ser possível obter o valor da operação lógica (método getOutput).
    • Deve ser possível comparar duas portas (são iguais se os valores das entradas forem iguais);
    • Deve ser possível apresentar ( toString) uma descrição da porta, sob o formato A: valor B: valor (onde valor é o valor de cada entrada).

    Após ter definido a classe, codifique uma aplicação e a função main respectiva, por forma a demonstrar o correcto funcionamento desta classe. Escolha diferentes combinações de entradas por forma a ter valores distintos na saída dos dois objectos. 

    [ resolução: procurar resolver antes de consultar ]

    Exercício 2: Porta AND Ternária

    Defina uma nova classe que represente uma porta lógica AND com três entradas. Esta classe deve chamar-se AndGate3 e apresenta a mesma funcionalidade que a de duas entradas. A apresentação ( toString) é A: valor B: valor C: valor.

    A classe AndGate3 deve ser definida reutilizando o conceito AndGate2 (definido no Exercício 1).

    Adapte a função main definida anteriormente, por forma a integrar alguns testes com a nova porta lógica.

    [ resolução: procurar resolver antes de consultar ]

    Exercício 3: Energia

    Considere o Exercício 2 da Aula Prática 02.

    Resolva agora o mesmo problema, mas considerando as possíveis abstracções de comportamentos e propriedades comuns aos vários conceitos. Defina os conceitos do problema com base nas suas abstracções.

    Discuta as opções da abstracção, em particular, no que respeita a aspectos menos flexíveis relativamente a possíveis alterações do modelo (constantes, propriedades, comportamentos comuns, etc.). Ainda neste sentido, compare a nova solução com a solução da Aula Prática 02. Chegou à conclusão que a sua nova solução ainda apresenta dificuldades face à manutenção do código? Neste caso, quais são os aspectos problemáticos?

    [ resolução: procurar resolver antes de consultar ]