nur so nebenbei:Zitat:
Zitat von TiduS
hat dir mein source geholfen, oder biste selber drauf
gekommen?
Druckbare Version
nur so nebenbei:Zitat:
Zitat von TiduS
hat dir mein source geholfen, oder biste selber drauf
gekommen?
würde dir folgendes noch empfehlen:
1. Nimm lieber Codeblocks als IDE. is der inoffizielle Nachfolger von Dev-CPP da das ja netmehr weiterentwickelt wird.
2. würde ich die conio.h entfernen un dafür einfahc anstatt getch() einfahc getchar() schreiben...macht des prog wieder kleiner und du hast keinen header aus alten Borland-tagen drin.
3. würde ich noch bei switch case einen default case machen und dort eine dann sowas wie "Fehlerhafte eingabe" ausgeben lassen, damit das prog net abstürzt oder irgendwas amcht wenn mal nicht das passende eingegebn wird.
Hi :D
Ganz im Rahmen von "Keep it simple" wollte ich mal noch hinzufügen, dass Du den Kode z.B. folgendermaßen stark verkürzen könntest.
Ich verstehe zwar nicht Dein Verfahren, nach dem Du Kode einrückst, aber ich habe mal versucht es zu übernehmen...
Es fehlt noch die bereits erwähnte default-Anweisung und auch dieses Verfahren ist noch nicht das sauberste, aber es ist zumindest schonmal kürzer als das, was Du da geschrieben hattest...Code:int (*calc)(int, int);
switch(Buchstabe)
{
case 'a':
calc = &Add;
cout<<"Bitte geben Sie 2 Zahlen ein,die miteinander addiert werden sollen!"<<endl;
break;
case 'b':
calc = ⋐
cout<<"Bitte geben Sie 2 Zahlen ein,die voneinander subtrahiert werden sollen!"<<endl;
break;
case 'c':
calc = &Mult;
cout<<"Bitte geben Sie 2 Zahlen ein,die multipliziert werden sollen!"<<endl;
break;
case 'd':
calc = &Div;
cout<<"Bitte geben Sie 2 Zahlen ein,die dividiert werden sollen!"<<endl;
break;
}
int a;
int b;
cin>>a;
cin>>b;
cout<<"Das Ergebnis lautet : "<<calc(a,b)<<endl;
Denk mal daran: (Fast) immer, wenn Du etwas mehrmals schreiben musst, solltest Du versuchen, es auf eine einzige Version zu beschränken (z.B. in Form einer Funktion, die entsprechend oft aufgerufen wird).
Das hat mehrere Vorteile. Der Kode ist übersichtlicher, weniger fehlerträchtig, kleiner (also die Größe der Programmdatei)...
Eine Entscheidung, die man aber eher bei größeren Projekten beachten muss, ist ein geeignetes Verhältnis zwischen Größe und Geschwindigkeit zu finden.
Jede Funktion kann auch als #define-Direktive vom Präprozessor unmittelbar in den Quellkode eingefügt werden, was die Geschwindigkeit des Programms erheblich erhöhen kann - die Programmdatei wird jedoch entsprechend größer.
Die andere Möglichkeit besteht darin, den oft verwendeten Kode in einer ("ganz normalen") Funktion zu verfassen. Durch das viele "Umherspringen" wird das Programm zwar langsamer, dafür wird die Programmdatei kleiner.
Gerade bei großen Projekten muss man das günstige Mittel abwägen.
Als Beispiel: Ein Programm, dass einen bestimmten Kode mehrmals aufrufen möchte - zuerst mit "normalen Funktionen" (der Sinn dieses Programms sei dahingestellt... ;) ):Das Programm "hoppst" zur Funktion hello_mr_x(), wieder zurück, wieder hin, wieder zurück... dieser Kode ist zwar klein, aber langsam (in diesem Fall wird das nicht ins Gewicht fallen... aber wie gesagt, bei größeren Projekten kann es durchaus eine Rolle spielen)Code:#include <stdio.h>
void hello_mr_x(char *name)
{
printf("Hello %s", name);
}
int main(void)
{
hello_mr_x("Klaus");
hello_mr_x("Peter");
return 0;
}
Nun das Ganze mit #define-Direktiven:Hier muss nicht "gehoppst" werden, das Programm ist schneller, aber größer. (Gut, in diesem Fall zwar nicht, aber wenn hello_mr_x() mehrere Zeilen beinhalten würde, was bei Funktionen normalerweise der Fall ist). Das nennt man dann übrigens Makros. ;)Code:#include <stdio.h>
#define hello_mr_x(name) printf("Hello %s", name);
int main(void)
{
hello_mr_x("Klaus");
hello_mr_x("Peter");
return 0;
}
Soweit.
GreetZ RiDER :D :D