Ir ao conteúdo

Posts recomendados

Postado

Faça um programa que permite ao usuário fornecer quatro números inteiros representando as coordenadas cartesianas (x,y) de dois pontos (A e B), ou seja, A = (x1, y1) e B = (x2, y2). O programa principal (main) também deverá permitir que o usuário escolha qual das seguintes funções será executada:

1) dados dois pontos, calcular e exibir a distância euclidiana entre eles, 2) dados dois pontos calcular e exibir o produto escalar entre eles (considere que as coordenadas do vetor A são (x1,y1) e do vetor B são (x2,y2)), 3) dados dois pontos calcular e exibir o vetor AB 4) dados dois pontos encontrar o coeficiente angular (m) da reta que passa por esses pontos.

Ou seja, se o usuário digitar "1", o programa irá calcular e exibir a distância euclidiana entre os pontos A e B. Portanto, ao todo, teremos cinco entradas.

IMPORTANTE 1: para cada um dos itens anteriores deverá ser construída uma função. IMPORTANTE 2: todas as suas funções devem estar dentro do arquivo main.c. IMPORTANTE 3: sempre use duas casas decimais nas aproximações.

 

OBS: NÃO CONSIGO ENCONTRAR O ERRO E NÃO SEI COMO FAÇO PARA CALCULAR A OPÇÃO 3 E A OPÇÃO 4, segue código feito até o momento

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

 

void menu (){

//printf("- Calcular e exibir a distancia euclidiana (1) \n");

//printf("- Calcular e exibir o produto escalar (2) \n");

//printf("- Calcular e exibir o vetor AB (3) \n");

//printf("-Calcular e exibir o coeficiente angular(4) \n");

//printf("- Sair (s) \n");

//printf("Escolha a opcao desejada \n");

}

 

float calculaDistancia(int x1, int y1, int x2, int y2){

return sqrt( pow(x2-x1,2)+ pow(y2-y1,2));

}

 

float calculaProdutoEs(int Vx1, int Vy1, int Vx2, int Vy2){

return (Vx1 * Vx2) + (Vy1 * Vy2);

}

 

float calculaCoeficienteAng(int Px1, int Py1, int Px2, int Py2){

return (Py2 - Py1) / (Px2 - Px1);

}

 

int main() {

char op;

menu ();

scanf("%c", &op);

switch(op) {

case'1':

//printf("Calcular distancia euclidiana \n");

scanf("%c", &op);

int x1, y1, x2, y2;

float distanciaEuclidiana;

//printf("Informe as coordenadas cartesianas X e Y para o primeiro ponto \n");

scanf("%d %d", &x1,&y1);

//printf("Informe as coordenadas cartesianas X e Y para o segundo ponto \n");

scanf("%d %d", &x2,&y2);

scanf("%c", &op);

//printf("Calcule a distancia entre os pontos \n");

distanciaEuclidiana = calculaDistancia(x1,y1,x2,y2);

printf("%f",distanciaEuclidiana);

break;

 

case'2':

//printf("Calcular produto escalar \n");

scanf("%c", &op);

int Vx1, Vy1, Vx2, Vy2;

float produtoescalar;

//printf("Informe as coordenadas cartesianas X e Y para o primeiro vetor \n");

scanf("%d %d", &Vx1,&Vy1);

//printf("Informe as coordenadas cartesianas X e Y para o segundo vetor \n");

scanf("%d %d", &Vx2,&Vy2);

//printf("Calcule o produto escalar \n");

produtoescalar = calculaProdutoEs(Vx1, Vy1, Vx2, Vy2);

printf("%2.f",produtoescalar);

break;

 

case '3':

printf("Calcular o vetor AB \n");

 

case'4':

printf("Calcular o coeficiente angular \n");

int Px1, Py1, Px2, Py2;

float coeficienteangular;

printf("Informe as coordenadas cartesianas X e Y para o primeiro vetor \n");

scanf("%d %d", &Px1,&Py1);

printf("Informe as coordenadas cartesianas X e Y para o segundo vetor \n");

scanf("%d %d", &Px2,&Py2);

printf("Calcule o coeficiente angular \n");

coeficienteangular = calculaCoeficienteAng(Px1, Py1, Px2, Py2);

printf("%2.f",coeficienteangular);

break;

 

case 's':

printf("Encerrar programa \n");

break;

}

return 0;

}

  • Obrigado 1
Postado

@batgirl123     QuaL erro está tendo , testei aqui no visual studio e está funcionando bem  , essa opção três é exibir o vetor , e seu código poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <iomanip>
#include <vector>
void menu();
float calculaDistancia(int x1, int y1, int x2, int y2);
float calcula_vetor(int x1, int y1, int x2, int y2, int *vetor);
float calculaProdutoEs(int Vx1, int Vy1, int Vx2, int Vy2);
float calculaCoeficienteAng(int Px1, int Py1, int Px2, int Py2);

