Code Verbesserung in Rechenprog.
Verfasst: Mi Nov 19, 2008 10:10 pm
So
Ich hab mein Rechenprogramm mal ein bisschen übersichtlicher gestaltet! Was könnte ich noch verbessern?
Hier der alte Code mit vielen goto's
und hier der verbesserte Code mit switch
bei weiteren Verbesserungstipps bitte an mich wenden.
Ob das neue Prog. mit Vista funktioniert weiß ich nicht.
MfG +Fuss+
Ich hab mein Rechenprogramm mal ein bisschen übersichtlicher gestaltet! Was könnte ich noch verbessern?
Hier der alte Code mit vielen goto's
Code: Alles auswählen
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define quadrat(a) (a)*(a)
int main ()
{
int rechenart, summand1, summand2, minuend, subtrahend, faktor1, faktor2, zahl, flaeche1, flaeche2, laenge1, laenge2, laenge3;
double dividend, divisor, eingabe, wurzel, prozent, prozentsatz;
ende:
rechenart = 100;
while (rechenart > 9)
{
printf ("\nDer Taschenrechner\n0 = Beenden\n\nWaehlen Sie die Rechenart aus:\n1 = Plus\n2 = Minus\n3 = Mal\n4 = Geteilt\n5 = Quadrieren\n6 = Quadratwurzel ziehen\n7 = Prozentwert berechnen\n8 = Flaecheninhalt berechnen\n9 = Rauminhalt berechnen\n");
scanf ("%d", &rechenart); //Auswählen der Rechenart
}
if (rechenart == 0) goto endeende;
if (rechenart == 1) goto plus;
if (rechenart == 2) goto minus;
if (rechenart == 3) goto mal;
if (rechenart == 4) goto geteilt;
if (rechenart == 5) goto quadrieren;
if (rechenart == 6) goto wurzel;
if (rechenart == 7) goto prozent;
if (rechenart == 8) goto inhalt;
if (rechenart == 9) goto inhalt2;
plus:
{
printf ("Summanden eingeben: "); //Plus
scanf ("%d %d", &summand1, &summand2);
printf ("%d + %d = %d\n", summand1, summand2, summand1+summand2);
goto ende;
}
minus:
{
printf ("Minuend und Subtrahend eingeben: "); //Minus
scanf ("%d %d", &minuend, &subtrahend);
printf ("%d - %d = %d\n", minuend, subtrahend, minuend-subtrahend);
goto ende;
}
mal:
{
printf ("Faktoren eingeben: "); //Mal
scanf ("%d %d", &faktor1, &faktor2);
printf ("%d * %d = %d\n", faktor1, faktor2, faktor1 * faktor2);
goto ende;
}
geteilt:
{
printf ("Dividend und Divisor eingeben: "); //Geteilt
scanf ("%lf %lf", ÷nd, &divisor);
printf ("%.2f / %.2f = %f\n", dividend, divisor, dividend / divisor);
goto ende;
}
quadrieren:
{
printf ("Geben Sie die Zahl ein die quadriert werden soll: ");
scanf ("%d", &zahl); //Eingabe der Zahl
printf ("Ergebnis: %d", quadrat(zahl)); //Rechenvorgang + Ausgabe des Ergebnisses
goto ende;
}
wurzel:
{
printf ("Geben Sie die Zahl ein, deren Wurzel gezogen werden soll: ");
scanf ("%lf", &eingabe);
wurzel = sqrt (eingabe);
printf ("Ergebnis: %f\n", wurzel);
goto ende;
}
prozent:
{
printf ("Geben Sie den Grundwert und den Prozentsatz ein: ");
scanf ("%lf %lf", &prozent, &prozentsatz);
printf ("Prozentwert: %f\n", prozent / 100 * prozentsatz);
goto ende;
}
inhalt: //Flächeninhalt
{
printf ("Geben Sie die Seitenlaengen an: ");
scanf ("%d %d", &flaeche1, &flaeche2);
printf ("Flaecheninhalt: %d", flaeche1 * flaeche2);
goto ende;
}
inhalt2: //Rauminhalt
{
printf ("Geben Sie Laenge Breite Hoehe an: ");
scanf("%d %d %d", &laenge1, &laenge2, &laenge3);
printf ("Rauminhalt: %d", laenge1 * laenge2 * laenge3);
goto ende;
}
getch();
endeende:
return 0;
}
Code: Alles auswählen
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int i, rechenart, summand1, summand2, minuend, subtrahend, faktor1, faktor2, quadrat, laenge1, laenge2, laenge, breite, hoehe;
double dividend, divisor, ausgang, wurzel, grundwert, prozentsatz;
printf ("--------------------------------------Fuss--------------------------------------");
while (i != 0)
{
rechenart = 10000;
while (rechenart > 9)
{
printf ("\n\nDer Taschenrechner\n0 = Beenden\n\nWaehlen Sie die Rechenart aus:\n1 = Plus\n2 = Minus\n3 = Mal\n4 = Geteilt\n5 = Quadrieren\n6 = Quadratwurzel ziehen\n7 = Prozentwert berechnen\n8 = Flaecheninhalt berechnen\n9 = Rauminhalt berechnen\n");
scanf ("%d", &rechenart); //Auswählen der Rechenart
}
switch (rechenart)
{
case 0:
{
printf ("--------------------------------------Fuss--------------------------------------");
i = 0;
getch();
break;
}
case 1:
{
printf ("Summanden eingeben: "); //Plus
scanf ("%d %d", &summand1, &summand2);
printf ("%d + %d = %d\n", summand1, summand2, summand1 + summand2);
getch();
break;
}
case 2:
{
printf ("Minuend und Subtrahend eingeben: "); //Minus
scanf ("%d %d", &minuend, &subtrahend);
printf ("%d - %d = %d\n", minuend, subtrahend, minuend - subtrahend);
getch();
break;
}
case 3:
{
printf ("Faktoren eingeben: "); //Mal
scanf ("%d %d", &faktor1, &faktor2);
printf ("%d * %d = %d\n", faktor1, faktor2, faktor1 * faktor2);
getch();
break;
}
case 4:
{
printf ("Dividend und Divisor eingeben: "); //Geteilt
scanf ("%lf %lf", ÷nd, &divisor);
printf ("%.2f / %.2f = %f\n", dividend, divisor, dividend / divisor);
getch();
break;
}
case 5:
{
printf ("Geben Sie die Zahl ein die quadriert werden soll: ");
scanf ("%d", &quadrat); //Eingabe der Zahl
printf ("Ergebnis: %d", quadrat * quadrat); //Rechenvorgang + Ausgabe des Ergebnisses
getch();
break;
}
case 6:
{
printf ("Geben Sie die Zahl ein, deren Wurzel gezogen werden soll: ");
scanf ("%lf", &ausgang);
wurzel = sqrt (ausgang);
printf ("Ergebnis: %f\n", wurzel);
getch();
break;
}
case 7:
{
printf ("Geben Sie den Grundwert und den Prozentsatz ein: ");
scanf ("%lf %lf", &grundwert, &prozentsatz);
printf ("Prozentwert: %f\n", grundwert / 100 * prozentsatz);
getch();
break;
}
case 8:
{
printf ("Geben Sie die Seitenlaengen an: ");
scanf ("%d %d", &laenge1, &laenge2);
printf ("Flaecheninhalt: %d", laenge1 * laenge2);
getch();
break;
}
case 9:
{
printf ("Geben Sie Laenge Breite Hoehe an: ");
scanf("%d %d %d", &laenge, &breite, &hoehe);
printf ("Rauminhalt: %d", laenge * breite * hoehe);
getch();
break;
}
}
}
return 0;
}
Ob das neue Prog. mit Vista funktioniert weiß ich nicht.
MfG +Fuss+