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:

Zufall

 
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
derdicke



Anmeldungsdatum: 27.11.2004
Beiträge: 8

BeitragVerfasst am: 08.12.2004, 16:17    Titel: Zufall Antworten mit Zitat

Hi,

Also die Sache ist folgendes:
Mal angenommen irgendjemand möchte ein Programm schreibe, welches einfach nur eine Zahl ausgibt. Ok, das würde er auch ohne Probleme hinbekommen, doch er will nun meinetwegen dass immer eine Zahl zwischen 1 und 100 raten, wie macht man sowas?

Und kann der gleiche jemand das Programm dann auch leicht abgeändert an eine Weissagerinn verkaufen, die ihre Fähigkeiten testen will und eine Zahl zwischen 1 und 100.000.000 Raten will.

Ich frage nur aus interesse, weil mein Lehrer es nicht hinbekommen hat!

Mfg.
Timo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 08.12.2004, 16:28    Titel: Antworten mit Zitat

Hi !

Code:

RANDOMIZE TIMER
a = int(rnd*100)+1
DO
input b
IF b > a then print "Zu Gross !"
IF b < a then print "Zu Klein !"
LOOP UNTIL b=a then print "Richtig !"


Du kannst den Wert verändern in dem du z.b schreibst :

a = int(rnd*100000)+1

Wen du int weglässt dan kommen auch die Kommazahlen wie 1234,56
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 08.12.2004, 16:29    Titel: Antworten mit Zitat

Code:

RANDOMIZE TIMER

PRINT "Ich überlege mir eine zahl zwischen 1 und 100,"
PRINT "Was denkst du, wie die Zahl lautet ?"

zahl = INT(100 * RND(1)) + 1

INPUT "Deine Antwort :", meine

IF zahl = meine THEN
        PRINT "Richtig Geraten !"
ELSE
        PRINT "Falsch, meine Zahl war "; zahl
END IF


*edit* da war wohl jemand schneller lächeln
_________________
'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
derdicke



Anmeldungsdatum: 27.11.2004
Beiträge: 8

BeitragVerfasst am: 08.12.2004, 16:39    Titel: Antworten mit Zitat

Hmm, ok das ist nicht allzuschwehr zu verstehen,

Und bei z.B. einem Quiz?
Wenn man also das die Zahlen (dann Fragen) wenn man die Reinfolge dem Zufall überlassen möchte?

Mfg.
derdicke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dj_Damy



Anmeldungsdatum: 18.10.2004
Beiträge: 30
Wohnort: Mainz

BeitragVerfasst am: 08.12.2004, 18:14    Titel: das macht man so... Antworten mit Zitat

also wenn du fragen in zufallsfolge aufrufen willst dann mach
das am besten so:

RANDOMIZE (TIMER)
Frage = INT (RND * AnzahlderFragen) + 1

SELECT CASE Frage
CASE 1
GOSUB Frage1:
CASE 2
GOSUB Frage2:
usw...
END SELECT

So ist es am einfachsten.

ciao Dj_Damy zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 08.12.2004, 22:01    Titel: So ist's aber ziemlich schlecht... Antworten mit Zitat

Hallo.

Das ist zwar einfach, aber:
Die Lösung ist gerade für ein Quizspiel ganz und gar nicht zu empfehlen!

Bei wenigen Fragen liest du am besten alle Datensätze in ein Array ein und erstellt Zufallsindexe.
Wenn du allerdings mehr Fragen hast, solltest du Zufallszeilennummern erzeugen und ggf. in ein Integer-Array tun. Dann liest du diese Zeilen nacheinander an.

Wenn du mit Zeilenmarken arbeitest, geht dir die gesamte Modularität mit ihren ganzen Vorteilen verloren!

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.12.2004, 22:07    Titel: Re: So ist's aber ziemlich schlecht... Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Das ist zwar einfach, aber:
Die Lösung ist gerade für ein Quizspiel ganz und gar nicht zu empfehlen!

Der passende Artikel aus meiner Sammlung:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Anfaengerfehler.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Spongebob Schwamm



Anmeldungsdatum: 31.10.2004
Beiträge: 40

BeitragVerfasst am: 19.12.2004, 18:05    Titel: Wieso nicht so Antworten mit Zitat

Hi!
Machts doch so:
Code:

For i = 1 To 3
Cls
Randomize Timer
fragezufall = int(rnd (sternchen geht bei mir nicht) 2)  (und das plus geht auch nicht) 1
If fragezufall = 1 Then
Frage
Antworten
anderes Zeug
End if
If fragezufall = 2 Then
Frage
Antworten
Andres Zeug
End if
Next i
End
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 20.12.2004, 16:12    Titel: Antworten mit Zitat

Zitat:
Ich frage nur aus interesse, weil mein Lehrer es nicht hinbekommen hat!

mit den Augen rollen
Dein LEHRER?
geschockt missbilligen weinen durchgeknallt
_________________
Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Xolios
aka Ray


Anmeldungsdatum: 07.12.2004
Beiträge: 589
Wohnort: Wildeshausen

BeitragVerfasst am: 22.12.2004, 10:06    Titel: Lehrer Antworten mit Zitat

Dein Lehrer sollte umbedingt eine Fortbildung machen.
Das er nicht weiß wie man Zufallszahlen generiert ist schon
sehr lachen

Gruß
Ray
_________________
www.ray-earth.de
Anm.: Neue ICQ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
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