HILFE!!! Schleifen



  • net schrieb:

    Sascha081088 schrieb:

    Allerdings muss du ein wenig denken.
    Du hast z.b. die Dualzahl 11110000 dann musst du zuerst die 0 dann wieder 0 usw eingeben also alle einzeln! Und von rechts nach links!

    und hier eine version bei der man nicht denken muss 😉

    #include <stdio.h>
    
    int main()
    {
       char bin[256];
       unsigned int res = 0;
       int s;
    
    start:   
       printf ("Binaerzahl eingeben: ");
       scanf ("%s", bin);
       
       for (s=0; s<strlen(bin); s++)
       {
           res <<= 1;    
           if (bin[s] == '1')
              res++;
       }
    
       printf ("%s ist als als Dezimalzahl: %d\n", bin, res);
    
       res = 0;
       goto start;
    }
    

    Nunja hat zwar nicht wirklich viel mit C++ zu tun aber egal!



  • Sascha081088 schrieb:

    Nunja hat zwar nicht wirklich viel mit C++ zu tun aber egal!

    compiliert's nicht bei dir? musst du es u.u. in eine .c datei tun.



  • Ich will doch kein c ich will garnichts ich dachte Visual Newbie wollte einen C++ Code aber egal!



  • Doch kompilliert schon, nur eine Warnung....

    for (s=0; s<strlen(bin); s++)

    also das <

    was bedeuten nun immer diese zwei ++ hinter manchen zahlen??????oder buchstaben....???



  • Sascha081088 schrieb:

    Ich will doch kein c ich will garnichts ich dachte Visual Newbie wollte einen C++ Code aber egal!

    na, da kanner doch c++ draus machen. ein bisschen soll er ja auch selber zu tun haben, sonst langweilt er sich noch 😉



  • Stand doch schon in einen Code von mir! ++ bedeutet soviel wie +1!



  • Visual Newbie schrieb:

    was bedeuten nun immer diese zwei ++ hinter manchen zahlen??????oder buchstaben....???

    das nennt sich post-increment. also man kann x = x+1; als x++; schreiben, ist das selbe, hat historische gründe. genauso kannste auch ++x schreiben, was in diesem fall keinen unterschied macht



  • Jetzt müsste man schon ein eigenes Forum gründen,

    "Wer hilft Visual Newbie "
    * lol *

    Ne Spaß bei Seite, sorry Sascha hab ich übersehen....
    Danke net....

    Ich versuche grade aus dem Programm schlau zu werden.....
    Und überlege mir, ob es umgekehrt auch geht... also Dez in dual...

    Nur wenn mir die Befehle nix sagen ist das immer schwer....

    WIe wärs mit einer kleinen Erklärung noch zusätzlich z.B be printf und ähnlichen schrecklichen ABkürzungen....

    Sorry, ich weiß ich bin anstrengend.....



  • Also umgekehrt stelle ich mir schwieriger vor!
    Also von C hab ihc fast null ahnung!



  • Mache ja auch c ++ und nicht c.....

    Kannst du jeweils Kommentarzeile dazumachen, damit ich weiß was jetzt passiert, also in der jeweiligen Zeile????



  • Visual Newbie schrieb:

    Und überlege mir, ob es umgekehrt auch geht... also Dez in dual...

    na klar geht das...

    Visual Newbie schrieb:

    Nur wenn mir die Befehle nix sagen ist das immer schwer....

    vielleicht hätteste mal besser aufgepasst - oder der lehrer ist unfähig.

    Sascha081088 schrieb:

    Also von C hab ihc fast null ahnung!

    na, wenn du c++ kennst, dann kannste auch 90% von c



  • Gut, sorry falsch ausgedrückt....

    Ich arbeite mit c ++, was nicht heißt das ich von Ahnung hab...

    Sonst würd ich ja auch nicht Fragen....



  • Visual Newbie schrieb:

    Kannst du jeweils Kommentarzeile dazumachen, damit ich weiß was jetzt passiert, also in der jeweiligen Zeile????

    // schleife die alle zeichen des strings durchgeht
       // von links nach rechts
       for (s=0; s<strlen(bin); s++) 
       {
           // ergebnis vor jedem schleifendurchlauf
           // mit 2 multiplizieren (eine 2'er potenz weiter)
           res <<= 1;                
           // wenn eine '1' gefunden wurde, ergebnis eins hochzählen    
           // bei '0' oder anderen zeichen wird nur multipliziert
           // siehe oben
           if (bin[s] == '1')        
              res++;
       }
    


  • unsigned int res = 0; // Und das????

    printf // ????

    scanf ("%s", bin); // ????

    Danke
    🙂



  • Visual Newbie schrieb:

    unsigned int res = 0; // Und das????

    legt eine variable an vom typ 'unsigned int' und setzt sie auf 0

    Visual Newbie schrieb:

    printf // ????

    c-library ausgabefunktion, kannste auch 'cout' nehmen

    Visual Newbie schrieb:

    scanf ("%s", bin); // ????

    c-library eingabefunktion. der c++ freak nimmt dafür 'cin'



  • Last but not least....

    was bedeutet das Prozent Zeichen? Im Buch steht modulo Operator... ich sag nur Bahnhof....



  • net schrieb:

    #include <stdio.h>
    
    int main()
    {
       char bin[256];
       unsigned int res = 0;
       int s;
    
    start:   
       printf ("Binaerzahl eingeben: ");
       scanf ("%s", bin);
       
       for (s=0; s<strlen(bin); s++)
       {
           res <<= 1;    
           if (bin[s] == '1')
              res++;
       }
    
       printf ("%s ist als als Dezimalzahl: %d\n", bin, res);
    
       res = 0;
       goto start;
    }
    

    warum goto 😮
    was spricht gegen:

    while(1)
    { /****/}
    

    ps:irgendwie ist der in diesem thema gepostete code totaler mist 🤡

    edit: @net wenn du kein c++ programmieren kannst/willst dann verkauf das
    einem anfänger nicht als c++, mixed code ist hier nicht so gern gesehen



  • Auf jeden Fall funktioniert das Ding...

    while ... wohin??? statt goto? Zeig mal wie das funktioniert....

    net ist halt kein C++ Programmierer....



  • Visual Newbie schrieb:

    Last but not least....

    was bedeutet das Prozent Zeichen? Im Buch steht modulo Operator... ich sag nur Bahnhof....

    Der Modulo-Operator liefert dir den Divisonsrest einer ganzzahligen Division. D.h.

    5 % 4 == 1; denn die 4 geht einmal in die 5; Rest 1.
    10 % 10 == 0; denn die 10 geht einmal in die 10; Rest 0;
    2 % 1 == 0; denn die 1 geht zweimal in die 2; Rest 0;
    99 % 97 == 2; denn die 97 geht einmal in die 99; Rest 2.
    

    Gruß Caipi



  • icepacker schrieb:

    warum goto 😮
    was spricht gegen:

    while(1)
    { /****/}
    

    nix. das ist das gleiche.

    icepacker schrieb:

    ps:irgendwie ist der in diesem thema gepostete code totaler mist 🤡

    dann mach's besser anstatt zu meckern.

    icepacker schrieb:

    edit: @net wenn du kein c++ programmieren kannst/willst dann verkauf das
    einem anfänger nicht als c++, mixed code ist hier nicht so gern gesehen

    das macht nichts. visual newbie kommt bestimmt klar damit.

    Visual Newbie schrieb:

    net ist halt kein C++ Programmierer....

    wo er recht hat....


Anmelden zum Antworten