AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Die Verschachtelung des Max-Befehls in ShowMessage liefert mir den höchsten Wert, aber nicht den Variablennamen.
Ich habe das jetzt mit mehreren If-Schleifen gelöst, die nicht nur den höchsten Wert abfragen, sondern auch in einer temporären Variable den Variablenamen speichern. |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Sofern du die Grundlagen von Delphi beherrscht und nicht gerade am Lernen und Üben (zB hiermit) bist, dann könntest du es mit einem Array ganz bequem machen:
Delphi-Quellcode:
var
i: Integer; Vars: Array[1..5] Integer; HighestValue : Integer; begin Randomize; for i := 1 to 5 do Vars[i] :=Random(99); HighestValue:= max(vars[1], max(vars[2], max(vars[3], max(vars[4], vars[5])))); i := 1; while vars[i] <> HighestValue do inc(i); ShowMessage('Die höchste Variable hat den Wert '+IntToStr(HighestValue) + ' (= var' + IntToStr(i)+')'); end; |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Zitat:
Maxima (analog Minima) ermittle ich einfach so:
Delphi-Quellcode:
max:=intervariable[1]
for laufvariable:=2 to 5 do if intervariable[laufvariable]>max then max:=intervariable[laufvariable] |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
So finde ich es flexibler (ungetestet):
Delphi-Quellcode:
[edit] Wobei der Hinweis von Gammatester natürlich hier auch außer Acht gelassen wird. Wenn man alle Vorkommen ermitteln will, kommt man um ein Result-Array o.ä. wohl kaum herum. [/edit]
function MaxIntValueIndex(const Values: array of integer; out MaxValue: integer): integer;
var i: integer; begin if Length(Values) < 1 then raise Exception.Create('Keine Daten übergeben'); Result := Low(Values); MaxValue := Values[Result]; for i := Low(Values) + 1 to High(Values) do if Values[i] > MaxValue then begin Result := i; MaxValue := Values[Result]; end; end; |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Wobei dein OpenArray nicht unbedingt ein externes Variablen-Array benötigt. :angle:
Delphi-Quellcode:
ValueIndex := MaxIntValueIndex([Var1, Var2, Var3, Var4, Var5], MaxValue);
ShowMessage(Format('Die (erste) größte Variable ist Var%d, mit %d', [ValueIndex + 1, MaxValue])); |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Jungs, bremst euch selber mal. Für mich sieht das eher aus wie eine Schulaufgabe. Man sollte den Wissenstand und das Unterrichtsziel berücksichtigen. Allerdings wozu der Variablenname gebraucht wird, weiß ich auch nicht.
|
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Zitat:
Der Frager kann ja das extrahieren (bzw. entnehmen), was er versteht, oder eben nachfragen. Erstaunlich ist doch sicher nicht nur für ihn, daß eine solch simple Angelegenheit auf so unterschiedliche Weise gelöst werden kann. |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Ungefragte Stimme aus dem Seitenaus:
Ich bin mir gerad enicht ganz sicher, ob der Frage die Trennung zwischen Code und compiliertem Programm verinnerlicht hat. Er hat 5 verschiedene Variablen, denen er einen Random-Wert zuweist. der Compiler macht daraus aber 5 Speicherstellen, die mit seiner Variablenbenennung überhaupt nichts zu tun hat. Diese existieren nur in seinem Code und sind für die bessere Lesbarkeit in Hochsprachen möglich. Entweder geht man den Weg über ein Array oder aber man erzeugt sich einen Record, in dem man auch den Namen für jedes Objekt definieren kann. Jetzt mal ohne Delphi ins blaue geschrieben:
Delphi-Quellcode:
Auch wenn hier eine Schleife mit von
Array[1] := Random (99);
Array[2] := Random (99);
Delphi-Quellcode:
besser wäre oder man macht das ganze per Record
For x= 0 to High (MaxArray) do
Delphi-Quellcode:
oder so ähnlich...
type
TArray = record Name: string; Vaue: Double; end; Var MyArray : Array of tArray; Begin SetLength (MyArray, 2); MyArray.Name[1] := 'Gummibaum'; MyArray.Value[1] := Random (99); MyArray.Name[2] := 'Gemüsebeet'; MyArray.Value[2] := Random (99); {...} end; Jan |
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Zitat:
Zitat:
Zitat:
|
AW: Höchsten Wert von 5 Integer-Variablen bestimmen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz