Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Die größte / Zweitgrößte von 4 Variablen bestimmen (https://www.delphipraxis.net/70108-die-groesste-zweitgroesste-von-4-variablen-bestimmen.html)

jonask 25. Mai 2006 00:17


Die größte / Zweitgrößte von 4 Variablen bestimmen
 
Hallo,
hoffe bin hier richtig. Habe eine Frage undzwar:

Ich habe 4 Integer Variablen, die ich vergleichen möchte und schaun welche die Größte bzw Zweitgrößte ist, oder welche 2 Variablen größer als die anderen 2 Variablen sind.

Allerdings wird es doch sicherlich eine andere Lösung geben außer etliche IF-Anweisungen zu schreiben oder?

Gruß

easteregg 25. Mai 2006 01:25

Re: Die größte / Zweitgrößte von 4 Variablen bestimmen
 
schau dir mal die sortieralgorythmen an -> bubblesort! ist der einfachste, und ohne unnötige if schleifen.

markusj 25. Mai 2006 01:35

Re: Die größte / Zweitgrößte von 4 Variablen bestimmen
 
Ein Array, zwei for-schleichen, einmal if then zwischendrin und eine integervariable als zwischenspeicher für den größten wert ...
Ein wenig nachdenken ... et voilà ...

mfG

Markus

Vjay 25. Mai 2006 01:39

Re: Die größte / Zweitgrößte von 4 Variablen bestimmen
 
Naja, die Math-Unit einbinden und dann:

Größte: max( max(i1, i2), max(i3, i4));
Zweitgrößte: min( max(i1, i2), max(i3, i4));

etc. kommt zwar auch auf IFs heraus, aber das kommt es ja in jedem Fall.

Hawkeye219 25. Mai 2006 01:49

Re: Die größte / Zweitgrößte von 4 Variablen bestimmen
 
@Vjay

so einfach ist es leider nicht: i1=10, i2=8, i3=4, i4=3

//Edit: Hier ist eine mögliche Lösung:

Delphi-Quellcode:
procedure Sort (a, b, c, d: Integer; var nr1, nr2, nr3, nr4: Integer);
  var tmp, tmp1, tmp2: Integer;
begin
  // a und b sortieren
  if (a < b) then
    begin
      tmp := a; a := b; b := tmp;
    end;

  // c und d sortieren
  if (c < d) then
    begin
      tmp := c; c := d; d := tmp;
    end;

  // größte und kleinste Zahl bestimmen
  nr1 := Max(a, c);
  nr4 := Min(b, d);

  // verbleibende Zahlen ermitteln
  tmp1 := Min(a, c); // oder a + c - nr1
  tmp2 := Min(b, d); // oder b + d - nr4

  // zweit- und drittgrößte Zahl ermitteln
  nr2 := Max(tmp1, tmp2);
  nr3 := Min(tmp1, tmp2);
end;
Gruß Hawkeye

jonask 25. Mai 2006 10:10

Re: Die größte / Zweitgrößte von 4 Variablen bestimmen
 
danke für die antworten hat geklappt

Vjay 2. Jun 2006 09:34

Re: Die größte / Zweitgrößte von 4 Variablen bestimmen
 
@ Hawkeye219
Stimmt, mal wieder nicht zuende gedacht!
Kann ja garnicht funktionieren, erinnert mich an das US-Wahlsystem :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 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