Ir ao conteúdo

C Função, área do triangulo


Ir à solução Resolvido por Simão.,

Posts recomendados

Postado

Precisava que o programa calculasse a área de um triangulo apenas sabendos 3 lados indicados.

#include <stdio.h>
#include <stdlib.h>

int areaDoTriangulo(int A, int B, int C);
int main()
{
	float lado1, lado2, lado3, area;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);

if ((lado1 <= lado2) && (lado1 <= lado3) && (lado2 <= lado3))
	area = (lado1 * lado2) / 2;
if ((lado2 <= lado3) && (lado1 <= lado3) && (lado2 <= lado1))
	area = (lado2 * lado3) / 2;

area = areaDoTriangulo (lado1, lado2, lado3);
printf("A area do triangulo e: %.1f", area);
return 0;

}
int areaDoTriangulo(int lado1, int lado2, int lado3){

	return ((lado1 * lado2) / 2 || (lado2 * lado3) / 2);
}

 

  • Obrigado 1
Postado
4 minutos atrás, Flávio Pedroza disse:

Mas seu programa pede os lados. Então a forma de cálculo tem que ser outra. 

Então tenho que saber primeiro que tipo de triangulo é??

  • Curtir 1
  • Membro VIP
Postado
2 horas atrás, Simão. disse:

Multiplicar a base pela altura e dividir por dois, sim eu sei

Se clicar naquele link vai achar outras formas ... e formas 🙃 :

17 minutos atrás, Simão. disse:

Então tenho que saber primeiro que tipo de triangulo é??

 

agora, Flávio Pedroza disse:

os lados ao invés da base e da altura

tem isso lá... 😉

  • Curtir 2
Postado
13 minutos atrás, .if disse:

Se clicar naquele link vai achar outras formas ... e formas 🙃 :

 

tem isso lá... 😉

A formula de heron??

Ainda não dei essa fórmula

  • Obrigado 1
Postado
17 horas atrás, Simão. disse:

A formula de heron??

Ainda não dei essa fórmula

Vou tentar aplicar essa fórmula, mas preciso de ajuda.
Alguém me pode dizer como posso fazer a parte da raiz quadrada?

 

Postado
3 horas atrás, .if disse:

Sem usar a biblioteca mastigada pra isso? É imposição do seu professor ou desafio pessoal?

 

É desafio pessoal, eu já coloquei essa biblioteca, vou mostrar como ficou

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float areaDoTriangulo (float a, float b, float c){
float lado1, lado2, lado3;
float semiPerimetro = (a + b + c) / 2;
lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
semiPerimetro = sqrt(semiPerimetro);
return semiPerimetro;

}
int main()
{
	float lado1, lado2, lado3, area;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);

printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
return 0;

}
float areaDoTriangulo(int lado1, int lado2, int lado3){
float semiPerimetro;

	return semiPerimetro * lado1 * lado2 * lado3;
}

 

1 hora atrás, Flávio Pedroza disse:

Outra coisa que acredito que você precisa é verificar se os tamanhos dos lados obedecem as condições para formação de um triângulo.

https://mundoeducacao.uol.com.br/matematica/condicao-existencia-um-triangulo.htm#:~:text=Só irá existir um triângulo,soma dos outros dois lados.

como eu faço para o programa acabar caso os lados não formem um triangulo??

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float areaDoTriangulo (float a, float b, float c){
float lado1, lado2, lado3;
float semiPerimetro = (a + b + c) / 2;
lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
semiPerimetro = sqrt(semiPerimetro);
return semiPerimetro;

}
int main()
{
	float lado1, lado2, lado3, area;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);
	
	if (lado1 + lado2 > lado3 && lado1 + lado3 > lado2 && lado2 + lado3 > lado1)
	
		printf("Os 3 lados formam um triangulo!\n");
	
	else
	printf("Os 3 lados não formam um triangulo!\n");

printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
return 0;

}
float areaDoTriangulo(int lado1, int lado2, int lado3){
float semiPerimetro;

	return semiPerimetro * lado1 * lado2 * lado3;
}

 

21 minutos atrás, Simão. disse:

É desafio pessoal, eu já coloquei essa biblioteca, vou mostrar como ficou

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float areaDoTriangulo (float a, float b, float c){
float lado1, lado2, lado3;
float semiPerimetro = (a + b + c) / 2;
lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
semiPerimetro = sqrt(semiPerimetro);
return semiPerimetro;

}
int main()
{
	float lado1, lado2, lado3, area;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);

printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
return 0;

}
float areaDoTriangulo(int lado1, int lado2, int lado3){
float semiPerimetro;

	return semiPerimetro * lado1 * lado2 * lado3;
}

 

como eu faço para o programa acabar caso os lados não formem um triangulo??

	else
	printf("Os 3 lados não formam um triangulo!\n");

 

Eu pus o comando exit(0) a seguir ao else depois do printf e agora o programa nunca calcula a àrea...

Postado
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float areaDoTriangulo (float a, float b, float c){
    float lado1, lado2, lado3;
    float semiPerimetro = (a + b + c) / 2;
    lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
    semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
    semiPerimetro = sqrt(semiPerimetro);
    return semiPerimetro;
}

