William Minerva Posted March 6, 2022 at 02:07 AM Share Posted March 6, 2022 at 02:07 AM (edited) 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 March 6, 2022 at 02:08 AM by William Minerva 1 Quote Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted March 6, 2022 at 04:19 PM Administrators Share Posted March 6, 2022 at 04:19 PM 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! Quote Link to comment Share on other sites More sharing options...
William Minerva Posted March 7, 2022 at 12:53 PM Author Share Posted March 7, 2022 at 12:53 PM 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.