Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Nur Gerade Zahlen nach Randomize?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Felix



Anmeldungsdatum: 22.01.2008
Beiträge: 41
Wohnort: Breisach

BeitragVerfasst am: 25.01.2008, 21:38    Titel: Nur Gerade Zahlen nach Randomize? Antworten mit Zitat

Hallo,
hab wiede rmal ne Frage... Die überschrift klingt wahrscheinlich etwas verwirrend. Was ich damit eigentlich mein: Ich habe ein Programm, dass mit dem Randomize Timer-Befehl eine zufällige Zahl zwischen 0 und 100 ausgibt.
Das Problem: Ich will, dass es nur gerad Zahlen sind, und dass, wenn es eine ungerade Zahl ist, einfach +1 gerechnet wird, aber das ist ja dann das kleinste Problem. Kennt jemand eine Mathematische Formel mit der man kontrollieren kann, ob die Zahl gerade ist oder gibt es dafür in QBasic sogar einen Befehl?

mfg, Felix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 25.01.2008, 21:42    Titel: Antworten mit Zitat

Mach einfach ne Zahl zwischen 0 und 50 und multiplizier mal 2...
Testen ob ne Zahl gerade ist kannst dü übrigens mit dem Befehl mod 2
also zB
PRINT 7 mod 2
MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.01.2008, 21:59    Titel: Antworten mit Zitat

Hallo Felix,

wie wär's mit folgender Function: http://www.freebasic-portal.de/fbporticula/451 lächeln

//Edit: Code auf Voltas Hinweis hin korrigiert. zwinkern

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!


Zuletzt bearbeitet von Sebastian am 27.01.2008, 15:25, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Felix



Anmeldungsdatum: 22.01.2008
Beiträge: 41
Wohnort: Breisach

BeitragVerfasst am: 25.01.2008, 22:18    Titel: Antworten mit Zitat

lächeln lächeln lächeln lächeln lächeln Und wieder mal Vielen Dank!! lächeln lächeln lächeln lächeln lächeln

Vielen Dank für die schnelle Hilfe, und wieder einen Schritt näher an meinem fertigen Vokabeltrainer lachen

mfg, Felix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 27.01.2008, 15:00    Titel: Antworten mit Zitat

Hi,
beim ausprobieren der Funktion GeradeZufallszahl% fiel mir auf, dass bei
GeradeZufallszahl%(1,5) und GeradeZufallszahl%(0,5)
auch die 6 als Rückgabewert berechnet wurde d.h. es kann auch ein Wert "Bis+1" ermittelt werden.

EDIT/
doch... grinsen
Code:
Zahl = INT(RND * (Bis-Von))+Von

da INT die Zufallszahl abrundet ist das OK.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 27.01.2008, 18:19    Titel: Antworten mit Zitat

Hallo

volta hat Folgendes geschrieben:


EDIT/
doch... grinsen
Code:
Zahl = INT(RND * (Bis-Von))+Von

da INT die Zufallszahl abrundet ist das OK.


So ganz OK nicht glaube ich. Die Function liefert keine gleichmässige Verteilung des Zufalls. Nehmen wir das Beispiel GeradeZufallszahl%(0,5)

Als Werte ergeben sich die Zahlen 0, 2 und 4. So weit, so gut. Aber während die Werte 1 und 2 für Zahl das Ergebnis 2 liefern und 3 und 4 das Ergebnis 4, so kommt 0 als Wert für GeradeZufallszahl% nur bei Zahl=0 heraus. Die Chancen, 0 als Rückgabewert der Function zu erhalten, ist also nur halb so groß, wie für 2 oder 4. Wenn die obere Grenze auch eine gerade Zahl ist, tritt wegen der Rundung mit INT dort das selbe Problem auf. Ich glaube Heizis Vorschlag, einfach das abgerundete Ergebnis mal zwei zu nehmen ist besser. Man muss dann nur den Wertebereich vorher halbieren.

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz