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.