Announcement

Collapse
No announcement yet.

Zufallszahlen !

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    ja supper Programmstart also in mein erstes Formular in Creater oder was ?

    Hilfe von BCB sagt int main das is aber C++ also ist es DOCH EINFACH in Create oder wo?

    Comment


    • #32
      Üblicherweise im Konstuktor der Form-Klasse

      oder in der

      WinMain zu finden in Projektname.cpp
      Christian

      Comment


      • #33
        Hör bitte auf, so 'rumzumotzen! Wir machen das alle freiwillig, unentgeltlich und in unserer Freizeit... Und wir machen es gern, lassen uns aber nur ungern dafür anraunzen.

        Schreib es z.B. in FormCreate oder FormShow des ersten Formulars, welches erzeugt wird, eben einmal bevor Du Dir Zufallszahlen liefern lässt.
        Auch hier kann Dir der Debugger helfen, indem Du das Programm im Einzelschritt-Modus startest, also F8 statt F9, dann siehst Du, wo's langgeht.
        Hilfe von BCB sagt int main
        => weiter lesen, denken, wieder lesen, wieder denken...

        Gruß Knut

        #edit# Christian war schneller *gg*

        Comment


        • #34
          lol rummotzen ich hab nur gesagt in Create.

          ich finde das ja supper was ihr macht !! immer hilfreich !!

          Comment


          • #35
            also wenn du z.B beim ereigniss FormActivate randomize() einbaust, solltest du immer andere zahlen bekommen.

            Edit: sry, hab irgendwie paar beiträge verplant, wurd irgendwie net angezeigt, also mein post bitte nicht beachten

            Comment


            • #36
              Hab' ihn doch mal beachtet:
              Originally posted by c0nstan View Post
              also wenn du z.B beim ereigniss FormActivate randomize() einbaust, solltest du immer andere zahlen bekommen.
              OnActivate ist jedoch ein Ereignis, das immer wieder kommt, wenn man das Programm, nachdem es z.B. durch Benutzen des Browsers in den Hintergrund geraten ist, wieder "hervorholt". Das wäre dann die verschärfte Variante
              Das Ereignis ist wohl eher zum Neuzeichnen von Grafiken oder zum Aktualisieren von Listen gedacht.
              Gruß Knut

              Comment


              • #37
                ah was, das wusste ich garnicht ich dachte das ist nur einmalig wenn die form aufgerufen wird. danke. sowas muss ich beachten bei meinem programm ^^

                Comment


                • #38
                  Hi ich wollte mal kurz nochmal die Zufallsgeneration durchgehen, was ihr da so gemacht habt usw.

                  1. Also am Anfang ne neue Funktion, mit Variablen erstellt das is ja noch klar.

                  Code:
                  int GetZahl()
                  {
                  bool check;
                  int zahl;
                  2. Starten einer Do-While Schleife, dann wird darin die Bool-Variable= false gesetzt.
                  Der Variablen zahl wird eine Zufallszahl zugewiesen (das 50 kann ich dann durch zahl=rand%(mem_woerter->Lines->Count) erstezten damit ich genau von 0-anzahl der Wörter in meiner Memo habe).
                  So dann wird eine for schleife gestartet in der nachgeschaut wird wann die Variable zahl == dem zufalls array ist, wenn ja dann setzt ihr hier check=true.
                  Und warum break das versteh ich nicht. Und warum while(check) soll das bedeuten solange die Do.... bis check==true oder wieso?
                  Code:
                  do
                  	{
                  	check=false;
                  	zahl=random(50);
                  	for(int x=0;x<lauf;x++)
                      	{
                  		if(zahl==zufall[x])
                  			{
                  			check=true;
                              break;
                  			}
                  		}
                  
                  	}while(check);
                  3.Danach wird geschaut ob (!check&&lauf<20) was soll das bedeuten !check ?? ungleich was ? wenn der ausdruck stimmt wird aus dem array zufall eine zufällige zahl der Variable zahl zugewiese, lauf erhöht und zahl zurückgegeben
                  Code:
                  if(!check&&lauf<20)
                  	{
                  	zufall[lauf]=zahl;
                  	lauf++;
                  	return zahl;
                  	}
                  4.return -1 ? was soll das
                  Code:
                  return-1;
                  }

                  Comment


                  • #39
                    Zu 2. das break; ist dafür da: Wenn die Zufallszahl im Array gefunden wird, werden die nächsten zahlen garnicht mehr überprüft da schon eine gefunden wurde. Mit dem break wird die for Schleife verlassen.

                    Und while(check) heißt: Dass die Schleife solange durchlaufen wird, solange chek true ist. Beim Anfang der Schleife wird es auf false gesetzt, das heißt, wenn die Zufallszahl NICHT im Array gefunden wird, wird check auch nicht auf true gesetzt und die Schleife wird verlassen, weil diese Zufallszahl noch NICHT vorkam.

                    Zu 3. Ja da wird geprüft ob chek false ist. Denn wenn es false ist, ist die Zufallszahl eine einzigartige die noch nicht vorkam. Wenn lauf kleiner 20 ist,(Wohl deshalb 20, weil ich in meinem Beispiel halt eine Zahl zwischen 0-19 hatte also 20 läufe wären möglich) wird dem Zahlenarray die neue Einzigartige Zufallszahl an Stelle Lauf zugewiesen array[lauf]=zahl; damit diese neue Zahl beim nächsten Lauf mit überprüft wird, dann wird Lauf um 1 erhöht damit das Array nach einer Zahl mehr untersucht wird. Und return zahl; dadurch bekommst du ja als Rückgabewert der Funktion deine neue Zufallszahl.

                    Wenn allerdings lauf >= 20 ist, bekomsmt du als Rückgabewert -1, das heißt wenn du -1 zurück bekommst, weisst du das es keine weitere Zufallszahl mehr gibt.

                    Hoffe konnte dir helfen

                    Gruß

                    Comment


                    • #40
                      ja klar danke man !!

                      Comment

                      Working...
                      X