// --------------------------------------------------------------------------- // Einfacher Taschenrechner mit verschiedenen Funktionalitäten // --------------------------------------------------------------------------- #include #include // --------------------------------------------------------------------------- // Deklarationen // --------------------------------------------------------------------------- int auswahl(void); void hexdarstellung(void); void multiplikation(void); void primzahltesten(void); void quadratischegl(void); // --------------------------------------------------------------------------- // Hauptprogramm // --------------------------------------------------------------------------- int main(void) { int wahl; do { wahl = auswahl(); switch(wahl) { case 1: multiplikation(); break; case 2: hexdarstellung(); break; case 3: primzahltesten(); break; case 4: quadratischegl(); break; } } while(wahl != 0); // Beenden durch Eingabe von 0 return 0; } // --------------------------------------------------------------------------- // Anwender nach der gewuenschten Funktion fragen // --------------------------------------------------------------------------- int auswahl(void) { int wahl; do { printf("Einfacher Taschenrechner\n"); printf("(0) Beenden\n"); printf("(1) Multiplikation\n"); printf("(2) Hexadezimal\n"); printf("(3) Primzahltest\n"); printf("(4) Quadratische Gleichung\n"); printf("Bitte waehlen Sie: "); scanf("%d", &wahl); printf("\n"); } while(wahl<0 || wahl>4); return wahl; } // --------------------------------------------------------------------------- // Zwei Zahlen multiplizieren, Ergebnis ausgeben // --------------------------------------------------------------------------- void multiplikation(void) { double faktor1, faktor2, produkt; printf("Erster Faktor: "); scanf("%lf", &faktor1); // Achtung: Formatelement ist %lf printf("Zweiter Faktor: "); scanf("%lf", &faktor2); produkt = faktor1 * faktor2; printf("%f * %f = %f\n\n", faktor1, faktor2, produkt); // Achtung: %f } // --------------------------------------------------------------------------- // Dezimalzahl in Hexadezimalzahl umwandeln // --------------------------------------------------------------------------- void hexdarstellung(void) { int zahl; printf("Geben Sie eine Dezimalzahl ein: "); scanf("%d", &zahl); printf("Dezimal %d entspricht Hexadezimal %X\n\n", zahl, zahl); } // --------------------------------------------------------------------------- // Eingegebene Zahl testen, ob Primzahl // --------------------------------------------------------------------------- void primzahltesten(void) { int zahl, teiler, prim; do { printf("Bitte positive Zahl eingeben: "); scanf("%d", &zahl); } while(zahl < 0); prim = (zahl > 1); for(teiler = 2; teiler * teiler <= zahl; ++teiler) if(zahl % teiler == 0) { prim = 0; break; } switch(prim) { case 0: printf("%d ist keine Primzahl\n\n", zahl); break; case 1: printf("%d ist eine Primzahl \n\n", zahl); break; } } // --------------------------------------------------------------------------- // Quadratische Gleichung mit pq-Formel lösen // --------------------------------------------------------------------------- void quadratischegl(void) { double p, q, x1, x2, wurzel; printf("Quadratische Gleichung: x*x + p*x + q = 0\n"); printf("p: "); scanf("%lf", &p); printf("q: "); scanf("%lf", &q); wurzel = p * p / 4.0 - q; if(wurzel < 0) { printf("Keine reellen Nulltellen\n\n"); return; } if(wurzel == 0) { printf("Doppelte Nst. bei %f\n\n", -p / 2.0); return; } x1 = -p / 2.0 - sqrt(wurzel), x2 = -p / 2.0 + sqrt(wurzel); printf("Nullstellen bei %f und %f\n\n", x1, x2); }