Buscar

ATPSI 2015 RELATORIO 4

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Relatório 4 – Relatório Final
Mapa de Karnaugh
Mapas de Karnaugh referente às novas expressões encontradas:
R4 F(AB)=AB
R3 F(AB)=A B
R2 F(AB)=A B
R1 F(AB)= AB
Temporizador
Quando houver carros somentes na rua A, ou nas ruas A e B, ou em nenhumas das ruas permanecerá verde para a rua A por ser preferencial. Só haverá mudança para vermelho quando houver carros somente na rua B.
Iremos criar um evento onde haverá uma transição do estado verde pro vermelho com um temporizador de 10 segundos. Quando houver carros somente na rua B o temporizador irá contar 10 segundos e deixar o semaforo verde para a rua B e vermelho para a A. O mesmo irá acontecer na transição da rua B para rua A.
	
	
	
	
	ESTADO ANTERIOR
	ESTADO ANTERIOR
	Regras
	Transito
	S1
	S2
	S1
	S2
	R1
	
	VM
	VE
	VE
	VM
	R2
	
	VE
	VM
	VM
	VE
	R3
	
	VE
	VM
	VM
	VE
	R4
	
	VE
	VM
	VM
	VE
(Ressalta-se que VM é sinal vermelho e VE é sinal verde, e o tempo de transição será de 10 segundos)
Autovalor e rotação de 90º
C:\Users\Angélica\Documents\7.jpgfórmula
fórmula
fórmula
fórmula
fórmula
A distância é de, aproximadamente, 6 metros.
Considerando que apenas a largura do semáforo foi alterada, pois a alteração na altura poderia resultar em alguma complicação.
	Os pontos seriam (3, 5.2) levando em consideração que y não foi utilizado.
	Onde 3 é x e 5.2 é z e y foi ignorado.
