AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sortierung;

Ein Thema von Mokus · begonnen am 24. Sep 2013 · letzter Beitrag vom 26. Sep 2013
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Sorterung;

  Alt 24. Sep 2013, 16:56
Wenn du nicht die Objects der Stringlist nutzen willst (der Thread von vorhin, das warst du doch oder?) kannst du dir auch eine eigene Liste schreiben.

Zu Übungszwecken kann man das schön mit dyn. Arrays machen.

Delphi-Quellcode:
  TWord = record
    Value: string;
    KommtWieOftVor: integer;
    UndSonstNochWas: integer;
  end;

  TWordList = class
  private
    FItems: array of TWord;
  private
    function Get(Index: integer): TWord;
    procedure Put(Index: integer; const Value: TWord);
  public
    function Add(const Value: TWord): integer;
    procedure Insert(const Index: integer; const Value: TWord);
    procedure Delete(const Index: integer);
    function IndexOf(const Value: TWord): integer;
    procedure Assign(Value: TWordList);
    procedure Sort;
    property Items[Index: integer]: TWord read Get write Put; default;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Sorterung;

  Alt 26. Sep 2013, 07:31
Danke für die netten Hilfen;

meine sortierungsklasse ist nun so aufgebaut worden.

Delphi-Quellcode:
unit sortieren;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, hauefigkeit_zaehlen;

Type
  TForm3 = class
    procedure sortieren(a_zaehlen: array of integer; st_list2: TStringlist);
  end;

var
  s_ausgabe: string;

implementation

procedure TForm3.sortieren(a_zaehlen: Array of integer; st_list2: TStringlist);
var
  i: integer;
  x: integer;
  a: integer;
  i_hwert: integer;
  st_list3: TStringlist;
  i_hidx: integer;
  b_abbruch: boolean;

  st_list4: TStringlist;

begin

  // Listen erzeugen, wo ergibnisse abgespeichert werden
  st_list4 := TStringlist.Create;
  st_list3 := TStringlist.Create;

  // nach dem hösten wert im arra a_zaehlen suchen
  for x := 0 to length(a_zaehlen) do

  begin
    i_hidx := 0;
    i_hwert := 0;
    for a := 0 to length(a_zaehlen) - 1 do
    begin
      if i_hwert < a_zaehlen[a] then

      begin
        i_hwert := a_zaehlen[a];
        i_hidx := a;

      end;

    end;

    // Hösten wert + dazugehörige wort in listen übergeben
    st_list3.add(st_list2[i_hidx]);

    st_list4.add(inttostr(i_hwert));

    a_zaehlen[i_hidx] := 0; // momentan höhsten wert zurücksetzen

  end;
  // ausgabe für memofeld
  for i := 0 to st_list2.Count - 1 do
  begin
    s_ausgabe := s_ausgabe + #10#13 + 'Ihr Wort : "' + st_list3[i] + '" kam ' +
      st_list4[i] + ' mal vor.' + slinebreak;
  end;

  st_list3.free;

end;

end.
Ich weiß, ist nicht der schnellste Algorithmus, aber für das kleine Programm reicht das vollkommen aus.
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:50 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-2025 by Thomas Breitkreuz