William Minerva Postado Março 6, 2022 em 02:07 Compartilhar Postado Março 6, 2022 em 02:07 (editado) 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 Março 6, 2022 em 02:08 por William Minerva 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Administradores Fernando Mercês Postado Março 6, 2022 em 16:19 Administradores Compartilhar Postado Março 6, 2022 em 16:19 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
William Minerva Postado Março 7, 2022 em 12:53 Autor Compartilhar Postado Março 7, 2022 em 12:53 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. 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
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.