Taschenrechner



  • Stefan311: wikipedia: compiler, parser, lexer, grammatik



  • Was willst du damit sagen? Das ich nichts von dieser sprache kenne?
    Ich kenne sie damit habe ich was gemacht bevor ich auf C++ umgestiegen bin.
    Ich hatte viele aber leider hab ich sie alle bei einem Plattencrash verloren.
    Aber Ich könnte sie neu schreiben aber das bringt mir nichts eigentlich wollte
    ich nur wissen wie ich sowas rechnen kann.Und zwar mit char weil es nicht in einem int zeichen gespeichert werden können.



  • Es gibt doch unter c++ bubblesort zum sortieren sowas gibt es doch bestimmt auch für C?



  • aehm, ich meinte folgendes:
    du willst mathematische terme ausrechnen. du weisst aber nicht, wie du das anstellen sollst. schliesslich gibt es sowas wie rechenregeln (prioritaeten fuer operatoren...). damit du dich mal informieren kannst, hab ich dir ein paar schlagwoerter gegeben.

    wenn du char mit char* verwechselst, dann verstehst du c noch nicht wirklich. und was du da mit dem [40]er array anstellst ist mir schleierhaft...



  • um nochmal zum bubblesort zu kommen, der ist afaik in keiner ansi-c lib
    implentiert, den musste also schon selbst programmieren 😉

    lg icepacker



  • wie waers mit sort() oder qsort() (keine ahnung, welches es nun gibt).



  • Stefan311 schrieb:

    Ich kenn die sprache. Und was mir nicht gelingt schau ich nach. Ich schreib sogar nen kleines Ebook für anfänger(aber c++). ABer das müsste doch klappen weil ja das zeichen eine Zahl hat. Weil mit int hab ich die sorge das +-/* zeichen nicht gespeichert werden können.

    Du schreibst ein ebook, obwohl du selber keinen plan hast? omg 😮



  • Ich will doch keine eingebene Buchstaben ausrechnen oder zusammenfassen.
    Das problem mit einem int wäre doch das darin kein zeichen sein kann also +,-.*
    und /. Dahe Will ich das mit einem char machen. Und um alles zu vereinfachen
    mit einem array. Außerdem ist char* doch um speicher zu reservieren. Das will ich ja nicht. Und jetzt will ich erstmal nur überhaupt 1 und 1 zusammen rechnen.
    Also so:
    Eingabe: 11
    dann soll er rechnen 1+1=2
    Ergebnis:2
    Fertig

    Ich hoffe du verstehst mich und falls das mit char und char* falsch ist sag es
    mir ich bringe da gern was durcheinander. 😞



  • @wtfff
    JA aber über C++ nicht über C.Aber auch nur solches wie cout,int,cin,#include und weiteres. Also um schonmal zu wissen für was das und jenes ist.



  • Um mal dein Beispiel zu nehmen...

    char eine[50];
    int aus;
    printf("Taschenrechner");
    
    printf("Ready\n");
    
    scanf("%s", &eine);
    
    aus=(eine[0]-'0')+(eine[1]-'0');
    
    printf("\nErgebnis: %d", aus);
    
    getchar();
    
    return 0;
    


  • guck dir mal die funktion atoi() an!

    zu char:

    char var; //variable mit dem datentyp char
    char *var; //pointer auf einen char datentyp
    

    @c.rackwitz also qsort() ist die funktion für den sortier algo quicksort
    sort() ist was ganz anderes ➡

    lg icepacker



  • Stefan311 schrieb:

    @wtfff
    JA aber über C++ nicht über C.Aber auch nur solches wie cout,int,cin,#include und weiteres. Also um schonmal zu wissen für was das und jenes ist.

    c++ is aber nochmal wesentlich komplexer als c. naja, mir ja egal 😃



  • [cpp] scanf("%s", **&**eine); [/cpp]

    Das stimmt nicht ganz, oder?



  • jap, das "&" muss weg.
    aber bei diesem frickel taschenrechner ist das dann auch egal 😉



  • aus=(eine[0]-'0')+(eine[1]-'0');
    

    warum hast du die eingegebenen zahlen nochmals mit 0 subtraiert?



  • eine[40]=eine[0]+eine[2];
    

    Mal ne Frage was willst du damit machen?

    Also wie es mir scheint solltest du noch etwas Erfahrung sammeln bevor du dich einem so komplexen Thema zuwendest.

    Im übrigen hat dir c.rackwitz einige Stichwörter genannt, die du für dein Problem brauchen wirst. Also such doch mal nach Informationen darüber? 🙄



  • Stefan311 schrieb:

    warum hast du die eingegebenen zahlen nochmals mit 0 subtrahiert?

    Mit dem ASCII Wert von 0. C (btw. C++ auch) kann nur mit Integern rechnen. Also wandele ich das Zeichen in einen Integer um.



  • Also ich wollte erstmal überhaupt was zum rechnen hinbekommen. Jetzt werde ich mich mit suchen beschäftigen.
    Danke für die Hilfe.



  • Hallo Stefan311
    Zu erst muss ich mich leider einigen hier anschliessen, du hast anscheinend tatsächlich keinen Plan von C, und von C++ höstens ein bißchen. Naja egal, C ist jedenfalls sehr einfach und man kann es schnell erlrenen.

    Zufällig half ich vorkurzem einem Bekannten C zu lernen (der hat so Studienfach),dabei haben wir einge kleine Programme geschrieben, unter anderem auch einen "Tachenrechner".
    Schau die den Code an, vielleicht bringt dich das weiter:

    #include <stdio.h>
    
    int main()
    {
        enum {FALSE, TRUE};
        double a,b,ergebnis;
        int c, done;
        done = FALSE;
    
        while (done == FALSE)
        {
                   printf("1 : Berechnung\n"
                          "2 : Ende(y/n)\n"
                          "Operation :");
                  c = getchar();                   
                  while (getchar() != '\n'); /*bereinigung*/ 
                  if (c == '1')
                  {
                     printf ("Eingabe:");
                     scanf ("%lf %c %lf",&a,&c,&b);
                     while (getchar()!='\n');/*bereinigung*/
                     if (c == '+')
                               ergebnis = a + b;
                     if (c == '-')
                               ergebnis = a - b;
                     if (c == '*')
                               ergebnis = a * b;
                     if (c == '/')
                               ergebnis = a / b; 
    
                     printf("Ergebnis : %f\n",ergebnis);                                                                
                  }
                  if (c == '2')
                  {
                            printf("Beenden(y fuer ja sonst nein):");
                            c = getchar();
                            while (getchar() != '\n');/*bereinigung*/
                            if (c == 'y')
                                 done = TRUE;
                  }                   
        }
        return 0;    
    }
    

    Wenn du Fragen hast dann poste.



  • ProgChild schrieb:

    Lolo... schrieb:

    Er addiert keine HexWerte sondern ASCII-Codes.

    Er addiert die numerischen Werte der Zeichen oft auch dargestellt in Hexschreibweise...

    Wodrin dargestellt ist völlig wurscht. Er addiert ASCII Werte. Deine Aussage war einfach falsch. Aber dann nochmal nachstümpern 🙄


Anmelden zum Antworten