Centro de Ciências Exatas, Ambientais e de Tecnologias
Faculdade de Engenharia de Computação

Paradigmas de Linguagens de Programação
Atividade Extra Classe

Imagine uma linha de produção onde 5 possíveis produtos sejam produzidos. A produção é escoada através de uma esteira rolante ao final da qual se encontram 5 containers lado a lado, um para cada tipo de produto.

Os produtos são identificados por um código numérico escrito em uma etiqueta fixada na sua superfície. O código é impresso na etiqueta em algarismos arábicos e em código de barras.

Dependendo do código do produto, ele deverá ser encaminhado para 1 dos 5 containers existentes. Tal encaminhamento se dá pelo simples posicionamento do produto na esteira, o que fará que ele venha a cair no container apropriado no final da esteira.

Os containers são equipados com um sensor que indica quando o mesmo está repleto, o que deve ocasionar uma parada na linha de produção para a devida substituição do container cheio.

Suponha implementada uma classe chamada Esteira que dispõe de (1) uma função (de nome Iniciação) que, recebendo um inteiro que representa o número de seu pedido de interrupção, bem como dois outros inteiros que representam, respectivamente, os limites, inferior e superior, do seu intervalo de E/S, inicia apropriadamente a instância à qual se refere; (2) uma função (de nome LigueSe) sem parâmetros e sem retorno que, quando executada, faz com que a esteira seja ligada; e (3) uma função (de nome DesligueSe) sem parâmetros e sem retorno que, quando executada, faz com que a esteira seja desligada.

Suponha implementada uma classe chamada Leitor que dispõe de (1) uma função (de nome Iniciação) que, recebendo um inteiro que representa o número de seu pedido de interrupção, bem como dois outros inteiros que representam, respectivamente, os limites, inferior e superior, do seu intervalo de E/S, inicia apropriadamente a instância à qual se refere; (2) uma função (de nome Numero) sem parâmetros e que retorna o número correspondente ao código de barras lido (retorna -1 no caso de ser chamada sem que nenhum código de barras estar posicionado para leitura).

Suponha implementada uma classe chamada Braco que dispõe de (1) uma função (de nome Iniciação) que, recebendo um inteiro que representa o número de seu pedido de interrupção, bem como dois outros inteiros que representam, respectivamente, os limites, inferior e superior, do seu intervalo de E/S, inicia apropriadamente a instância à qual se refere; (2) uma função (de nome Empurra) sem retorno e que recebe como parâmetro o número do container para o qual o produto em seu campo de ação deve ser empurrado.

Suponha implementada uma classe chamada Sensor que dispõe de (1) uma função (de nome Iniciação) que, recebendo um inteiro que representa o número de seu pedido de interrupção, bem como dois outros inteiros que representam, respectivamente, os limites, inferior e superior, do seu intervalo de E/S, inicia apropriadamente a instância à qual se refere; (2) uma função (de nome Ativado) sem parâmetro e que retorna um valor lógico verdadeiro, no caso de detectar algo no nível de altura onde foi fisicamente instalado, ou falso, caso contrário.

Pede-se:


BOM TRABALHO !