• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Dar3_D3vil

Preciso de ajuda!!! se na se importarem.

8 mensagens neste tópico

Desenvolva um programa que efectua a leitura do comprimento dos dois catetos de um triângulo rectângulo. O programa deve calcular e deve apresentar:

a) O comprimento da hipotenusa

b) O perímetro do triângulo

c) A área do triângulo

d) O ângulo entre o cateto com a maior dimensão e a hipotenusa.

na parte d a converter de radianos pa graus, este prog erra nas contas.

Se puderem ver se encontram o erro, agradecia. Se encontrarem agradecia uma breve explicaçao. Aki ta o codigo fonte:

/* triangulo */

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

int main (void) {
float cat1;
float cat2;
float hip;
float Perimetro;
float Area;
float Angulor;
float Angulog;
float PI;
int graus=0;
float min;
int minutos=0;
float segundos;
float x;
float y;

printf("Introduza o valor do cateto de maior tamanho\n");
scanf("%f",&cat1);
if (cat1 < 0){
	printf("O valor que introduziu é inválido!!!\nFim do programa!\n");
	return -1;
}

printf("Introduza o valor do cateto de menor tamanho\n");
scanf("%f",&cat2);
if (cat2 < 0){
	printf("O valor que introduziu é inválido!!!\nFim do programa!\n");
	return -1;
}

hip = sqrt(pow(cat1,2)+pow(cat2,2));
printf("O valor da hipotenusa é %f\n",hip);

Perimetro = hip + cat1 + cat2;
printf("O perimetro do triângulo é %f\n",Perimetro);

Area = (cat1*cat2)/2.0;
printf("A area do triângulo é %f\n",Area);

Angulor = asin(cat2/hip);
PI = 3.1415;
Angulog = (Angulor*180)/PI;
x = Angulog -1;
while (x >= 1) {
	x--;
	graus++;
}
min = (Angulog - graus)/60.0;
y = min - 1;
while (y >= 1) {
	y--;
	minutos++;
}
segundos = (y - minutos)/60.0;

printf("O valor da angulo entre o maior cateto e a hipotenusa é %dº %d' %f''\n", graus, minutos, segundos);
return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para faciltitar põe por favor o teu código entre:

[ code]

e [/ code]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E isto que keres?

k tipo de erro e k te dava?????

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

int main (void) {
float cat1;
float cat2;
float hip;
float Perimetro;
float Area;
float Angulor;
float Angulog;
float PI;
int graus=0;
float min;
int minutos=0;
float segundos;
float x;
float y;

printf("Introduza o valor do cateto de maior tamanho\n");
scanf("%f",&cat1);
if (cat1 < 0){
printf("O valor que introduziu é inválido!!!\nFim do programa!\n");
}

printf("Introduza o valor do cateto de menor tamanho\n");
scanf("%f",&cat2);
if (cat2 < 0){
printf("O valor que introduziu e invalido!!!\nFim do programa!\n");
}
hip = sqrt(pow(cat1,2)+pow(cat2,2));
printf("O valor da hipotenusa é %f\n",hip);
Perimetro = hip + cat1 + cat2;
printf("O perimetro do triangulo é %f\n",Perimetro);
Area = (cat1*cat2)/2.0;
printf("A area do triangulo é %f\n",Area);
Angulor = asin(cat2/hip);
PI = 3.1415;
Angulog = (Angulor*180)/PI;
x = Angulog -1;
while (x >= 1) {
x--;
graus++;
}
min = (Angulog - graus)/60.0;
y = min - 1;
while (y >= 1) {
y--;
minutos++;
}
segundos = (y - minutos)/60.0;
printf("O valor da angulo entre o maior cateto e a hipotenusa é %dº %d' %f''\n", graus, minutos, segundos);
system("PAUSE");
}

Espero k ajude

PEACE

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desclp tava la em cima! radianos e angulos ja n e pa mim!

deve ser erro de calculo matemático!

MatemátiCA neps...

PEACE ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O erro deve tar aki, pk sem esta parte da td bem mas, com isto (conversao de radianos para graus) ja da mal. faz mal a conversao.

Angulog = (Angulor*180)/PI;
x = Angulog -1; 
while (x >= 1) {
	x--;
	graus++;
}
min = (Angulog - graus)/60.0;
y = min - 1;
while (y >= 1) {
	y--;
	minutos++;
}
segundos = (y - minutos)/60.0;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ainda nao consegui por bem...mudei algumas coisa no codigo...verifica sff...qdo pedes catetos, assim acho que é mais fixe...

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

int main () {
  float cat1;
  float cat2;
  float hip;
  float Perimetro;
  float Area;
  float Angulor;
  float Angulog;
  float PI;
  int i,graus=0;
  float min;
  int minutos=0;
  float segundos;
  float x;
  float y;
  double ang;

  do
  {
   printf("Introduza o valor do cateto de maior tamanho\n");
   scanf("%f",&cat1);
   if(cat1<=0)
      printf("O valor que introduziu é inválido!!!\nFim do programa!\n");
  }
  while(cat1<=0);

  do
  {
   printf("Introduza o valor do cateto de menor tamanho\n");
   scanf("%f",&cat2);
   if(cat2<=0)
     printf("O valor que introduziu é inválido!!!\nFim do programa!\n");
  }while(cat2<=0);

  hip = sqrt(pow(cat1,2)+pow(cat2,2));
  printf("O valor da hipotenusa é %f\n",hip);

  Perimetro = hip + cat1 + cat2;
  printf("O perimetro do triângulo é %f\n",Perimetro);

  Area = (cat1*cat2)/2.0;
  printf("A area do triângulo é %f\n",Area);
  // ------ate aqui td ok , ja sabiamos...  ----------------------------

  ang=(double)( cat2 / hip);

  printf("o ang=%fl",ang);

  Angulor = asin( ang );
  printf("o angulo da hipotenusa e do cateto maior e' %fl", graus.\n",Angulor);
  PI = 3.1415;
  Angulog = (Angulor/180)* PI;
  printf("o angulo da hipotenusa e do cateto maior e' em radianos %fl.\n ",Angulog);

  x = Angulog -1;
  while (x >= 1) {
     x--;
     graus++;
  }
  min = (Angulog - graus)/60.0;
  y = min - 1;
  while (y >= 1) {
     y--;
     minutos++;
  }
  segundos = (y - minutos)/60.0;

  printf("O valor da angulo entre o maior cateto e a hipotenusa é %dº %d' %f''\n", graus, minutos, segundos);
  scanf("%d",&i);
  return 0;
} 

tinhas um erro aqui

 Angulog = (Angulor*180)/PI;

o correcto é

Angulog = (Angulor/180)* PI;

a regra de 3 simples estava mal....

180 esta para PI

assim como

Angulor esta para Angulog...

sei que ainda nao esta bem.. mas nao tou com tempo pra verificar...espero que esse erro ajude a encontrar o proximo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora