Buscar

ATPSI 2015 RELATORIO 3

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);
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais