Baixe o app para aproveitar ainda mais
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.
Compartilhar