/************************* Classes consideradas prontas. Colocamos aqui apenas como seriam os protótipos dos métodos para melhor entendimento da modelagem. */ classe Esteira Inicio Publica Nada Iniciacao (inteiro IRQ_S, inteiro LI_ES_S, inteiro LS_ES_S) Inicio Fim; Publica Nada LigueSe () Inicio Fim; Publica Nada DesligueSe () Inicio Fim; Fim; classe Leitor Inicio Publica Nada Iniciacao (inteiro IRQ_S, inteiro LI_ES_S, inteiro LS_ES_S) Inicio Fim; Publica inteiro Numero() Inicio Fim; Fim; classe Braco Inicio Publica Nada Iniciacao (inteiro IRQ_S, inteiro LI_ES_S, inteiro LS_ES_S) Inicio Fim; Publica nada Empurra(inteiro Qual_Conteiner) Inicio Fim; Fim; classe Sensor Inicio Publica Nada Iniciacao (inteiro IRQ_S, inteiro LI_ES_S, inteiro LS_ES_S) Inicio Fim; Publica Logico Ativado() Inicio Fim; Fim; /******************** Classes a serem desenvolvida de acordo com a proposta do enunciado */ classe Container Inicio Privativo Sensor S = Novo Sensor (); Publica Nada Inicializacao (inteiro IRQ_S, inteiro LI_ES_S, inteiro LS_ES_S) Inicio S.Inicializacao (IRQ_S, LI_ES_S, LS_ES_S); Fim; Publica Logico Cheio () Inicio Se (S.Ativado () == Verdadeiro) Retorna Verdadeiro; Senao Retorna Falso; Fim; Fim; classe Linha Inicio Privativo Container C [ ] = Novo Container [5]; // Vetor de 5 Container Privativo Esteira E = Nova Esteira (); Privativo Leitor L = Novo Leitor (); Privativo Braco B = Novo Braco (); Publica Nada Inicializacao (inteiro IRQ_C [], inteiro LI_ES_C [], inteiro LS_ES_C [], inteiro IRQ_B , inteiro LI_ES_B , inteiro LS_ES_B , inteiro IRQ_E , inteiro LI_ES_E , inteiro LS_ES_E , inteiro IRQ_L , inteiro LI_ES_L , inteiro LS_ES_L ) Inicio B.Inicializacao (IRQ_B, LI_ES_B, LS_ES_B); L.Inicializacao (IRQ_L, LI_ES_L, LS_ES_L); E.Inicializacao (IRQ_E, LI_ES_E, LS_ES_E); Para (Inteiro i=0; i<5; i=i+1) Inicio C[i] = Novo Container (); C[i].Inicializacao (IRQ_C[i], LI_ES_C[i], LS_ES_C[i]); Fim; Fim; Privativa Logico HaAlgumContainerCheio () Inicio Inteiro QtosCheios = 0; Para (Inteiro i=0; i<5; i=i+1) Se (C[i].Cheio()) QtosCheios=QtosCheios+1; Se (QtosCheios > 0) Retorna Verdadeiro; Senao Retorna Falso; Fim; Privativa Nada CicloDeOperacao () Inicio E.LigueSe (); Enquanto (!HaAlgumContainerCheio ()) Inicio Inteiro N = L.Numero (); Se (N != -1) B.Empurra (N); Fim; E.DesligueSe (); Fim; Publica Nada EntreEmAcao () Inicio Enquanto (Verdadeiro) Se (!HaAlgumContainerCheio ()) CicloDeProducao (); Fim; Fim;