Ir ao conteúdo
  • Cadastre-se

C Calcular área de um triângulo


Gesiel Souza

Posts recomendados

  • Membro VIP

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

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

Dica
A fórmula é baseada em 3 variáveis do tipo float, a, b e c

 

Faça no programa a solicitação e a leitura dessas 3 variáveis. Se lembra como faz para exibir algo na tela ? E para ler um dado do teclado ? 


Depois que você obter os 3 valores, agora é só fazer a conta

dica, para extrair raiz quadrada, como a fórmula pede, é preciso usar a função sqrt. Ela está disponível no #include <math.h>

 

Link para o comentário
Compartilhar em outros sites

@Boko Moko tipo isso: essa forma ta certa ou existe forma de fazer?

#include<stdio.h>

int
main ()
{

  int base, A, B, C, Ar, T;

  printf ("Insira o valor de A:");
  scanf ("%d", &A);

  printf ("Insira o valor de B:");
  scanf ("%d", &B);
  
  printf ("Insira o valor de C:");
  scanf ("%d", &C);


 T=A+B+C/2;

   
Ar = sqrt(T*(T- A)*(T-B)*(T-C));

  printf ("A Area e: %d \n", Ar);


  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

1#

@Gesiel Souza, um ponto fundamental é que sempre mantenha o código indentado. Ex.:

#include<stdio.h>

int main () {
    int base, A, B, C, Ar, T;
    printf ("Insira o valor de A:");
    scanf ("%d", &A);
    printf ("Insira o valor de B:");
    scanf ("%d", &B);
    printf ("Insira o valor de C:");
    scanf ("%d", &C);
    T=A+B+C/2;    
    Ar = sqrt(T*(T- A)*(T-B)*(T-C));
    printf ("A Area e: %d \n", Ar);
    return 0;
}

Veja a diferença.

 

Perceba que só visualmente dá para tirar algumas conclusões, como:

 

 

 

2#
A variável base não está sendo utilizada;

 

 

 

3#

As operações matemáticas no C/C++ seguem basicamente as regras da matemática em si, ou seja, o cálculo do T está errado... dê uma pesquisada sobre o PEMDAS.

 

 

 

***


No aguardo.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sobre:

22 minutos atrás, Gesiel Souza disse:

[...] então essa formula foi meu professor quem passou [...]

e

20 minutos atrás, Gesiel Souza disse:

@Boko Moko,testei sim deu certo .Obrigado!

 

 

Veja, te adianto que não tem como ter dado certo ^_^. A fórmula do professor está certa, o que está errada é como você escreveu. Vide:

Em 08/05/2018 às 08:51, Simon Viegas disse:

3#

As operações matemáticas no C/C++ seguem basicamente as regras da matemática em si, ou seja, o cálculo do T está errado... dê uma pesquisada sobre o PEMDAS.

 

 

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

@Gesiel Souza  Eu arriscaria essa resposta, considerando q fui pesquisar a respeito disso agora.

Perceba um ponto importante: Na matemática, como tbém na programação, tem a questão da precedência nas operações.

Ou seja: fazer isso como T = A + B + C / 2 é bem diferente q o correto: T = (A + B + C) / 2.

Arriscaria dizer q o cálculo correto seria esse:

 

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

int main ()
{
    double base, A, B, C, Ar, T;

    printf ("Insira o valor de A: ");
    scanf ("%lf", &A);

    printf ("Insira o valor de B: ");
    scanf ("%lf", &B);

    printf ("Insira o valor de C: ");
    scanf ("%lf", &C);

    T = (A + B + C) / 2;

    Ar = sqrt(T * (T - A) * (T - B) * (T - C));

    printf ("A Area e: %.2f\n", Ar);

    return 0;
}

Se estou errado me corrijam!

 

adicionado 10 minutos depois

Sinceramente té tô meio em dúvida com relação a maneira como usei os parênteses no cálculo da Ar.

Os resultados estão dando de acordo com o esperado. Tbém no aguardo...

adicionado 25 minutos depois

Seria isso mesmo. Apenas gostaria de saber usar a maneira correta de explicar sobre a precedência nas operações matemáticas. Mas, de forma simplificada, quando se faz algo como: T = A + B + C / 2 o que vai acontecer é q a primeira operação q vai ser realizada é a divisão de C por 2, pois a operação de divisão tem precedência sobre a operação de soma.

Só depois de feita primeira operação, no caso, a divisão, é que seriam realizadas as somas. 

adicionado 29 minutos depois

Logo, a maneira correta de fazer esse cálculo seria: T = (A + B + C) / 2. Nesse caso, o resultado das somas seria dividido por 2. É um conceito básico de programação. Normalmente se aprende isso em cursos de Lógica de Programação

adicionado 50 minutos depois

Encontrei um exemplo de como esse cálculo é feito. Creio q pode ajudar:

 

Exemplo 2
Utilizando a Fórmula de Heron, calcule a área da região com as seguintes medidas:

26cm, 26cm e 20cm

p = (26 + 26 + 20) / 2
p = 72 / 2
p = 36

A = √36(36 – 26)(36 – 26)(36 – 20)
A = √36 * 10 * 10 * 16
A = √57600
A = 240 cm2

 

 

Link para o comentário
Compartilhar em outros sites

Apenas uma correção. A variável base não está sendo utilizado. Como fui na base do copia/cola o código para ajustar aqui o mesmo, esse ponto passou despercebido. Me desculpem.

Outra questão q seria adequada ajustar no código é inicializar as variáveis Ar e T com o valor 0.0

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

1#

2 horas atrás, giu_d disse:

Perceba um ponto importante: Na matemática, como tbém na programação, tem a questão da precedência nas operações.

Isso que estava sugerindo..

 

3 horas atrás, Simon Viegas disse:

As operações matemáticas no C/C++ seguem basicamente as regras da matemática em si, ou seja, o cálculo do T está errado... dê uma pesquisada sobre o PEMDAS.

Ou seja... o PEMDAS é que remeteria a essa precedência quando existe disputa.

 

 

 

2#

1 hora atrás, giu_d disse:

A variável base não está sendo utilizado

Isso:

 

Em 08/05/2018 às 08:51, Simon Viegas disse:

2#
A variável base não está sendo utilizada;

:)

 

 

***

 

Então, se eu poderia já dar direto "uma correção"?  poderia, mas eu que sou assim mesmo, rs. Tento "ensinar a pescar".. mas em fim.

  • Curtir 1
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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!