Ir para conteúdo
Fórum Script Brasil
  • 0

Preciso de uma ajuda nesse exercício de programação


Yumeiro Theory

Pergunta

Oi gente, tudo bem? Eu estou praticando um exercício de programação que pede para fazer um programa que converta coordenadas polares para coordenadas cartesianas, e então eu fiz da seguinte forma:

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

int main()  {

    float r, a;
    float x, y;
    
    scanf("%f %f", &r, &a);
    
    x = r * cos(a);
    y = r * sin(a);
    
    printf("%.2f %.2f", x, y);
    
    return 0;

}

Mas eu queria escrever esse programa em forma de estruturas (struct), ou seja, criar um TAD para o ponto cartesiano com os campos x e y e um outro TAD para o ponto polar com os campos r e a. Eu estou tentando e não estou conseguindo, alguém poderia me ajudar por favor?

Editado por Yumeiro Theory
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 1

@Yumeiro TheoryTudo bem! Espero que esteja bem.

Sua dúvida é escrever os tipos em 'struct'? Soou estranho porque a princípio e algo fácil, já para a categoria de dado abstrato precisará das operações na forma de funções. 

{C}

typedef struct _dupla{
  union {float r, x;};
  union {float a, y;};
} Dupla,
  Polar,
  Cartesiano;

Dupla get_dupla (char *mensagem);
Cartesiano converta_polar (Dupla p);
#include"string.h"
#include"math.h"
#include"stdio.h"
int
main (void) {
  Polar pol = get_dupla ("Entre com as coordenadas polares: ");
  Cartesiano car = converta_polar (pol);

  printf ("Coordenadas cartesianas: (%.2f, %.2f)\n", car.x, car.y);
  printf ("Coordenadas Polares ...: (%.2f, %.2fπ)\n", pol.r, pol.a);
  return 0;
  }
Cartesiano
converta_polar (Dupla p) {
  Cartesiano c;
  c.x = p.r * cos(p.a);
  c.y = p.r * sin(p.a);
  return c;
  }
Dupla
get_dupla (char *mensagem) {
  struct _dupla ret;
  printf ("%s", mensagem);
  (void) scanf ("%f%f", &ret.x, &ret.y);
  return ret;
  }

No caso a função de conversão; 

image.png.094dd13ca6af78121ee24e1c85e29470.png

Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...