Autor | Thema: Größetn Wert ermitteln | | Datum:26.02.02 11:32 
(nevada@online.de) | |
Hallo,
Wie kann ich auf dem kürzensten Weg (so wenig Zeilen wie möglich) in
Profan 7.0 den größten Wert aus vier Variablen ermitteln?
'------------------------------------
V1% = 650
V2% = 500
V3% = 600
V4% = 550
Print "Ich bin die größte: ", [???]
'------------------------------------
Über Hilfe würde ich mich freuen.
Tschuessi, Dennis
|
| | Datum:26.02.02 12:26 
(joerse@gmx.de) | |
Hallo,
Ob das jetzt die kürzeste Lösung ist weiß ich nicht.
Ist auf jeden Fall sehr komfortabel.
Einfach alles in eine sortierte Listbox und den letzten
Eintrag auslesen - fertig
Gruß
Jörg
declare v1%,v2%,v3%,v4%,z&
Declare lb&
Cls
V1% = 650
V2% = 500
V3% = 600
V4% = 550
'diese Zeilen werden benötigt:
lb&=CreateSortedListBox(%hwnd,"",200,40,200,300)
AddString(Lb&,Format$("00000000",v1%))
AddString(Lb&,Format$("00000000",v2%))
AddString(Lb&,Format$("00000000",v3%))
AddString(Lb&,Format$("00000000",v4%))
'*************
Print "Ich bin die größte: " + str$(val(GetString$(lb&,getcount(lb&) - 1)))
WaitInput
Randomize
WhileLoop 10
z&=rnd(2000000)
AddString Format$("00000000",z&)' + "=" + str$(z&)
Wend
MoveListToList(lb&)
Print "Ich bin die größte: " + str$(val(GetString$(lb&,getcount(lb&) - 1)))
WaitInput
|
| | Datum:26.02.02 17:07 
(rgh-soft@t-online.de) | |
Das ist wohl das kürzeste:
declare v1%, v2%, v3%, v4%
V1% = 650
V2% = 500
V3% = 600
V4% = 550
CLS
Print "Ich bin die Größte: ";@If(@If(V1% > v2%,V1%,V2%) > @IF(V3% > V4%,V3%,V4%), \
@If(V1% > v2%,V1%,V2%),@IF(V3% > V4%,V3%,V4%))
WaitInput
End
Gruß
Roland
|
| | Datum:26.02.02 17:48 
(Nevada@online.de) | |
Hallo Jörg, Hallo Roland,
Beides prima Lösungen. Bei Roland's Verschachtelung blick ich zwar noch nicht so ganz durch, aber das werde ich mir gleich mal genauer ansehen.
Auf jeden Fall vielen Dank an Euch beide!
Tschuessi,
Dennis
|
| | Datum:27.02.02 06:40 
| |
Oder als Procedure mit einer Public-Variablen ... falls es
mehr Zahlen werden ...
Declare i_Public%
Proc GrossZahl
Parameters i_Zahl%
If i_Zahl% > i_Public%
i_Public% = i_Zahl%
EndIf
EndProc
GrossZahl V1%
GrossZahl V2%
GrossZahl V3%
GrossZahl V4%
Print i_Public%
|
| | Datum: 28.02.02 00:13 
(mail@stschnell.de) | |
Oder als Procedure mit einem Array:
'*Declare Variables*************************
Declare Array#
Dim Array#, 8
Declare Max%
'*Procedure Maximum*************************
Proc Max
Declare Result%
WhileLoop 8
Result% = @Byte(Array#, &Loop - 1)
If Max% < Result%
Max% = Result%
EndIf
EndWhile
EndProc
'*Main**************************************
Randomize
WhileLoop 8
Byte Array#, &Loop - 1 = @Rnd(255)
EndWhile
Clear Max%
Max
Print Max%
WaitKey
Print
WhileLoop 8
Print @Byte(Array#, &Loop -1)
EndWhile
WaitKey
Dispose Array#
'*End***************************************
End
Viel Erfolg
Stefan Schnell
|
|
|