Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Relatório 3 – Algoritmo_versão2 O circuito referente à expressão simplificada no passo 2, é caracterizado na seguinte forma: Circuito.jpg Considerando a nova regra R4 (Se não tiver carro transitando na rua A nem na rua B o semáforo deverá ficar verde na rua A por ser preferencial) foram obtidos os seguintes resultados: Lembrando que: R1: Quando houver carros transitando somente na rua B o semáforo 2 deverá permanecer verde. Verde do sinal 2 aceso (V2= 1) Vermelho do sinal 2 acesso (Vm2 = 0) R2: Quando houver carros transitando somente na rua A o semáforo 1 deverá permanecer verde. Verde do sinal 1 aceso (V1= 1) Vermelho do sinal 1 acesso (Vm1 = 0) R3: Quando houver carros transitando nas ruas A e B o semáforo da rua A deverá estar verde por ser preferencial. Verde do sinal 1 aceso (V1= 1) Vermelho do sinal 1 acesso (Vm1 = 0) R4: Quando não houver carros transitando nas ruas A e B o semáforo A deverá estar verde por ser preferencial. Verde do sinal 1 aceso (V1= 1) Vermelho do sinal 1 acesso (Vm1 = 0) Tabela de convenções Convenções Saída V1 Vm1 V2 Vm2 Regras Carro somente na rua B B = 1 0 1 1 0 R1 Carro somente na rua A A = 1 1 0 0 1 R2 Carros nas ruas A e B A = 1 e B = 0 1 0 0 1 R3 Nenhum carro na rua A e B então A deve ficar verde por ser preferencial A=1 e B=0 1 0 0 1 R4 (Ressalta-se que 1 estabelece a presença de carros e 0 estabelece a ausência de carros, ressalta-se ainda que V representa o sinal verde do semáforo e Vm o sinal vermelho do semáforo). Cálculo das Saídas R1 A'.B = 1 R2 A.B' = 1 R3 A.B + A.B' R4 A'.B' = 1 Simplificação das saídas para sinal verde V1= A ● B' + A ● B V2= A' ● B' + A' ● B Expressando a negação da regra R4 com o uso das leis De Morgan, temos os seguintes resultados: (R4) Não existência de carros nas ruas A e B, preferencial para A. Para A = P Para B = Q P Q P' Q' P'^Q' V V F F F V F F V F F V V F F F F V V V (R4 negado) Para existência de carros nas ruas A e B, não preferencial para A. Em termos de execução do algoritmo: Tabela Verdade Regra A B S1 S2 R4 0 0 0 1 R3 1 1 1 0 R2 1 0 1 0 R1 0 1 0 1 N/A 0 0 0 0 (Ressalta-se que S1 é referente ao 1º semáforo que privilegia a rua A e que S2 é referente ao semáforo de acesso à rua B) Espaço vetorial V no R2 definido pelos vetores c,b e espaço vetorial no R3: Gráficos usados como referência para o cálculo da distância de origem até a esquina Posição dos pontos A, B, C e D C:\Users\Angélica\Documents\1.jpgA (-3.5, 0) B (3.5, 0) C (0, 3.5) D (0, -3.5) Soma dos pontos C + B = (3.5 , 3.5) D + B = (3.5 , -3.5) D + A = (-3.5 , -3.5) A + C = (-3.5 , 3.5) fórmula fórmula fórmula fórmula fórmula fórmula Essa fórmula será usada para resolver todas as distâncias, de forma que será usada apenas uma. C:\Users\Angélica\Documents\2.jpgUtilizou-se o modulo por se tratar de distância, medida que não existe valor negativo. fórmula fórmula fórmula fórmula fórmula fórmula A distância da origem até a “esquina” é de, aproximadamente, 4,94 metros. Com a mudança da largura da rua de 9m para 7m, pode-se notar que as ruas A e B ficariam mais estreitas e a distância do centro do cruzamento até a esquina também seria menor. Já em relação ao poste, a maior mudança seria no tamanho da sua largura, que passaria dos 4m para 3m, para que ficasse proporcional a largura da rua, já em sua altura não foram feitas mudanças, pois levamos em consideração que poderiam passar veículos mais altos. Desenvolvimento do algoritmo Dentro das condições impostas para o desenvolvimento da versão do sistema automático, foi criado um algoritmo que permite fácil entendimento e acesso do usuário, algo que podemos observar no teste a seguir: Print.png Código Fonte #include <stdio.h> /* * Etapa 3 * Realiza testes enquanto decisão for diferente de fim */ int main() { int num_carros_a, num_carros_b; char decisao[3]; do { system("cls"); printf("Digite quantos carros existem na ruas A:"); scanf("%d", &num_carros_a); printf("Digite quantos carros existem na ruas B:"); scanf("%d", &num_carros_b); if ((num_carros_a > 0) && (num_carros_b > 0)) printf(" Semaforo 1 => Verde\n Semaforo 2 => Vermelho"); else if ((num_carros_a == 0) && (num_carros_b > 0)) printf(" Semaforo 1 => Vermelho\n Semaforo 2 => Verde"); else printf(" Semaforo 1 => Verde\n Semaforo 2 => Vermelho"); printf("\n\nDeseja fazer outra simulacao? "); scanf("%s", decisao); }while(strcmp(decisao, "FIM") != 0 && strcmp(decisao, "fim") != 0); }
Compartilhar