/* Passagem de argumento por valor e por endereco PP, 98,5 */ #include #include typedef struct { float x; float y; } coordC; typedef struct { float ro; float alfa; } coordP; coordP Cart_para_Pol(coordC A); coordC Pol_para_Cart(coordP A); main() { coordC P; coordP Q; printf("\nCoordenadas cartesianas do ponto P (x,y)\n"); printf("Px="); scanf("%f", &P.x); printf("Py="); scanf("%f", &P.y); Q = Cart_para_Pol(P); printf("\nCoordenadas cartesianas: (%f, %f)", P.x, P.y); printf("\nCoordenadas polares : (Ro=%f, alfa=%f)", Q.ro, Q.alfa); /* Programe a introducao de coordenadas polares e a conversao para coordenadas cartesianas ... */ } coordP Cart_para_Pol(coordC A) { coordP P; P.ro = (float) sqrt ( A.x * A.x + A.y * A.y); P.alfa = asin( A.y/ P.ro) * ( 180./3.14159 ); return (P); } coordC Pol_para_Cart(coordP A) { coordC P; P.x = A.ro * cos(A.alfa); P.y = A.ro * sin(A.alfa); return(P); }