Taschenrechner
-
Danke für den Tipp...
aber ich habe Funktionen noch nie selber geschrieben, außerint main()
Da ich C++ nach den Kapiteln eines Buches lerne, wurden diese leider noch nicht angesprochen, bzw ich habe das Kapitel noch nicht gelese.
Ciao...zocker001
-
zocker001 schrieb:
Ich wollte eigentlich nur die "goto-Befehle" etwas üben.
omg. Schließe deine Übungen mit der folgenden Regel ab:
Vermeide goto!Dein Stil gefällt mir überhaupt nicht, da du:
- gleichartigen Code ständig wiederholst
- goto benutzt (siehe oben)
- keine Fehlerbehandlung machst (Division durch 0)
- Variablen benutzt, wo keine notwendig sind
-
Warum soll ich goto-Befehle vermeiden???
Für mich waren sie eine eine Hilfe...Es ist doch egel, ob ich Variable überschreibe oder nicht, schlieslich sollen ja nur die Werte verwendet werden, die bei der Berechnung wichtig sind, oder?
Nenn mir doch mal ein paar Beispiele. Mit "Divison durch 0" kann ich nicht viel anfangen.
Kannst du wenigstens etwas (psitives :D) über die Funktionalität des Programms sagen. Hast dus ausprobiert???
Danke für deine Antworten. Ich hab das nicht böse gemeint, schlieslich habe ich ja danach gefragt!
Ciao..zocker001
-
Eine Divison durch null ist z.b.: 1/0=?
Das Ergebnis einer Division durch null ist in der mathematik nicht definiert!
-
Oh, stimmt, du hast ja recht...
Aber wie behebe ich die Fehler???? Etwa mit
cin.clear()
oder was
Danke...
zocker001PS: Hats den wenigstens jemand getestet...
-
Du könnest bei der Berechnung überprüfen ob der Divisor null ist und wenn ja könnest du einfach neue Eingaben anfordern.
if(b==0){ cout<<"Divisor ist null"; //goto eingabenanforderung }
-
Mir gefällt dein Stil auch nicht. Drei Gründe:
- goto-Anweisungen machen das Programm unverständlich
- nicht eindeutige Bezeichnung von goto-Labels
- keine Funktionen (ausser main())Funktionen sind im Grunde ganz einfach. Hier ist einmal ein primitives Beispiel:
#include <iostream> using namespace std; int helloworld(); //Deklaration der Funktion helloworld() mit dem Rückgabetyp int int main() { helloworld(); //Ausführen der Funktion helloworld() } int helloworld() { cout << "Hello World!\n"; }
Ich hoffe, das hilft dir etwas.
-
Wieso wird mein Code nicht rightig angezeigt? Bin ich etwa zu blöd dazu?
-
#include <iostream> using namespace std; int helloworld(); //Deklaration der Funktion helloworld() mit dem Rückgabetyp int int main() { helloworld(); //Ausführen der Funktion helloworld() } int helloworld() { cout << "Hello World!\n"; }
hmm ich würde entweder meine " int funk()" was zurückgeben lassen , oder in diesem Fall "void hellworld(){...}" benutzen.
zu deiner frage:
nimm mal die c/c++ tags und nicht die code tags
-
Sorry, ich hab was vergessen. Hier ist der korrigierte code
#include <iostream> using namespace std; int helloworld(); //Deklaration der Funktion helloworld() mit dem Rückgabetyp int int main() { helloworld(); //Ausführen der Funktion helloworld() return 0; } int helloworld() { cout << "Hello World!\n"; return 0; }
-
[cpp] funktioniert auch nicht.
-
Ja gut, ich habs ja verstanden, dass ihr gegen die goto-Befehle seid (bei den nächsten Quellcodes, die ich hier im Forum verwende, vermeide ich sie).
Für den Programmierer (also ich) sind sie doch nicht unverständlich (meine Meinung).So ungefähr habe ich schon von dem Aufbau der Funktionen gehört, aber ich warte lieber bis zu dem entsprechenden Kapitel in meinem Buch.
Aber trotzdem vielen Dank...mfg
zocker001PS: Bitte, bitte, bitte, testet doch bitte das Programmm
Ich möchte eure Meinung dazu hören...
-
zocker001 schrieb:
Da ich C++ nach den Kapiteln eines Buches lerne, wurden diese leider noch nicht angesprochen, bzw ich habe das Kapitel noch nicht gelese.
Ciao...zocker001
hallo,
also ich habe den code mal ausprobiert, läßt sich kompilieren und läuft auch alles, soweit mich meine kopfrechenfähigkeiten nicht betrügen. soweit also mal ein LOB
allerdings, was ich mich frage, nach was für einem buch lernst du denn c++ bzw von wann ist das buch?? goto war doch schon zu zeiten der prozeduralen programmierung stark verpöhnt, aber das dann in zeiten der oop zu lehren...
das nächste, schreibe mal ans ende deines quelltextes einreturn 0;
dies ist zwar nicht zwingend notwendig, aber guter stil. und da man bei guten betriebssystemen den exitstatus eines programms aufrufen kann auch ganz sinnvoll.
ansonsten macht das programm das was es soll, und das ist, jedenfalls nach meinung meines c-dozenten, das wichtigste! meine pascal und c++ - dozenten sehen das ganze zwar ganz anders, aber am anfang ist es doch wichtiger erstmal die werkzeuge kennen zu lernen als auf guten stil zu achten. aber vergiss bitte so schnell wie möglich, daß es soetwas wie goto überhaupt gibt
wenn du noch keine funktionen schreiben kannst ist das auch kein problem, man kann auch vollkommen ohne sie auskommen, sie erhöhen aber die wartbarkeit erheblich und sie sind eigentlich gar nicht kompliziert. wie int main(), nur, daß in den klammern noch parameter stehen und anstelle von int jeder beliebige datentyp stehen kann und anstelle von main dein selbst gewählter funktionsname (welcher meistens das größte problem darstellt). auf die frage, was ihr größter fehler gewesen sei, sagten die erfinder von c und linux, daß sie die funktion strcpy() (stringcopy) nicht strcp() oder strcopy() genannt haben...also, mach weiter so und lass dich nicht entmutigen wenn manche leute, zwar mit gutem grund, deinen stil kritisieren. das kommt schon fast von alleine wenn du ein bissl drauf achtest, die werkzeuge zu beherschen ist schwieriger und wichtiger als der stil!
grüße,
Sternenstaub
-
Warum bei "2113114847" der Code nicht angezeigt wird, ist mir ein Rätsel...
Sehr komisch, den ich mach das selbe wie du und bei mir klappts...mfg
zocker001
-
An Sternenstaub:
Danke, dass dir mein Programm gefallen hat.
Du hast ja vollkommen recht. Ich sollte mich eher auf das Lernen von C++ konzentrieren, als jetzt schon am Programmierstil zu feilen.Das Buch, das ich besitze heißt: "C++ lernen und professionell anwenden"
Meiner Meinung nach bis jetzt ein sehr gutes Buch. Das Erscheinungsjahr dürfte soweit ich weiß bei 2002 liegen. Die goto-Befehle wurden zwar nur kurz erläutert, aber ich fand sie irgendwie (auch jetzt noch :D)hilfreich, auch wenn das andere nich so sehen (den Grund dafür weiß ich bis heute noch nicht...ist aber auch egal). Es wurden auch Makros zur Änderung der Farben angesprochen, die bei mir allerdings nicht funktionierten. Andere Leute haben mir bei den Makros auch geraten, die Finger davon zu lassen.Nochmals danke....
grüße von zocker001
Ciao...Übrigens: Wenn ich bei den Funktionen angelangt bin, werde ich mit Sicherheit wieder ein paar Beiträge schreiben...bestimmt
-
Das mit den farben: Sicherlich ansi-escape-sequenzen, und du hast winXP?
Warum goto net so toll ist, merkst du spätestens dann, wenn Funktionen behandelt werden...
Achja:@2113114847:
Hast du vielleicht bb-code deaktiviert? (Bei optionen)
-
Ne, hab Windows 98.
-
Zu 2113114847:
Wenn du dir nicht Sicher bist, ob dein Code richtig angezeigt wird, verwende doch mal die Vorschau-Funktion.
grüße von
zocker001
-
@Zocker: Wie funktionieren die Farbmakros denn? Was passiert wenn du sie benutzt? (Ich weiß, offtopic, aber ich habe selber mal versucht die Farben mit escape-sequenzen zu ändern, würde gern nadere Wege kennen lernen[Ich weiß das es improved console gibt und schreibe eigentlich WinApi])
-
Du fragst hier einen Anfänger (!!!DANGER!!! ---> Fehlergefahr)
In meinem Buch steht ein Makro zur Änderung der Farbe:#define FARBE(v, h) (cout << << "\033[1;3" << (v) << ";4" << (h) << 'm' << flush)
v = Vordergrundfarbe (Zahl eingeben)
h = Hintergrund (Zahl eingeben)Aufruf des Makros z.B.:
FARBE (0, 1)
Zahlen geben die Farbe des Bildschirms an.
Bei mir hat sich da nichts geändert. Weis nich, warum.
Ciao...
zocker001
Kann heute kleider nicht mehr antworten...:)