Taschenrechner



  • 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...
    zocker001 😉

    PS: 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
    zocker001 😉

    PS: 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 ein

    return 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...:) 🙂



  • Sieht nach escape-sequenzen aus! (Verbessert mich!) Warums unter 98 net geht weiß ich nicht!



  • @ goto:
    1. stell dir mal ein programm mit mehreren 1000 zeilen code * vor in denen wild mit goto hin und hergesprungen wird... wer soll da denn den überblick behalten? sprung in zeile 12787 zu einer sprungmarke "oben:", wo in dem quelltext steht denn "oben:", was kann man sich unter "oben:" vorstellen etc?? wenn man das selber programmiert hat, kann man sich das alles vielleicht noch zusammenreimen, aber was macht man als armer programmierer der den code gegenlesen, optimieren oder debuggen soll??

    2. schleifen mit genau einem ausgang und funktionen sind da erheblich leichter zu warten und zu verstehen. nicht umsonst kann man in struktugrammen keine goto - anweisungen darstellen...

    3. nächster punkt ist eine mögliche modularisierung, damit mehrere personen an einem programm arbeiten können. ein großes problem wird in mehrere kleine probleme aufgeteilt, welche dann wiederum in kleinere aufgeteilt werden bis man handliche kleine portionen hat welche man dann mit relativ einfachen funktionen lösen kann. jeder entwickler muß sich also nur um mehrere kleine probleme kümmern, und am ende werden dann alle lösungen noch kombiniert, jedenfalls in der theorie. auch hier ist goto relativ ungeeignet...

    4. kleine programme (mehrere 100 zeilen code), wie du, und wahrscheinlich auch ich, in nächster zeit noch schreiben werden werden ohne probleme auch mit goto´s funktionieren. aber warum sollte man sich etwas angewöhnen was man eigentlich nicht benutzen sollte / darf?

    grüße,

    sternenstaub

    * zum vergleich:
    programm                            zeilen code
    x-beliebige handysoftware               200.000
    hubble-boden-software                 1.000.000
    luftraum-überwachung                  2.000.000
    spaceshuttle                          3.000.000
    B-2 stealthbomber                     4.000.000
    win95                                10.000.000
    win NT 4.0                           16.000.000
    win2000                              27.000.000
    winXP                                45.000.000
    

Anmelden zum Antworten