int main()
{
	float lado1, lado2, lado3, area;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);


	if (((lado3 > abs(lado1 - lado2)) && (lado3 < lado1 + lado2)) &&
	    ((lado2 > abs(lado1 - lado3)) && (lado2 < lado1 + lado3)) &&
	    ((lado1 > abs(lado2 - lado3)) && (lado1 < lado2 + lado3)))
	{
		printf("Os 3 lados formam um triangulo!\n");
	}
	else
	{
	    printf("Os 3 lados não formam um triangulo!\n");
	    return -1;
	}

    printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
    return 0;

}

 

  • Curtir 1
  • Membro VIP
Postado

Off...

O amigo @Flávio Pedroza te entregou o trabalho pronto. Não te esqueças de mencioná-lo na bibliografia de teu trabalho... coragem! 😜

 

Obs: ainda não percebi se o uso da lib math.h lhe é permitido. Caso não, basta criar sua própria sqrt() baseado nos exemplos dos links. E claro, não inclua a math.h

float sqrt( float numero )
{	float 	r= 1;
		/*: Menor raiz exata aproximada de n */
	
	while( numero > (r * r) )r+= 1E+0;
	/*: Calcular a raiz inteira aproximada */
	
	while( numero < (r * r) )r-= 1E-6;
	/*: Cacular a raiz a fração aproximada */
	
	return r;
	/*: Retorna raiz de n */
}

mérito do amigo @mauro_b😉 .... há anos atrás...🙃

  • Curtir 1
  • Solução
Postado
13 horas atrás, Flávio Pedroza disse:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float areaDoTriangulo (float a, float b, float c){
    float lado1, lado2, lado3;
    float semiPerimetro = (a + b + c) / 2;
    lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
    semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
    semiPerimetro = sqrt(semiPerimetro);
    return semiPerimetro;
}

int main()
{
	float lado1, lado2, lado3, area;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);


	if (((lado3 > abs(lado1 - lado2)) && (lado3 < lado1 + lado2)) &&
	    ((lado2 > abs(lado1 - lado3)) && (lado2 < lado1 + lado3)) &&
	    ((lado1 > abs(lado2 - lado3)) && (lado1 < lado2 + lado3)))
	{
		printf("Os 3 lados formam um triangulo!\n");
	}
	else
	{
	    printf("Os 3 lados não formam um triangulo!\n");
	    return -1;
	}

    printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
    return 0;

}

 

Eu ontem pus o programa a funcionar, está feito de outra forma, vou mostrar:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int perimetroDoTriangulo(int a, int b, int c);
float areaDoTriangulo (float a, float b, float c){
float lado1, lado2, lado3;
float semiPerimetro = (a + b + c) / 2;
lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
semiPerimetro = sqrt(semiPerimetro);
return semiPerimetro;
}

int main()
{
	int perimetro;
	float lado1, lado2, lado3;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);

if (lado1 + lado2 > lado3 && lado1 + lado3 > lado2 && lado2 + lado3 > lado1)
{
	printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
	perimetro = perimetroDoTriangulo(lado1, lado2, lado3);
	printf("\nO valor do perimetro e: %d", perimetro);
}
	else printf("Os 3 lados não formam um triangulo!\n");
	
}
float areaDoTriangulo(int lado1, int lado2, int lado3){
float semiPerimetro;
	return semiPerimetro * lado1 * lado2 * lado3;
}
int perimetroDoTriangulo(int lado1, int lado2, int lado3){
	return lado1 + lado2 + lado3;
}

 

3 minutos atrás, Simão. disse:

Eu ontem pus o programa a funcionar, está feito de outra forma, vou mostrar:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int perimetroDoTriangulo(int a, int b, int c);
float areaDoTriangulo (float a, float b, float c){
float lado1, lado2, lado3;
float semiPerimetro = (a + b + c) / 2;
lado1 = semiPerimetro - a; lado2 = semiPerimetro - b; lado3 = semiPerimetro - c;
semiPerimetro = semiPerimetro * lado1 * lado2 * lado3;
semiPerimetro = sqrt(semiPerimetro);
return semiPerimetro;
}

int main()
{
	int perimetro;
	float lado1, lado2, lado3;

	printf("Indique o primeiro lado: ");
	scanf("%f", &lado1);

	printf("Indique o segundo lado: ");
	scanf("%f", &lado2);

	printf("Indique o terceiro lado: ");
	scanf("%f", &lado3);

if (lado1 + lado2 > lado3 && lado1 + lado3 > lado2 && lado2 + lado3 > lado1)
{
	printf("A area do triangulo e: %.1f", areaDoTriangulo(lado1, lado2, lado3));
	perimetro = perimetroDoTriangulo(lado1, lado2, lado3);
	printf("\nO valor do perimetro e: %d", perimetro);
}
	else printf("Os 3 lados não formam um triangulo!\n");
	
}
float areaDoTriangulo(int lado1, int lado2, int lado3){
float semiPerimetro;
	return semiPerimetro * lado1 * lado2 * lado3;
}
int perimetroDoTriangulo(int lado1, int lado2, int lado3){
	return lado1 + lado2 + lado3;
}

 

E ainda fiz com que o programa calculasse também o perímetro do triangulo!!

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!