int main()
{
	char op,a;
	int ret,vet[2];
	do
	{
		menu();
		scanf("%c", &op);
		while (a = fgetc(stdin) != '\n'); // Limpando o BuFFer do TecLado no comando scanf
		switch (op)
		{
		case'1':
			//printf("Calcular distancia euclidiana \n"); 
			scanf("%c", &op);
			int x1, y1, x2, y2;
			float distanciaEuclidiana;
			printf("Informe as coordenadas cartesianas X e Y para o primeiro ponto \n");
			scanf("%d %d", &x1, &y1);
			printf("Informe as coordenadas cartesianas X e Y para o segundo ponto \n");
			scanf("%d %d", &x2, &y2);
			scanf("%c", &op);
			//printf("Calcule a distancia entre os pontos \n"); 
			distanciaEuclidiana = calculaDistancia(x1, y1, x2, y2);
			printf("%f", distanciaEuclidiana);
			break;
		case'2':
			//printf("Calcular produto escalar \n"); 
			scanf("%c", &op);
			int Vx1, Vy1, Vx2, Vy2;
			float produtoescalar;
			//printf("Informe as coordenadas cartesianas X e Y para o primeiro vetor \n"); 
			scanf("%d %d", &Vx1, &Vy1);
			//printf("Informe as coordenadas cartesianas X e Y para o segundo vetor \n"); 
			scanf("%d %d", &Vx2, &Vy2);
			//printf("Calcule o produto escalar \n"); 
			produtoescalar = calculaProdutoEs(Vx1, Vy1, Vx2, Vy2);
			printf("%2.f", produtoescalar);
			break;
		case '3':
			vet[0] = 9;
			printf("Calcular o vetor AB \n");
			//printf("informe  x1 y1 x2 y2 ");
			//scanf("%d%d%d%d", &x1, &y1, &x2, &y2   );       // para testar , depois remover os //
			x1 = 1; y1 = 2; x2 = 7; y2 = 12;                  // para testar depis remover
			/*printf("%d %d %d %d\n", x1, y1, x2, y2);*/
			ret = calcula_vetor(x1, y1, x2, y2, vet);         // envia o endereço do vetor 
			printf("Vetor = ( %d, %d ) .\n", vet[0],vet[1]);  // exibe o vetor
			break;
		case'4':
			printf("Calcular o coeficiente angular \n");
			int Px1, Py1, Px2, Py2;
			float coeficienteangular;
			printf("Informe as coordenadas cartesianas X e Y para o primeiro vetor \n");
			scanf("%d %d", &Px1, &Py1);
			printf("Informe as coordenadas cartesianas X e Y para o segundo vetor \n");
			scanf("%d %d", &Px2, &Py2);
			printf("Calcule o coeficiente angular \n");
			coeficienteangular = calculaCoeficienteAng(Px1, Py1, Px2, Py2);
			printf("%2.f", coeficienteangular);
			break;
		case '5':
			printf("\n\nEncerrar programa\n\n\n");
			break;
		default:
			printf("Opcao InvaLida !\n");
		}
	} while (op != '5');
	return 0;
}
void menu()
{
	printf("\n              Menu\n");
	printf("===============================================\n");
	printf(" 1 - Calcular e exibir a distancia euclidiana\n"); 
	printf(" 2 - Calcular e exibir o produto escalar\n"); 
	printf(" 3 - Calcular e exibir o vetor AB\n"); 
	printf(" 4 - Calcular e exibir o coeficiente angular\n"); 
	printf(" 5 - Sair do programa\n"); 
	printf("     Escolha a opcao desejada => "); 
}

float calculaDistancia(int x1, int y1, int x2, int y2)
{
	return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
}
float calcula_vetor(int x1, int y1, int x2, int y2, int *vetor)//recebe o endereço desse vetor na memória 
{
	int xx = abs(x2 - x1); // ignorando o sinaL
	int yy = abs(y2 - y1); // ignorando o sinaL
	vetor[0] = xx;         // retorna o valores pelo enfereço da variáveL
	vetor[1] = yy;         // retorna o valores pelo engereço da variáveL
	return 128;
}

float calculaProdutoEs(int Vx1, int Vy1, int Vx2, int Vy2)
{
	return (Vx1 * Vx2) + (Vy1 * Vy2);
}

float calculaCoeficienteAng(int Px1, int Py1, int Px2, int Py2)
{
	return (Py2 - Py1) / (Px2 - Px1);
}

 

  • Obrigado 1

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!