PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : knotenlöser gesucht.....



merlin63
09.04.2009, 02:27
hallo leutz

bemühe ja sehr selten das forum wegen einer frage, aber diesmal habe ich einfach einen knoten im kopf.
es geht um eine simple zählschleife (durch zwei taster) mit begrenzung nach oben und unten.
nach oben soll die var bis 59 kommen, was auch so klappt und nachn unten bis null.
tja und da bekomme ich keinen fuß vor dem anderen. sie läuft einfach über und blockt nicht bei null ab.
wäre schön, wenn mir jemand das brett vom kopf nehmen könnte.
danke schon mal.
gruß thomas

If Up = 0 Then
'Waitms 100
I = I + 1
If I > 59 Then I = 59
Elseif Down = 0 Then
'Waitms 100
I = I - 1
If I = 0 Then I = 0
End If

Netzman
09.04.2009, 04:00
wenn I ein signed datatype ist müsste
If I <= 0 Then I = 0 funktionieren, wenn nicht (also zb. ein Byte) läuft I über und wäre dann 255.

mfg

Sauerbruch
09.04.2009, 06:04
Das Problem ist die Zeile


If I = 0 then I = 0
(Oder in anderen Worten: Sage mir deinen Namen und ich sage dir wie du heisst :-) )

Probier´s mal mit


If I = 255 then I = 0
das setzt I für den Fall eines stattgehabten Überlaufs wieder auf 0 zurück!

Brett weg?? :-)

PicNick
09.04.2009, 07:16
Versuch doch mal


If Up = 0 Then
If I < 59 Then I = I + 1
Elseif Down = 0 Then
If I > 0 Then I = I - 1
End If

merlin63
09.04.2009, 12:01
hallo ihr lieben mitstreiter

also...erstmal recht herzlichen dank für das rege demontage-interesse \:D/

ich habe natürlich vergessen zu sagen, das es sich um eine bytevar handelt.

dank des hr. Dr. sauerbruchs habe ich jetzt einen dicken zeh.....stammt von abfallenden brett.
na klar....einfach auf überlauf (255) abfragen und dann auf null korrigieren.....man man man.... ](*,)
also sage ich mal ein dickes dankeschön an den hr.Dr. \:D/

@picnick
das könnte so aber nicht funzen wenn ich das richtig sehe.
die beiden bedingungen heben sich doch gegenseitig auf....sage ich mal so sallop.

bin ja nun nicht der profikampfprogger was bascom angeht. mache das eher für den hausgebrauch. auf dem C64 anno was in den 80igern habe ich mal mit basic angefangen.
deshalb hatte mich das auch nach zwei stunden grübeln echt an den rand des wahnsinns gebracht.
na gott sei dank gibt es ja das I-NET.
ich werd das mal nachher checken....im mom muß ich tochter beim renovieren helfen.....was für eine spannende aufgabe :-k :roll:

also danke nochmal an alle.

gruß thomas

PicNick
09.04.2009, 12:43
Zwischen den zwei bedingungen steht ein "elseif".
egal

Manche sagen, wenn die Kinder einmal aus dem Haus sind, hat man weniger Stress. Das ist die Stelle, wo Wissende in Gelächter ausbrechen.

MeckPommER
09.04.2009, 12:52
Hallo merlin63,

doch, auch picnicks version müßte funktionieren. Sie geht nur einen anderen Weg.

Während deine jetzige Variante den Wert von I auf jeden Fall vermindert oder erhöht und danach prüft, ob es etwas am Wert von I zu korrigieren gibt, macht picnics Version erst eine Prüfung und vermindert oder erhöht dann erst den Wert von I falls zulässig.

Gruß MeckPommER