Jump to content

Preciso de ajuda!!! se na se importarem.


Recommended Posts

Posted

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;
}
Posted

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

Posted

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;
Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.