#include #include double fct_xp(double, double); double fct_yp(double, double); double b_g(double); double g_b(double); void polar(double, double, double*, double*); void kartesisch(double, double, double*, double*); void main() { double xp, yp, r, phi; int eingabe = 0; do { printf("\n============================================================\ \nHauptmenue\n1 = Polarkoordinaten in kartesische Koordinaten\n2 = Kartesische Koordinaten \ in Polarkoordinaten\nEnde=99\n ---------------------------------------------------------------\n\n"); scanf_s("%d", &eingabe); fflush(stdin); switch (eingabe) { case 1: printf("\nr eingeben: "); scanf_s("%lf", &r); fflush(stdin); printf("\nphi (Grad) eingeben: "); scanf_s("%lf", &phi); fflush(stdin); printf("\n-------------------------\n"); kartesisch(r, phi, &xp, &yp); printf("xp = %lf\n", xp); printf("yp = %lf\n", yp); break; case 2: printf("\nxp eingeben: "); scanf_s("%lf", &xp); fflush(stdin); printf("\nyp eingeben: "); scanf_s("%lf", &yp); fflush(stdin); printf("\n-------------------------\n"); polar(xp, yp, &r, &phi); printf("r = %lf\n", r); printf("phi (Grad) = %lf\n", phi); break; default: break; } } while (eingabe != 99); return; } void polar(double xp, double yp, double *r, double *phi) { *r = sqrt((xp*xp) + (yp*yp)); *phi = b_g(atan2(yp,xp)); } void kartesisch(double r, double phi, double *xp, double *yp) { *xp = r * cos(g_b(phi)); *yp = r * sin(g_b(phi)); } double b_g(double argwinkel) { double t = 0; t = (360 * argwinkel) / (2 * 3.14159); return t; } double g_b(double argwinkel) { double t = 0; t = ((2 * 3.14159 * argwinkel) / 360); return t; }