|
|
#include <stdio.h>
#include <math.h>
#include "minirechner.h"
int run_minirechner() { float zahl1, zahl2, erg; int r_op;
printf("Rechenoperationen: \n"); printf("<1> addieren\n<2> subtrahieren\n<3> multiplizieren\n<4> dividieren\n<5> rest\n<6> groesster gemeinsammer Teiler\n<7> kleinstes gemeinsammes Vielfaches\n");
scanf("%d", &r_op);
printf("Zahl 1: "); scanf("%f", &zahl1);
printf("Zahl 2: "); scanf("%f", &zahl2);
switch (r_op) { // Der Rechner gibt die gegebenen Zahlen (im Sinne der Optik) mit einer und das Ergebnis mit zwei Nachkommastellen aus.
case 1: erg = addieren(zahl1, zahl2); printf("%.1f + %.1f = %.2f\n", zahl1, zahl2, erg); break;
case 2: erg = subtrahieren(zahl1, zahl2); printf("%.1f - %.1f = %.2f\n", zahl1, zahl2, erg); break;
case 3: erg = multiplizieren(zahl1, zahl2); printf("%.1f * %.1f = %.2f\n", zahl1, zahl2, erg); break;
case 4: erg = dividieren(zahl1, zahl2); if (erg != 0) { printf("%.1f / %.1f = %.2f\n", zahl1, zahl2, erg); } break;
case 5: erg = rest(zahl1, zahl2); printf("%.1f / %.1f rest= %.2f\n", zahl1, zahl2, erg); break;
case 6: erg = groesster_gemeinsammer_teiler(zahl1, zahl2); printf("%.2f\n", erg); break;
case 7: erg = kleinstes_gemeinsammes_vielfaches(zahl1, zahl2); printf("%.2f\n", erg); break;
default: printf("Bitte verwenden sie eine der gegebenen Ziffern"); } return 0; }
//addieren
float addieren(float a, float b) { return a + b; }
//subtrahieren
float subtrahieren(float a, float b) { return a - b; }
//multiplizieren
float multiplizieren(float a, float b) { return a * b; }
//dividieren
float dividieren(float a, float b) { if (b == 0) { printf("Bitte nicht durch 0 dividieren\n"); return 0; } else { return a / b; } }
//rest
float rest(float a, float b) { return fmod(a, b); }
// groesster gemeinsammer Teiler
float groesster_gemeinsammer_teiler(float a, float b) { float gr, kl; float rest = 1; if (a > b) { gr = a; kl = b; } else { gr = b; kl = a; } while (rest != 0) { rest = fmod(gr, kl); gr = kl; kl = rest; } return gr; }
// kleinstes gemeinsammes Vielfaches
float kleinstes_gemeinsammes_vielfaches(float a, float b) { float erg = a * b / groesster_gemeinsammer_teiler(a, b); return erg; }
|