Ein einfacher Taschenrechner in C



  • DirkB schrieb:

    meinungsadler schrieb:

    Keine Fehlermeldung. Aber dafür egal welche Gleichung ich eingebe, gibt er immer und immerwieder "Unbekannter Operator aus...

    Wie gibst du es denn ein?
    Jedesmal mit Entertaste oder in einer Zeile?

    Mach doch mal nach dem scanf ein:

    printf("Sie haben <%f|%c|%f> eingegeben\n", gleitkommazahl1, zeichen, gleitkommazahl2);
    

    Und nimm ruhig den C/C++ Button für den Code. Dann wirds farbig und bunt 🙂

    Die Ausgabe sieht bei mir so aus:

    http://s1.directupload.net/images/120617/gkzbqb29.png

    Leider weiß ich noch nicht, wie man hier Bilder hochladen kann 🙂



  • meinungsadler schrieb:

    Die Ausgabe sieht bei mir so aus:

    http://s1.directupload.net/images/120617/gkzbqb29.png

    Leider weiß ich noch nicht, wie man hier Bilder hochladen kann 🙂

    Bilder hochladen geht nicht.
    Ein Copy & Paste und als Code markiert tut es auch.

    Gibt es auch keine Warnungen?
    Schreib mal vor dem do

    zeichen = '*'; 
    gleitkommazahl1 = 3;
    gleitkommazahl2 = 4;
    

    und drück nur die Enter-Taste bei der Eingabe (ohne Werte).

    Welchen Compiler/IDE nimmst du?



  • DirkB schrieb:

    meinungsadler schrieb:

    Die Ausgabe sieht bei mir so aus:

    http://s1.directupload.net/images/120617/gkzbqb29.png

    Leider weiß ich noch nicht, wie man hier Bilder hochladen kann 🙂

    Bilder hochladen geht nicht.
    Ein Copy & Paste und als Code markiert tut es auch.

    Gibt es auch keine Warnungen?
    Schreib mal vor dem do

    zeichen = '*'; 
    gleitkommazahl1 = 3;
    gleitkommazahl2 = 4;
    

    und drück nur die Enter-Taste bei der Eingabe (ohne Werte).

    Welchen Compiler/IDE nimmst du?

    Dann klappt es komischerweise.. Ich benutze Dev C++..



  • meinungsadler schrieb:

    DirkB schrieb:

    Welchen Compiler/IDE nimmst du?

    Ich benutze Dev C++..

    Welche Version?



  • DirkB schrieb:

    meinungsadler schrieb:

    DirkB schrieb:

    Welchen Compiler/IDE nimmst du?

    Ich benutze Dev C++..

    Welche Version?

    4.9.9.2.

    Es gibt aber schon 5.2.0.2

    Soll ich unbedingt aktualisieren? Das muss doch bei diesen billigen Programmen nicht sein. ??



  • Dev C++ ist extrem veraltet. Ich nehme für schnell mal ausprobieren Codeblocks, in dem dein von mir modifizierter Code auch funktioniert. Ich verstehe gar nicht warum der bei dir nicht geht? Ich habe mich so eng an deine Code gehalten wie es ging, damit du nicht ein komplett anderes Programm bekommst, denn davon hast du gar nix.

    Taschenrechner Übungen gibt es mit Sicherheit wie Sand am Meer und bestimmt auch welche die nur sichere validierte Eingaben nutzen. Aber all dies nutzt dir in der Stufe, in der du gerade bist, nicht wirklich viel.



  • Habe ich ganz übersehen 🙄

    meinungsadler schrieb:

    DirkB schrieb:

    Die pow-Funktion ist für die Potenzierung da. Da gibt es keine Kurzschreibweise.
    Wenn du das selber machen willst, mach eine Schleife und rechne darin mit *.
    Wird aber schwierig bei einem Fließkomme-exponenten.

    Ich habe mal "versucht", so eine Schleife zu konstruieren, aber als Ausgabe erhalte ich leider z. B. für 3 hoch 3 eine riesen Zahl -.-

    Quellcode:

    #include <stdio.h> 
    
    main(){ 
    float erg;
    double basis = 3; 
    int exponent = 3; 
    int i = 0; 
    for (i = 0; i < exponent; i++) { 
        erg = erg * basis; 
        } 
        printf("Ergebnis = %f\n", erg);        
           system("PAUSE");         
    }
    

    Der Compiler muss hier eine Warnung in Zeile 9 ausgeben.
    Wenn nicht, stell dein Warnlevel härter ein.

    Schreib mal direkt vo die for-Schleife nochmal: printf("erg = %f\n", erg);
    Ein C-Compiler versucht immer das Programm trotz aller Widrigkeit zu übersetzen.
    Dabei bemerkt er auch mögliche Fehler vom Programmierer, die er als Warnungen ausgibt.
    Darum beachte die Warnungen und behebe den Grund dafür.



  • DirkB schrieb:

    @meinungsadler
    Probier mal

    int main(){ 
    
           int zeichen; // ja, ein int
    

    Das ist falsch, weil bei

    DirkB schrieb:

    scanf (" %f %c %f", &gleitkommazahl1, &zeichen, &gleitkommazahl2);
    

    %c einen Zeiger auf char verlangt und keinen auf int.



  • internium schrieb:

    Ja du hast recht, ich habe es halt nur einheitlicher gemacht und es funktioniert so erstmal.

    Naivling.

    internium schrieb:

    Es funktioniert doch, nicht auf Sicherheit gemünzt, aber das juckt einen Anfänger eh erstmal nicht, da es ums Grundverständnis geht und er einfach mal probieren will.

    Noch viel größerer Naivling.

    internium schrieb:

    So kann man den Nachwuchs auch zu PHP treiben^^

    Gute Idee. Gehe dahin und betreibe dort dein Noobunwesen und lasse hier die Leute mit Ahnung Anfängern etwas erklären.

    internium schrieb:

    Dev C++ ist extrem veraltet. Ich nehme für schnell mal ausprobieren Codeblocks, in dem dein von mir modifizierter Code auch funktioniert.

    Für die Aufdeckung deiner Fehler und für die überwiegende Mehrzahl des hier relevanten C-Codes reicht ein simpler standardkonformer Compiler egal wie alt aus.

    internium schrieb:

    Ich verstehe gar nicht warum der bei dir nicht geht?

    Weil du keine Ahnung hast, dir der Überblick und die Erfahrung fehlt um Fragern hier ihr Thema richtig zu erläutern, du bist selbst ein Anfänger, der Hilfe braucht, wie an deinen Äußerungen+Code unschwer zu erkennen ist.



  • Ja ich würde mich auch eher noch als fortgeschrittener Anfänger bezeichnen, aber den Stuss den du hier schreibst ist auch nicht von schlechten Eltern^^

    Was war denn bitteschön so falsch an meiner Hilfe, mal von der Sicherheit abgesehen?

    In keinem Lehrbuch wirst du in den Anfängerbeispielen gleich die ganzen Sicherheitsaspekten drin haben, weder in C, C++, Java noch PHP. Was redest du eigentlich hier für einen Müll dies bezüglich zusammen? Noch nie ein Buch gelesen?

    Du bringst hier nicht EIN Argument, sondern machst nur die Anfänger fertig. Man, zum Glück bist du kein Dozent und ich hoffe du schreibst nie ein Buch für Anfänger...so schlecht wie du muss man erst mal die Leute an Hand nehmen, das ist auch eine Kunst...welche auch immer.


Anmelden zum Antworten