Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück


schon wieder Probleme mit mathematischen Grenzen...

#1 von Joe Patroni , 06.07.2023 09:45

...bin vielleicht einfach nur zu dumm

Wie sieht die einfachste Lösung für folgendes Problem aus:
Wiederkehrend wird ein Wert zwischen 0 und 1023 berechnet.
Im folgenden Durchgang soll der neue Wert nur zugelassen werden, wenn er nicht mehr als +/- 50 vom vorherigen abweicht. Auẞerhalb dieser Bereichsgrenze soll er auf das max Limit begrenzt werden.

Geht das ohne endlose if-Abfragen, ohne zig Variablen zum Zwischenmerken?
if-Abfragen sind eh problematisch, weil sie sich scheinbar nicht auf mathematische Bedingungen knüpfen lassen, also etwas wie
If WERT >(<) WERTALT +(-) 50 then

Außerdem macht dann die Definition des unteren Limits "0" wieder Ärger, wenn ALTWERT - 50 negativ sein sollte...

Gibts da evtl nicht so etwas wie eine Funktion "Differenz berechnen"?


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#2 von Joe Patroni , 06.07.2023 12:03

zum leichteren Verständnis, was ich bräuchte, wäre sinngemäß etwa sowas:

if WERT < WERTALT -50 then WERT = WERTALT - 50 or
if WERT > WERTALT +50 then WERT = WERTALT +50

wobei die Gefahr besteht, dass WERTALT -50 unter die Null-Marke rutschen kann, was ja nicht geht, weil es keine neg. Zahlen gibt.
WERTALT -50 bzw. +50 darf also nicht kleiner 0 bzw. größer 1023 werden...

Nachvollziehbar, was ich will?


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019

zuletzt bearbeitet 06.07.2023 | Top

RE: schon wieder Probleme mit mathematischen Grenzen...

#3 von Joe Patroni , 06.07.2023 12:58

Meine Lösung sieht jetzt erstmal so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
MATH1 = WERTALT + 25 MAX 1023
 
MATH2 = WERTALT - 25
if MATH2 > 65000 then
MATH2 = 0
endif
 
if WERT > MATH1 then
WERT = MATH1
endif
 
if WERT < MATH2 then
WERT = MATH2
endif
 
WERTALT = WERT
MATH1 = 0
MATH2 = 0
 



Nuja, geht wohl nicht ohne Zwischenvariablen (MATH1/2). Scheint aber seinen Zweck zu erfüllen...


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#4 von BoomBoomMagic , 06.07.2023 19:17

Also , Du möchtest das eine Variable nur einen neuen Wert enthällt , wenn diese + - 50 dem alten ist -- ok , nicht das Problem.

Zitat

Auẞerhalb dieser Bereichsgrenze soll er auf das max Limit begrenzt werden.



Was heißt das ?
Außerhalb dieser Grenze soll er auf max. begrenzt sein ??


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#5 von Joe Patroni , 06.07.2023 21:06

Nicht ganz. Werte mit einer Abweichung +/- 50 sollen nicht ignoriert werden, sondern auf das maximale Limit von +/- 50 beschnitten werden.
Im Code-Beispiel oben hab ich dummerweise +/- 25 geschrieben, also nicht verwirren lassen...

Wenn WERTALT z.B. 500 enthält, eine Neuberechnung aber 580 ergeben würde, darf WERTNEU NUR bei 550 liegen,
oder andersrum, läge eine Neuberechnung bei 430, muss WERTNEU bei 450 liegen...


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#6 von BoomBoomMagic , 07.07.2023 11:13

Is zwar noch früh am Morgen .... aber ich glaube , ich habs begriffen :-)


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#7 von BoomBoomMagic , 07.07.2023 11:45

..... Gedankenfehler ...


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#8 von BoomBoomMagic , 07.07.2023 13:06

So .
Hier mal ein Vorschlag :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 

 

Do
Main:
 

If NEUwert<ALTwert then
 
If ALTwert-50<0 then
ALTwert=0
goto Main
endif
 
ALTwert=ALTwert-50
 
goto Main
 
endif
 

 
If NEUwert>ALTwert then
 
If ALTwert+50>1023 then
ALTwert=1023
goto Main
endif
 
ALTwert=ALTwert+50
 
goto Main
 
endif
 
Loop
 

 


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#9 von Joe Patroni , 07.07.2023 20:47

Abgesehen davon, dass auch das viel Code darstellt, der sich allerdings scheinbar nicht vermeiden läßt, denke ich, dass er nicht funktioniert.

1
 
If ALTwert-50<0 then
 



1) Bei mir haben solche Vergleiche nicht funktioniert, da sie mathematische innerhalb von "if" Operationen enthalten, das kann Picaxe wohl nicht
2) Es gibt keine Werte kleiner null. Da geht es ja erstmal wieder mit 65tausendirgendwas weiter und dadurch wird die if-Abfrage im Falle eines Falles statt wahr falsch.

Aber lass mal gut sein, ich denke meine Lösung funktioniert (ist gerade im Testlauf), auch wenn ich dachte, das kann man mit zwei Zeilen Code lösen.


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#10 von BoomBoomMagic , 07.07.2023 22:56

Ich wußt ja nicht das das noch immer um die ur alte Picaxe ging ;-)
Beim Atmel is das sehr einfach :-)


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: schon wieder Probleme mit mathematischen Grenzen...

#11 von Joe Patroni , 08.07.2023 08:56

Kein Problem, ich schreibs künftig extra dazu


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019


   

Scratchpad bleibt blank
Problemlösung für Umgang mit MIN / MAX gesucht

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz