Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Anzahl verschiedener Werte im Array ermitteln

  Alt 19. Jun 2013, 08:58
Also mit zwei Schleifen geht das so:
Delphi-Quellcode:
Var
  i,j : Integer;
  SchonVorhanden : Boolean;

begin
  AnzahlUnterschiedlicherWerte := 0;

  For i:=1 to AnzahlDerEingaben do begin
    SchonVorhanden := False;
    For j:=1 to i-1 do
      if Eingabe[i]=Eingabe[j] then SchonVorhanden := True;
    If not SchonVorhanden then inc(AnzahlUnterschiedlicherWerte);
  end;
end;
Optimieren kann man das noch, indem man die innere Schleife verlässt, sobald der Wert gefunden wurde. Hübscher wird das außerdem, wenn man die innere Schleife in eine kleine Funktion packt:

Delphi-Quellcode:
Var
  i : Integer;

  Function _SchonVorhanden (Wert : String) : Boolean;
  Var
    j : Integer;
  begin
    For j:=1 to i-1 do
      if Wert=Eingabe[j] then begin result := true: exit end;
    result := false
  end;

begin
  AnzahlUnterschiedlicherWerte := 0;
  For i:=1 to AnzahlDerEingaben do
    If not _SchonVorhanden(Eingabe[i]) then
      inc(AnzahlUnterschiedlicherWerte);
end;
So, und das ist jetzt schön lesbar.
  Mit Zitat antworten Zitat