![]() |
Re: Listbox
Achtung: Pseudocode:
Delphi-Quellcode:
Am Ende hat i den Index des grössten Elementes in der Liste. Ist aber ungetestet.
var
i: integer; vergleichswert: integer; begin vergleichswert := 0; for i := 0 to liste.Items.Count - 1 do begin if ( StrToInt(liste.Items[i]) > StrToInt(liste.Items[vergleichswert]) ) then begin // grösseren Wert gefunden: Vergleichswert := i; end; end; end; |
Re: Listbox
Wenn ich den Code von Phoenix etwas ausbessern darf:
Delphi-Quellcode:
-> »Am Ende hat vergleichswert den Index des grössten Elementes in der Liste.«
var
i: integer; vergleichswert: integer; begin vergleichswert := 0; for i := 1 to liste.Items.Count - 1 do begin if ( StrToInt(liste.Items[i]) > StrToInt(liste.Items[vergleichswert]) ) then begin // grösseren Wert gefunden: vergleichswert := i; end; end; end; for i := 1 to..., weil StrToInt(liste.Items[0]) > StrToInt(liste.Items[0]) nie stimmen kann -> unnötig bei 0 zu beginnen LG, ich |
Re: Listbox
also ich hab das jetzt ausprobiert und er zeigt mir immer noch nicht den größten wert an
Delphi-Quellcode:
und wenn ich i:=1 setze geht es auch nicht
begin
vergleichswert := 0; for i := 0 to isbliste.Items.Count - 1 do begin if ( StrToInt(isbliste.Items[i]) > StrToInt(isbliste.Items[vergleichswert])) then begin Vergleichswert := i; edtText.Text := FloatToStr (Vergleichswert); end; end; end; wenn ich die werte 4,5,6 und 9 habe gibt er mir als größter wert die 3 aus das versteh ich nicht kann mir vielleicht jemand helfen |
Re: Listbox
Hi,
du hast nur den Index ausgegeben und nicht den Wert
Delphi-Quellcode:
Grüße vom marabu
begin
vergleichswert := 0; for i := 0 to isbliste.Items.Count - 1 do begin if ( StrToInt(isbliste.Items[i]) > StrToInt(isbliste.Items[vergleichswert])) then begin Vergleichswert := i; edtText.Text := isbliste.Items[vergleichswert]; end; end; end; |
Re: Listbox
Hallo,
Die Variable "Vergleichswert" beinhaltet nicht die größte Zahl, sondern den Index der größten Zahl. Du bekommst also das Ergebnis mit isbliste.Items[Vergleichswert]. Hier mal das Ganze als Funktion:
Delphi-Quellcode:
In der ListBox dürfen aber nur Zahlen stehen, sonst gibt's einen Fehler.
function GetMax(LB: TListBox): Integer;
var i: Integer; Max: Integer; begin if LB.Items.Count = 0 then // Listbox ist leer -> -1 begin Result := -1; Exit; end; Max := 0; for i := 1 to LB.Items.Count - 1 do if (StrToInt(LB.Items[i]) > StrToInt(LB.Items[Max])) then Max := i; Result := StrToInt(LB[Max]); end; Gruß xaromz |
Re: Listbox
so hab es jetzt hin bekommen mit dem maximal und dem minimal wert jetzt versuch ich nur noch den mittel wert und dann hab ich es auch endlich fertig
danke für eure hilfe ohne euch hätte ich es nciht hin bekommen also an alle die mir geholfen habe danke |
Re: Listbox
MIttelwert? Wo is das Problem, die rechnest alle Zahlen (Listbox.Items) zusammen und teilst sie dann durch die Anzahl dieser.
|
Re: Listbox
ja und das muss ich jetzt noch raus finden wie ich das in eine shcleife schreibe
|
Re: Listbox
danke für eure hilfe hab jetzt auch endlich den maximalwert
viellen danke für eure schnelle hilfe |
Re: Listbox
Delphi-Quellcode:
Obwohl, mir fällt grad ein das wäre ja der Durchschnitt und nicht der Mittelwert. :shock:
var
i, value : Integer; for i := 0 to Listbox1.Items.Count-1 do value := value + StrToInt(Listbox1.Items[i]) value := value mod Listbox1.Items.Count-1; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz