AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Höchsten Wert von 5 Integer-Variablen bestimmen

Höchsten Wert von 5 Integer-Variablen bestimmen

Ein Thema von devidespe · begonnen am 19. Jan 2012 · letzter Beitrag vom 20. Jan 2012
Antwort Antwort
Seite 2 von 3     12 3   
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
433 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 19. Jan 2012, 18:28
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.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#12

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 19. Jan 2012, 18:34
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;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#13

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 19. Jan 2012, 19:03
Delphi-Quellcode:

uses (...), math;

(...)

  ShowMessage(IntToStr(max(var1, max(var2, max(var3, max(var4, var5))))));
somit erhältst du den größten Wert am elegantesten mMn!
Das riecht aber verdammt nach Rekursion, die auch eleganter realisiert (implementiert) werden kann.

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]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.459 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 19. Jan 2012, 19:30
So finde ich es flexibler (ungetestet):
Delphi-Quellcode:
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;
[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]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (19. Jan 2012 um 19:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.504 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 19. Jan 2012, 21:30
Wobei dein OpenArray nicht unbedingt ein externes Variablen-Array benötigt.
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]));
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 19. Jan 2012, 22:48
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#17

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 20. Jan 2012, 00:18
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.
Luckie, freu' Dich doch, wenn wir halbwegs zur Hochform auflaufen (ein Moderator ist doch auch immer ein wenig ein Erwachsenenpädagoge).

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.
  Mit Zitat antworten Zitat
BoolString

Registriert seit: 2. Feb 2009
Ort: Varel
70 Beiträge
 
RAD-Studio 2009 Pro
 
#18

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 20. Jan 2012, 00:52
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:
Array[1] := Random (99);
Array[2] := Random (99);
Auch wenn hier eine Schleife mit von For x= 0 to High (MaxArray) do besser wäre oder man macht das ganze per Record

Delphi-Quellcode:
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;
oder so ähnlich...

Jan
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#19

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 20. Jan 2012, 10:07
Allerdings wozu der Variablenname gebraucht wird, weiß ich auch nicht.
Versteh einer die Lehrer

Der Frager kann ja das extrahieren (bzw. entnehmen), was er versteht, oder eben nachfragen.
Zumal der TE schon eine funktionierende Lösung (die für eine Lehrer völlig ausreichen sein sollte) hat und nach einer eleganteren Lösung gefragt hat.
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.459 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Höchsten Wert von 5 Integer-Variablen bestimmen

  Alt 20. Jan 2012, 10:28
Ich habe das jetzt mit mehreren If-Schleifen gelöst,...
Das glaube ich nicht, Tim
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf