Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Größen verhältnis chip will nicht gehen



Filtik
01.09.2011, 10:14
Hallo zusammen,

seit gestern versuch ich ein Chip zu machen, wo von 5 Inputs den niedrigsten Wert erkennt und mir dann ausgibt vom welchen Input der niedrigsten Wert kommt oder einfach mir auch eine zahl ausgibt wie ich es momentan habe.


@name Distance
@inputs InputA InputB InputC InputD InputE
@outputs Detec
@persist D
@trigger all



if ( InputA < (InputB | InputC | InputD | InputE))
{
Detec = 1
}
elseif ( InputB < (InputC | InputD | InputE | InputA))
{
Detec = 2
}
elseif ( InputC < (InputD | InputE | InputA | InputB))
{
Detec = 3
}
elseif ( InputD < (InputE | InputA | InputB | InputC))
{
Detec = 4
}
elseif ( InputE < (InputA | InputB | InputC | InputD))
{
Detec = 5
}


Er gibt mir aber dauern nur die Zahl 1 aus obwohl Input3 kleiner ist als Input1.
Hab schon alles mögliche probiert, aber hab ihn nicht so hin bekommen wie ich es gerne hätte.

Währe für jede Hilfe dankbar.

Gruß
Filtik

1mannlan
01.09.2011, 10:29
Probiers mal mit:
if (InputA < InputB & InputA < InputC &....)
...nach diesem Schema.

isch
01.09.2011, 10:52
Vielleicht könntest du ja mal erklären was du mit diesem Chip dann machen willst, möglicherweise gibt es einen einfacheren weg dies zu erreichen.

Filtik
01.09.2011, 11:31
Der Chip soll erkennen, vom welchen Input die niedrigste Zahl kommt und dann ausgeben den Input als Zahl ausgeben.

Also z.b.:
InputA = 122
InputB = 88
InputC = 100
somit hat InputB den niedrigsten wert und soll nicht die "88" ausgeben, sonderns "2" und dies eben mit 5 Inputs.

1mannlan
01.09.2011, 13:22
Dann probiers mit meinem Vorschlag, löst das Problem.

Hidden Evil
01.09.2011, 21:07
Oder lade alle Inputs in ein Array und prüfe mit R:minIndex() den Index des Feldes mit niedrigstem Inhalt. Mit dem Index kannst Du dann mittels ifelse-Abfrage eine Ausgabe spezifizieren oder ihn einfach als Ausgabe nutzen, wenn du nur eine Zahl zwischen 1-5 brauchst.

//Edit:
Ich habe Dir das mal schnell zusammengetippt.


@name Minimum-Ermittler
@inputs InputA InputB InputC InputD InputE
@outputs Index Min:string
@persist TempArray:array

TempArray[1,number]=InputA
TempArray[2,number]=InputB
TempArray[3,number]=InputC
TempArray[4,number]=InputD
TempArray[5,number]=InputE

Index=TempArray:minIndex()

#Folgendes ist unnötig, wenn man nur die Zahl haben will.
#Dann reicht einfach nur "Index" als Output, ohne "Min:string".

if(Index==1){Min="InputA"}
elseif(Index==2){Min="InputB"}
elseif(Index==3){Min="InputC"}
elseif(Index==4){Min="InputD"}
elseif(Index==5){Min="InputE"}