Forum: Mikrocontroller und Digitale Elektronik Anzeigen der höchsten Variable


von Rainer (Gast)


Lesenswert?

Hallo,

Ich komm bei einer Sache nicht weiter.
Ich möchte gerne bei meinen arduino
Die höchste variable anzeigen lassen.
Mit val max =(val1, val2) bekomm ich den
Höchsten Wert ausgegeben, aber wie
Kann ich mir anzeigen lassen
Welche Variable es war?

Mit einen Array Bring ich es nicht zum
Laufen.


Bitte um Hilfe.

Vielen Dank!

von Rübezahl (Gast)


Lesenswert?

Du musst nur "prüfen" welche der beiden Variablen es ist, die den 
maximalen Wert enthält. Beachte auch den Fall, das beide Variablen den 
gleichen Wert enthalten können.

Also etwa so,

if (val1 == max(val1, val2)
   print "val 1 ist maximal!";


if (val2 == max(val1, val2)
   print "val 2 ist maximal!";

von Rübezahl (Gast)


Lesenswert?

Oder etwa auch:

if (val1 >= val2)
   print "val 1 ist maximal!";


if (val2 >= val1)
   print "val 2 ist maximal!";

von Dirk B. (dirkb2)


Lesenswert?

Die zweite Prüfung kann auch wegfallen.

Wenn es nicht die erste Variable ist, muss es die zweite sein.
Da reicht ein else aus.

von Jim M. (turboj)


Lesenswert?

Dirk B. schrieb:
> Die zweite Prüfung kann auch wegfallen.
>
> Wenn es nicht die erste Variable ist, muss es die zweite sein.
> Da reicht ein else aus.

Da wäre aber das Verhalten bei val1 == val2 subtil verschieden...

von Rainer (Gast)


Lesenswert?

Hallo, Danke für die antworten!

ja funktioniert ganz gut... mit  int val...
aber wieso geht es mit static int nicht?

im Endeffekt will ich wissen ob celsius oder celsius1 in unbestimmter 
Zeit der grösste war.

static int maxwert = max(celsius, celsius1); läuft gut, nur welcher der 
beiden war es?


ich werde noch verrückt!

Ich Danke euch für die Hilfe!
mfg Rainer

von Rainer (Gast)


Lesenswert?

hallo ich bin jetz auf die lösung gekommen!!
ich hatte int val und nicht static int val!!
naja wie logisch manches ist wenns stimmt!

Danke Leute!!

int  x = celsius;
int  y = celsius1;
static int val =max(x,y);



if (x >= val) {
     lcd.setCursor(0, 3);    lcd.print( "X" );
     val=x;}
     if (y >= val) {
     lcd.setCursor(0, 3);    lcd.print( "y" );
     val=y;}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.