Italia
Foro

Erledigt: rnd-Problem

 
Man glaub es kaum, ich programmiere wieder. (Damit habe ich einigen die grande Überraschung genommen)

Bei meinem derzeitigen Projekt spielen Zufallsgeneratoren eine grande Rolle. Jedoch scheint die zufällige Auswahl nicht ganz zu klappen.
KompilierenMarkierenSeparieren
randomize

whilenot e%

    if classes%=1

        sizerate%=rnd(150)

    elseif classes%=2

        sizerate%=rnd(100)

    elseif classes%=3

        sizerate%=rnd(50)
        e%=1

    endif

    if classes%=1 and sizerate%>75

        e%=1

    elseif classes%=2 and sizerate%>50

        e%=1

    endif

wend

e%
n>0

wenn classes%=3 ist funktioniert die Schleife wunderbar, hat classes jedoch il valore 1 oder 2, macht mein PC nichts und hängt scheinbar in der Schleife fest.
Ist bestimmt mal wieder was total dummes, ich sehs kommen. Aber bis jetzt versteh ich es nicht.

Noch eine Frage: randomize gilt per alle nachfolgenden rnd oder?

Saluto
CHT
 
23.06.2009  
 




Jörg
Sellmeyer
Wie soll er auch was anderes machen, da du in der if-Struktur nur bei classes% = 3 e% auf 1 setzt
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.06.2009  
 




RGH
Ciao,

das gelistete Programm ist zwar mangels Vraiablendeklarationen nicht laufffähig, so dass ich es nicht ausprobieren konnte, aber ein Fehler fällt softort auf: Es fehlen die Klammern bei den Bedingungen! (Siehe in der Aiuto unter "6. Operatoren", Stichwort "Hierarchie".) So geht es presumibilmente:
KompilierenMarkierenSeparieren
...

elseif (classes% = 2) and (sizerate% > 50)
/pre>

In Deinem Code würde wegen der Hierarchie zunächst "2 and sizerate%" aufgelöst und das ist entweder 1 oder 0. Dann würde "classes% = 1" oder "classes% = 0" aufgelöst werden und dies ergibt auch wieder entweder 1 oder 0. Und da dies niemals größer 50 ist, ist die Bedingung ohne Klammern immer falsch, völlig unabhängig vom Wert sizerate%.

Kleiner Tipp: Wenn man sich die Hierarchie der Operatoren nicht merken will oder kann, einfach immer die Klammern so setzen, wie man es gewertet haben möchte.

Da es unterschiedliche Sprachen (und selbst unterschiedliche Di base-Dialekte) unterschiedlich handhaben, habe ich mich an der Hierarchie der Sprache orientiert, in der ich XProfan geschrieben habe: Pascal. (Ich nutze Delphi und Delphis Programmiersprache ist Object-Pascal.)

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.06.2009  
 



naja, ich habe ja noch ein zweites if, wo ich das abfrage

selbst bei
KompilierenMarkierenSeparieren
whilenot e%

    if classes%=1

        sizerate%=rnd(150)

        if classes%=1 and sizerate%>75

            e%=1

        endif

    elseif classes%=2

        sizerate%=rnd(100)

        if classes%=2 and sizerate%>50

            e%=1

        endif

    elseif classes%=3

        sizerate%=rnd(50)
        e%=1

    endif

wend


tut sich nichts.

ich verstehe meinen Fehler nicht

Saluto
CHT
 
23.06.2009  
 




Dieter
Zornow
Hast du Rolands Posting nicht gelesen.

in deiner zweiten If-Abfrage
KompilierenMarkierenSeparieren
if (classes%=2) and (sizerate%>50)re>

Die Klammern setzen dann gehts
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
23.06.2009  
 



Ich habe RGH´s Post leider erst im Nachhinein gesehen, weil ich etwas gebraucht habe mit meinem eigenen Post und noch etwas geprüft habe.
Also ich schaue mal ...
... und tatsächlich! Was 4 Klammern so ausmachen können. Danke an RGH und Dieter!

Saluto
CHT
 
23.06.2009  
 



[offtopic]
Gegen das Problem derartiger Posting-Überschneidungen habe ich bereits ein Mittel im Test.
So wird ein Beitrag sofort angezeigt nach dem Absenden - auch wenn man grad einen Beitrag verfässt.
Ebenso wird dann im Thread zu sehen sein, ob ein Mitglied grad einen Beitrag verfässt, indem der Beitrag bereits erscheint mit entsprechendem Bemerk und einem "Stift".
[/offtopic]
 
23.06.2009  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

5.884 Views

Untitledvor 0 min.
iF14.09.2020
RudiB.17.05.2020
Untitled01.09.2019
Pauli15.04.2013
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie