Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: gleiche Zahlenfolgen im Array untersuchen

  Alt 5. Okt 2011, 15:55
Hallo hier mal als Denkansatz, so wie ich das Problem verstanden habe:
Array heißt bei mir das Hauptarray, das irgendwie übergeben wird oder global ist.
Tiefe, hier :=5 ist die maximale Ketten-Tiefe.

Edit: Statt der InListe-Funktion kann man auch eine Find-Funktion o.ä. der TStringList nehemn. Hab gerade kein Delphi, drum weiß ich nit, obs da was gab und wie das dann ggf. heißt.

Edit: Achja, hab vergessen die Ergebnisse auszugeben, die ja dann in den beiden Stringlisten stehen.

Delphi-Quellcode:
var:
  i, j, k, l :Integer;
  Tiefe : Integer;
  Kette : String
  Kettenliste:TStringlist;
  Anzahlliste:TStringlist;
function InListe(const KT : String):Boolean;
begin
  Result:=false;
  For l = 0 To Kettenliste.Count-1 do
    if Kettenliste[l]=Kette then Result:=true;
end
function Vorkommenszahl(const KT : String):Integer;
begin
  //Die Funktion ist mir aus dem Kopf zu kompliziert:
  //Kette in Elemente zerlegen, Anz. Elemente bestimmen
  //Elemente in DynArray speichern
  //Das "Hauptarray" Array durchgehen und in Schleifen mit den Elementen von DynArray vergleichen
  //Wenn passende Kette gefunden wird einen Counter hochgezählt
end
begin
Tiefe:=5;
Kettenliste:=TStringlist.Create(nil);
Anzahlliste:=TStringlist.Create(nil);
For i:=0 To Array.Count-1 do
  begin
  For j:=0 To Tiefe-1 do
    begin
    Kette:='';
    For k = 0 to j do
      Kette:=Kette+IntToStr(Array[i+k])+';';
    if not InListe(Kette) then
      begin
      Kettenliste.Add(Kette);
      Anzahlliste.Add(IntToStr(Vorkommenzahl(Kette)))
      end;
    end;
  end;
end;
Ralph

Geändert von Jumpy ( 5. Okt 2011 um 16:02 Uhr)
  Mit Zitat antworten Zitat