Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249141 (10577)
  Suchen
 Zurück zur Übersicht
 AutorThema: Größetn Wert ermitteln
Dennis
Datum:26.02.02 11:32 Antwortenals Email verschicken (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



Jörg Sellmeyer
Datum:26.02.02 12:26 Antwortenals Email verschicken (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



Roland G. Hülsmann
Datum:26.02.02 17:07 Antwortenals Email verschicken (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



Denis
Datum:26.02.02 17:48 Antwortenals Email verschicken (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




Jürgen K.
Datum:27.02.02 06:40 Antwortenals Email verschicken  


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%




Stefan Schnell
Datum: 28.02.02 00:13 Antwortenals Email verschicken (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


 Zurück zur Übersicht