Jump to content

Preciso de uma ajudinha com esse programa


William Minerva

Recommended Posts

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.

Edited by William Minerva
  • Curtir 1
Link to comment
Share on other sites

  • Administrators

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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...