Ir para conteúdo

Preciso de uma ajudinha com esse programa


William Minerva

Posts Recomendados

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 o problema é que 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, como eu faço? Se alguém puder me ajudar ou dar alguma dica eu ficaria agradecido.

Editado por William Minerva
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Opa, na verdade basta uma estrutura (struct) com as coordenadas cartesianas e um código que converta, que você já tem. ?

Algo assim:

struct coord {
  float x;
  float y;
};

Aí você declara assim:

struct coord c;

Após declarar, você acessa os membros da uma struct com o operador . (ponto). Por exemplo, para colocar valores nos membros:

c.x = 9.1;
c.y = 3.4;

Você vai precisar adaptar isso na sua chamada à scanf().

Depois de ter os valores preenchidos na sua struct declarada, é só converter, acessando da mesma maneira e imprimir os resultados. Se já souber usar ponteiros, pode fazer uma função que receba a struct e substitua os valores, ou que receba duas structs (uma com as coordenadas cartesianas e a outra vazia, para preencher as coodernadas polares). Mas se ainda não trabalhou com ponteiros, ou não é exigido pelo exercício, pode fazer na main() mesmo.

Um abraço e boa sorte!

Link para o comentário
Compartilhar em outros sites

20 horas atrás, Fernando Mercês disse:

Opa, na verdade basta uma estrutura (struct) com as coordenadas cartesianas e um código que converta, que você já tem. ?

Algo assim:

struct coord {
  float x;
  float y;
};

Aí você declara assim:

struct coord c;

Após declarar, você acessa os membros da uma struct com o operador . (ponto). Por exemplo, para colocar valores nos membros:

c.x = 9.1;
c.y = 3.4;

Você vai precisar adaptar isso na sua chamada à scanf().

Depois de ter os valores preenchidos na sua struct declarada, é só converter, acessando da mesma maneira e imprimir os resultados. Se já souber usar ponteiros, pode fazer uma função que receba a struct e substitua os valores, ou que receba duas structs (uma com as coordenadas cartesianas e a outra vazia, para preencher as coodernadas polares). Mas se ainda não trabalhou com ponteiros, ou não é exigido pelo exercício, pode fazer na main() mesmo.

Um abraço e boa sorte!

 

Aah entendi, muito obrigado.

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

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...