A diferença entre as medidas não é algo tão grande, porém resulta em uma diminuição na largura das faixas, o que faz que o semáforo tenha que ser alterado de 4 metros para 3.
C:\Users\Angélica\Documents\5.jpgC:\Users\Angélica\Documents\6.jpg
Desenvolvimento final do algoritmo
Dentro das condições impostas para o desenvolvimento da versão final do sistema automático, foi criado um algoritmo que permite também fácil entendimento, porém o fim do programa não considera mais a indicação vinda do usuário, sendo considerado então o fim dos dados armazenados no vetor, o que podemos observar no teste a seguir:
print.png
Código fonte
#include <stdio.h>
int main()
{
	// vetores com valores aliatórios seguindo apenas a regra de a < b ou a = b ou a < b
int num_carros_a[4] = {0, 2, 5, 0}, num_carros_b[4] = {3, 0, 3, 0}, i;
for	(i = 0; i < 4; i++) 
{
printf("Carros na rua A: %d\n", num_carros_a[i]);
	 printf("Carros na rua B: %d\n\n", num_carros_b[i]);
	 // Regra 1 -> Carros somente na rua B
	 if (num_carros_a[i] == 0 && num_carros_b[i] > 0)
	 {
	 printf(" Semaforo 1 => Vermelho\n Semaforo 2 => Verde\n\n");
	 printf("Regra 1: Carros somente na rua B\n\n");
	 }
	 // Regra 2 -> Carros somente na rua A
	 else if (num_carros_a[i] > 0 && num_carros_b[i] == 0)
	 {
	 printf(" Semaforo 1 => Verde\n Semaforo 2 => Vermelho\n\n");
	 printf("Regra 2: Carros somente na rua A\n\n");
	 }
	 // Regra 3 -> Carros em ambas as ruas
else if (num_carros_a[i] > 0 && num_carros_b[i] > 0)
	 {
	 printf(" Semaforo 1 => Verde\n Semaforo 2 => Vermelho\n\n");
	 printf("Regra 3: Carros em ambas as ruas, preferencial da rua A.\n\n");
	 }
	 // Regra 4 -> Nenhum carro em ambas as ruas
	 else
{
printf(" Semaforo 1 => Verde\n Semaforo 2 => Vermelho\n\n");
	 printf("Regra 4: Nenhum carro em ambas as ruas, prefencial da rua A.\n\n");
} 
	 
	 printf("------------------------------------------------------------\n"); 
}
getch();
}
Considerando o monitor de um computador como um plano cartesiano.
É considerado, pois assim como no plano cartesiano que é feito através da junção de dois eixos, perpendiculares entre si que se cruzam no ponto 0, o qual é a origem de ambos os eixos. Também são os monitores do computador O eixo horizontal é chamado de eixo das abscissas ou x. O eixo vertical é chamado de eixo das ordenadas ou y.
Sendo assim ponto do plano cartesiano é identificado por um par de números chamados de coordenadas. Para obter um ponto P, basta traçar as perpendiculares ao eixo x e y.
Para os monitores de vídeo, informações do tipo: resolução máxima de 1280 x 1024,
1600 x 1200, o importante é o número de pontos em cada uma das dimensões das telas do computador as imagens produzidas com os mais diversos recursos de computação gráfica.
Função printf
A função printf é parte de um conjunto de funções pré-definidas armazenadas em uma biblioteca padrão de rotinas da linguagem C.
Com essa função permite apresentar na tela os valores de qualquer tipo de dado. Então, printf utiliza o mecanismo de formatação, que permite traduzir a representação interna de variáveis para a representação ASCII que pode ser apresentada na tela.
O primeiro argumento de printf é um string de controle, uma sequência de caracteres entre aspas. Esta string, que sempre deve estar presente, pode especificar através de caracteres especiais (as sequências de conversão) quantos outros argumentos estarão presentes nesta invocação da função. Estes outros argumentos serão variáveis cujos valores serão formatados e apresentados na tela.
Por exemplo, se o valor de uma variável inteira x é 25, então a execução da função:
printf("Valor de x = %d", x); imprime na tela
Em execução:
print.png
Código fonte
#include <stdio.h>
/*
* Etapa 4, Tópico 2 - Opcional
* Plano cartesiano representando ruas A e B e semáforos
*/
void cartesian_plan(char carros_rua_a, char carros_rua_b)
{
	 int i;
	 printf("O = Verde\n\nX = Vermelho\n");
	 for (i = 0; i < 10; i++) 
	 {
	 printf("%20s%5s\n","|", "|");
}
printf("%19s%s%4c%s%s\n", "Semaforo 1 ", "|", carros_rua_b, "|", " Semaforo 2");
for (i = 0; i < 19; i++) 
	 {
printf("%s", "-");
}
printf("%6s", " ");
for (i = 0; i < 19; i++) 
	 {
printf("%s", "-");
}
printf("\n%19c\n%26c\n", carros_rua_a, carros_rua_a);
for (i = 0; i < 19; i++) 
	 {
printf("%s", "-");
}
printf("%6s", " ");
for (i = 0; i < 19; i++) 
	 {
printf("%s", "-");
}
printf("\n");
printf("%19s%s%c%4s%s\n","Semaforo 2 ", "|", carros_rua_b, "|", " Semaforo 1");
for (i = 0; i < 10; i++)
	 {
	 printf("%20s%5s\n","|", "|");
}
printf("--------------------------------------------");
}
int main()
{
	 // vetores com valores aliatórios seguindo apenas a regra de a < b ou a = b ou a < b
int num_carros_a[4] = {0, 2, 5, 0}, num_carros_b[4] = {3, 0, 3, 0}, i;
for	(i = 0; i < 4; i++) 
	 {
	 	 printf("Carros na rua A: %d\n", num_carros_a[i]);
	 printf("Carros na rua B: %d\n\n", num_carros_b[i]);
	 // Regra 1 -> Carros somente na rua B
	 if (num_carros_a[i] == 0 && num_carros_b[i] > 0)
	 {
	 	 printf(" Semaforo 1 => Vermelho\n Semaforo 2 => Verde\n\n");
Bibliografia
http://www.brasilescola.com/matematica/plano-cartesiano.htm 
Acesso em 21/05/2015 as 14h20m.
http://www.mundoeducacao.com/matematica/plano-cartesiano.htm 
Acesso em 22/05/2015 as 16h20m.
http://pt.wikipedia.org/wiki/Temporizador
Acesso em 22/05/2015 as 17h00m.

Teste o Premium para desbloquear

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

Outros materiais