Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   edits sortier darstellen? (https://www.delphipraxis.net/175565-edits-sortier-darstellen.html)

p80286 1. Jul 2013 15:12

AW: edits sortier darstellen?
 
Also möchtest Du so etwas:

22,44,12,28,85,67 => 12,22,44,28,85,67

?

Dann nimm eine Liste, trage die Werte ein, suchen den kleinsten Eintrag, gib ihn aus, entferne ihn aus der Liste, gib die restlichen Listeninhalte aus.

Gruß
K-H

Foxi1896 1. Jul 2013 15:12

AW: edits sortier darstellen?
 
nein ich möchte nur den kleinesten Wert heraussuchen. Und von dort die Werte anzeigen lassen.

also:

6 / 3 / 1 / 4 / 11 / 14 und das dann angefangen bei 1 => 1 / 4 / 11 / 14 / 6 / 3

DeddyH 1. Jul 2013 15:14

AW: edits sortier darstellen?
 
Auch kein Problem: Liste erstellen, Werte eintragen, Minimum ermitteln und dessen Index merken, ab diesem Index alle Werte ausgeben, wenn Index > 0, dann ab 0 bis ausschließlich Index alle restlichen Werte ausgeben.

baumina 1. Jul 2013 15:23

AW: edits sortier darstellen?
 
Es gibt im Delphi eine Funktion Namens MinValue.

Foxi1896 1. Jul 2013 15:25

AW: edits sortier darstellen?
 
ähh ok. (<- Für Angänger bitte)

also ich erstelle eine Listbox.
und wie bekomm ich die dann da nochmal rein? listbox1.add(Edit1); geht irgendwie nicht

und wenn ich sie dann drin habe muss ich mit Min(....

DeddyH 1. Jul 2013 15:27

AW: edits sortier darstellen?
 
Ich habe Liste gesagt, nicht ListBox. Statt einer Liste kannst Du aber auch ein Array nehmen.

Foxi1896 1. Jul 2013 15:31

AW: edits sortier darstellen?
 
ähm kann es sein das (*räusper* benutze lazarus) keine Liste gibt?

baumina 1. Jul 2013 15:33

AW: edits sortier darstellen?
 
Hier mal ein kleiner Test:

Delphi-Quellcode:
uses Math;

....

ShowMessage(FloatToStr(MinValue([12, 15, 16, 10, 12.5, 13.1, 18])));
Liefert Ergebnis : 10

sx2008 1. Jul 2013 15:34

AW: edits sortier darstellen?
 
Du musst noch weiter zurück zum Anfang und erklären was das Ganze eigentlich soll.
Bislang lässt sich nur erkennen dass du mehrere Flieskommazahlen in Edit-Felder hast und diese auf unlogische Art und Weise umsortieren willst.

Allein schon die Tatsache, dass du für mehrere gleich wichtige Zahlen jeweils ein eigenes Editfeld benützt ist eigentlich schon unlogisch.
Es widerspricht der normalen Denkweise eines Programmierers.
Wenn man einen Sortieralgorithmus anwendet, dann ist es egal wie viele Dinge man sortiert.
Ob 10, 100 oder 1000 - der Sortieralgorithmus (üblicherweise Quicksort) bleibt gleich.
Da aber die Anzahl der zu sortierenden Elemente offen ist, ist es für uns unverständlich warum die Daten in Editfeldern vorliegen.

DeddyH 1. Jul 2013 15:36

AW: edits sortier darstellen?
 
Schön, was soll man aber damit nun anfangen? Ich habe das eben Gesagte einmal grob skizziert (wieder ungetestet):
Delphi-Quellcode:
var
  (* Array mit 10 ganzen Zahlen *)
  Arr: array[1..10] of integer;
  (* Variable für die kleinste Zahl im Array *)
  Minimum: integer;
  (* Variable für den Index der kleinsten Zahl innerhalb des Array *)
  IndexOfMinimum: integer;
  (* Laufvariable für die Schleife *)
  i: integer;
begin
  (* Initial setzen wir Minimum sowie dessen Index auf das erste Element im Array *)
  Minimum := Arr[Low(Arr)];
  IndexOfMinimum := Low(Arr);
  (* Nun den Rest des Array durchgehen, vergleichen und Variablen ggf. anpassen *)
  for i := IndexOfMinimum + 1 to High(Arr) do
    if Arr[i] < Minimum then
      begin
        Minimum := Arr[i];
        IndexOfMinimum := i;
      end;
end;
Danach solltest Du wissen, an welcher Stelle im Array die kleinste Zahl steht. Nun musst Du nur noch in maximal 2 Schleifen die Werte wieder ausgeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr.
Seite 2 von 4     12 34      

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