Zitat von
mimi:
Ich habe die Frage so verstanden der Erste Eintrag der einen ungeraden Wert Enthält das davon der Index gebraucht wird.
Wenn man es so sieht, dann braucht man aber die ersten n Index-Werte und nicht nur den ersten.
Zitat von
mimi:
Delphi-Quellcode:
function findOdd(lb:TListbox):Integer;
var
i,k,z:Integer;
begin
z:=-1;
for i:=0 to 400 do begin
k:=StrToint(lb.items[i]);
if odd(k) then begin z:=i; break;
end;
result:=z;
end;
Fix
400? Wofür gibt es Items.Count
(Und k und z kann man sich auch sparen [jaja, da kommt wieder das Microcontroller-Programmier-Verhalten durch
])
Außerdem hast du ein
begin geschrieben, aber kein
end dazu
Mal etwas optimiert:
Delphi-Quellcode:
function FindFirstOdd(AList: TListBox): Integer;
begin
For Result := 0 to AList.Items.Count - 1 do
If Odd(StrToIntDef(AList.Items[Result], 0)) then Exit;
Result := -1;
end;
Allerdings, will man wirklich die ersten n Ungraden aus der Liste, müsste man entweder einen Startwert übergeben und die Funktion in einer Schleife aufrufen, oder die Funktion komplett umschreiben ... je nach gewünschter Verwendung ^^