Faça um programa que converta coordenadas polares para cartesianas:
- Crie e leia um ponto em coordenada polar, composto por raio ® e argumento (a) em radianos.
- Crie outro ponto, agora em coordenada cartesiana, composto por
e
, sabendo que
e
.
No programa principal, leia um ponto em coordenada polar e mostre as coordenadas do ponto gerado no plano cartesiano.
Passo 1
O enunciado pede um programa que faça a conversão de coordenadas polares (raio r e ângulo a em radianos) para coordenadas cartesianas (x,y) usando as fórmulas x = r·cos(a) e y = r·sin(a). Vamos precisar da biblioteca math para usar as funções trigonométricas e da stdio para entrada e saída.
Passo 2
Comece incluindo as bibliotecas necessárias e declarando as variáveis: r e a como double para o polar, e x e y como double para o cartesiano.
Leia do teclado os valores de r e a usando scanf. O valor de a deve estar em radianos para que cos(a) e sin(a) funcionem corretamente.
Leia do teclado os valores de r e a usando scanf. O valor de a deve estar em radianos para que cos(a) e sin(a) funcionem corretamente.
Passo 3
Calcule x e y aplicando as fórmulas matemáticas. Em C usamos cos(a) e sin(a) da math.h. x recebe r * cos(a) e y recebe r * sin(a).
Imprima os valores de x e y formatados. Podemos usar printf com especificador %f ou %.2f, por exemplo, dependendo da precisão desejada.
Encerre a função main retornando 0, sinalizando que o programa terminou sem erros.
Imprima os valores de x e y formatados. Podemos usar printf com especificador %f ou %.2f, por exemplo, dependendo da precisão desejada.
Encerre a função main retornando 0, sinalizando que o programa terminou sem erros.
Resposta
#include <stdio.h>
#include <math.h>
#include <math.h>
int main() {
double r, a;
double x, y;
double r, a;
double x, y;
// Leitura das coordenadas polares
printf("Digite o raio r e o ângulo a (em radianos): ");
scanf("%lf %lf", &r, &a);
// Conversão para coordenadas cartesianas
x = r * cos(a);
y = r * sin(a);
// Saída dos resultados
printf("Coordenadas cartesianas: x = %.6f, y = %.6f\n", x, y);
return 0;
}