You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
2.6 KiB

#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;
}