Ir ao conteúdo
  • Cadastre-se

C exercício movimento de carro Linguagem C


Gabi_gabis

Posts recomendados

Oi boa noite alguém pode me ajudar com esse exercício,  eu comecei a fazer dando só a definição de esquerda, direita,  frente e trás depois eu me perdi não sei o que fazer se alguém puder me ajudar ,no que eu devo fazer, me dar uma luz pfv :' desde já deixo meu obrigada.

 

Você foi convidado para a oficina de robótica e terá de implementar
um algoritmo para decidir o movimento de um carro automático. Ele tem 3 sensores 
que medem distância a obstáculos: um na frente, um à esquerda e outro à direita 
(aqui na questão você simulará a leitura dos sensores usando 3 comandos scanf). 
Os comandos que você pode dar aos motores do carro são “frente”, “esquerda”, 
“direita” e “trás (ré)” (aqui na questão você simulará os comandos para os 
motores através de printfs apenas). Implemente um programa em C que simule 
a seguinte lógica: o carro anda para frente caso o sensor da frente 
indique obstáculo a mais de 50 cm; caso contrário, o sensor da direita é
examinado: o carro vira à direita caso o sensor da direita indique obstáculo 
a mais de 50 cm; caso contrário, o sensor da esquerda é examinado: o carro vira
à esquerda caso o sensor da esquerda indique obstáculo a mais de 50 cm; caso 
contrário,o carro andará para trás (marcha à ré), nesta situação em que todos 
os sensores indicam obstáculos próximos (<= 50 cm).

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

46 minutos atrás, Gabi_gabis disse:

Oi boa noite alguém pode me ajudar com esse exercício,  eu comecei a fazer dando só a definição de esquerda, direita,  frente e trás depois eu me perdi não sei o que fazer se alguém puder me ajudar ,no que eu devo fazer, me dar uma luz pfv :' desde já deixo meu obrigada.

 

Você foi convidado para a oficina de robótica e terá de implementar
um algoritmo para decidir o movimento de um carro automático. Ele tem 3 sensores 
que medem distância a obstáculos: um na frente, um à esquerda e outro à direita 
(aqui na questão você simulará a leitura dos sensores usando 3 comandos scanf). 
Os comandos que você pode dar aos motores do carro são “frente”, “esquerda”, 
“direita” e “trás (ré)” (aqui na questão você simulará os comandos para os 
motores através de printfs apenas). Implemente um programa em C que simule 
a seguinte lógica: o carro anda para frente caso o sensor da frente 
indique obstáculo a mais de 50 cm; caso contrário, o sensor da direita é
examinado: o carro vira à direita caso o sensor da direita indique obstáculo 
a mais de 50 cm; caso contrário, o sensor da esquerda é examinado: o carro vira
à esquerda caso o sensor da esquerda indique obstáculo a mais de 50 cm; caso 
contrário,o carro andará para trás (marcha à ré), nesta situação em que todos 
os sensores indicam obstáculos próximos (<= 50 cm).

você fez o que já? pelo menos já fez o labirinto de testes? mostre o que já tem pronto.
 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@codigo rápido Eu comecei aqui, esta incompleto, não sei se esse modo esta certo 

#include <stdio.h>

int main()
{   float frente, esquerda, direita, tras
    printf("Entre com o valor a: ");
     scanf("%f", &frente);
      printf("Entre com o valor b: ");
     scanf("%f", &esquerda);
      printf("Entre com o valor c: ");
     scanf("%f", &direita);
    
    if(a>50);
    printf("frente")
    
     if(b<50);
    printf("direita")
       if(c>50);
    printf("esquerda")
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Gabi_gabis      tem erros de syntaxe ,   na linguagem c  ou c++  precisa colocar um ponto_e_vírgula no final da linha de comando ,   e   corrigindo  , esse código ficou assim  :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    float frente, esquerda, 
          direita , tras  ,
          a=0 , b=0 , c=0 ;               /// faltou o pnto_e_vitgula
    printf("Entre com o valor a --: ");
    scanf("%f", &frente);
    printf("Entre com o valor b --: ");
    scanf("%f", &esquerda);
    printf("Entre com o valor c ---: ");
    scanf("%f", &direita);
    if (a > 50)
        printf("frente");                 /// faltou o ponto_e_virgula
    if (b < 50)                           /// if não precisa e nem pode ter ponto_e_virgula;
        printf("direita");                /// faltou o ponto_e_virgula
        if (c > 50)                       /// if não precisa e nem pode ter ponto_e_virgula;
        printf("esquerda");               /// faltou o ponto_e_virgula
        return 0;                         /// retorna o valor zero para o windows
}

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites


#include <stdio.h>

int main()
{
	float frente, esquerda, direita; 
	//, tras; atras talvez nem precise porque 
	// não entrando nessas condição, automaticamente 
	// irá imprimir atras... 

	// se tem 3 sensores, então obrigatoriamente você deve ter 3 scanfs pra similar
	printf("Entre com o valor a: ");
	scanf("%f", &frente);
	printf("Entre com o valor b: ");
	scanf("%f", &esquerda);
	printf("Entre com o valor c: ");
	scanf("%f", &direita);

	// acho que deveria ser assim, porque a condição prioritaria é pra frente
	if(a>50.0);
		printf("frente");
	// se não testa a segunda condicao
	else if(b>50.0);
		printf("direita");
	// se não testa a terceira
	else if(c>50.0);
		printf("esquerda");
	else
		printf("atras");
	return 0;
}

/*
	// agora olha só... existe diferenças... 
	// seu robo, se decidir ir pra frente ou ir pra tras, ele vai sair do lugar. 
	// mas se decidir ir pra direita ou esquerda, ele só vai girar, depois que 
	// ele vai decidir ir pra frente ou pra tras

	// você pode simular o labirinto assim:
	int array[10][10] = {	{1,1,1,1,1,1,1,1,1,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,1},
				{1,1,1,1,1,1,1,1,1,1}
	};

	// ai, você coloca seu robo em algum ponto qualquer no lugar de 0. Pode usar random pra isso.
	// cada quadrado como 50 cm, cada 1 como parede, e cada 0 com espaço vazio
	// é melhor que digitar no seu scanf toda hora alem de deixar mais bonitinho... 

	// aqui você encontra um exemplo legal de codigo como deixar mais bonitinho e até como 
	// fazer aparecer o seu robo e as paredes:

	// https://en.wikipedia.org/wiki/ANSI_escape_code
	// ate postei o exemplo do codigo aqui:
	// https://www.clubedohardware.com.br/forums/topic/1562726-ubuntu-gcc-e-interfaces-gr%C3%A1ficas/

	// se usar gotoxy, vai mover seu robo
*/


 

  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...