Zahlen bzw. Buchstaben Mischen



  • Die Rechtschreibung ist kein Problem. Wollt Dich auch nicht beleidigen oder so. Ich konnte nur wirklich nicht verstehen was Du willst.

    Mir ist auch jetzt noch nicht so klar, was Du genau willst.

    HALLO -> LAHLO

    Das ist doch jetzt aber irgendwie gemischt und nicht je 2 benachbarte oder?
    Würde ich je zwei benachbarte vertauschen erhielte ich doch AHLLO, oder?
    Falls Du einfach nur mischen willst, dann nimm std::random_shuffle

    #include <iostream>
    #include <algorithm>
    #include <string>
    
    using namespace std;
    
    int main()
    {
      string wort;
      cin >> wort;
      random_shuffle(wort.begin(), wort.end());
      cout << wort << endl;
    }
    

    MfG Jester



  • Sorry Mein Fehler 🙄

    Du hast rech es sollte so aussehen AHLLO!

    Ähm ne Frage und zwar (std::random_shuffle ) ist das Objekt Orientiertes Programmierung ?

    Könntest du mir Sagen wie ich das in Prozeduale Programierung mache !
    Wiell ind der Schule haben wir noch nicht mit Objektorientierten Programmierung angefangen!
    Danke!

    MfG Fiktor



  • Nö, das ist nicht objektorientiert. Das ist ein simpler Funktionsaufruf und damit sozusagen prozedural.

    Wenn Du nur benachbarte Elemente vertauschen willst, dann lauf doch in ner Schleife drüber und vertausche je zwei Stück...
    Das dürfte das einfachste sein.

    MfG Jester



  • Hallo

    Hm kommisch (ich kenn denn befehl nicht "std::random_shuffle " bzw wir haben es nicht in der Schule Behandelt!)

    Gibts ne andere möglichkeit die Buchstaben zu vertauschen ohne diesen std::random_shuffle ?

    Danke!

    MfG Fiktor



  • Nein, es ist die einzige Möglichkeit.



  • Fiktor schrieb:

    Hallo

    Hm kommisch (ich kenn denn befehl nicht "std::random_shuffle " bzw wir haben es nicht in der Schule Behandelt!)

    Gibts ne andere möglichkeit die Buchstaben zu vertauschen ohne diesen std::random_shuffle ?

    Danke!

    MfG Fiktor

    Die werden dir schon nicht den Kopf abreissen wenn du mal über den Tellerrand schaust. std::random_shuffle sollte auch mit nem char-array funktionieren.
    Nur weil ihr es noch nicht hattet, heisst das doch nicht, dass du dich nicht schlau machen darfst ob das nicht evtl. schon gelösst wurde. Und wenn dem so ist, kannst du es doch verwenden.



  • HI Prolog ! Das sieht man sich wieder LOL;

    Ähm das mit char-array ist ne gute idee! Aber wie soll ich es machen?!?!
    HAste nen Tipp ?

    P.s da mit std::random_shuffle ist ne Feine sache ist ja Kein Problemm!

    Bloss wenn ich z.B Irgendein Prog schreiben muss und dann vorstelle, dann gucken meine Mitschüler DUM Herum weill sie davon KP haben!

    Aber ich behalte ja das in meinem kopf ist ja nicht das ding!
    Danke!!!

    MfG Fiktor



  • Hallo

    1. So das Prog Leuft!

    2. Ich hab bishen mit rabdom(); funktion rumgespielt und mir ist aufgefahlen das er mir immer denn Gleichen wert ausgibt! Also denn wert (Zahl 130!!!!!!)

    Heisst eigentlich --rand-- nicht Zuffal ?!?!?!?!??! 😕

    hier mall der COde

    //==========================================================
    #include <iostream> 
    #include <algorithm> 
    #include <string>
    #include <iomanip.h> 
    //-----------------------------------------------------------
    int zahl;
    int main() 
      { 
      zahl = rand();
      cout <<"\n\n"<< zahl << endl;
    getchar();
    return 0;
      } 
    //===========================================================
    

    Warum ist das so, das er immer ne gleiche zahl ausgibt?!?!?!

    Danke!

    MfG Fiktor



  • hab mir die FAQs in diesem Forum noch nicht angeguckt aber ich vermute mal das es auch zu diesem Thema garantiert was gibt... halte ausschau nach den funktionen srand und rand...
    ne schöne erklärung bekommst du auch wenn du unter google mal Pseudorandomnumbers eingibst



  • Weil Du man: srand nicht aufgerufen hast.
    edit: Zu spät.



  • Irgendwie Kapier ich nicht das mit "srand aufrufen" ?!?!

    Könntet ihr mir kleinen bsp. Geben?!?!

    MfG Fiktor



  • #include <iostream>
    #include <ctime> 
    using namespace std;
    
    int main(){
    int x;
    srand(time(NULL));
    for(int x=0;x<10;++x)cout<<rand()%10<<endl;
    }
    


  • Danke !!!!!!

    Geht das auch mit Wörtern ?

    Eingabe z.B HALLO ausgabe wir belibig ausgegeben??



  • Hallo

    Habs Versucht irgendwo nachzulesen!

    Aber nirgendwo gefunden ! 😞

    MfG Fiktor



  • wie genau meinst du das sollen die buchstaben in zufälliger reinfolge ausgeben werden?



  • Hallo.

    Ja jetzt Zufälig weill ich vorhin gefragt habe wie mann die in Bestimmte reihe ausgibt! Jetzt interesiert mich wie mann die Bewliebig Variert

    MfG Fiktor



  • da gibts viele möglichkeiten... die faulste ist vermutlich wenn du es in ein std::string packst und dann immer mit %size() dir einen buchstaben holst und den danach aus dem string löscht so lange bis size()==0..



  • Warum nicht mit random_shuffle?



  • Weill es nicht geht!

    Siehe hier! Ich weiss es auch nicht warum

    #include <iostream> 
    #include <algorithm> 
    #include <string> 
    
    using namespace std; 
    
    int main() 
    { srand(time(NULL)); 
      string wort; 
      cin >> wort; 
      random_shuffle(wort.begin(), wort.end()); 
      cout <<"\n\n"<< wort << endl; 
      getchar();
    }
    

    Es wird immer der Gleiche wort ausgegeben



  • du hast das mit den zufallsgenerator noch nicht begriffen... die zahlen sind nicht zufällig sondern sie werden einfach nur ausgerechnet...
    abhängig von ihrem startwert (seed) wird durchgerechnet, d.h. es kommen beim gleichen startwert auch immer die gleichen zahlen raus...

    den seed hast du mit srand gesetzt also mit der zeit initialisiert... da die änderungen der zeit in diesem falle nur minutenweise berücksichtig werden bekommst du wenn du nur sinnlos das gleiche programm ständig ausführst auch immer das gleiche ergebnis... lass mal das teil in ner schleife laufen dann bekommst du zufallsartige ergebenisse...


Anmelden zum Antworten