hmmm ok das hab ich behobe aber die Schleifen werden nicht vollständig durchlaufen.
Habe zwei Editfelder, in denen ich VonZahl und BisZahl auslese.
die Schleife wird allerdings immer nur bis 9 durchlaufen egal wie hoch ich BisZahl setze.
Setze ich VonZahl höher als 10 dann werden immer nur ein bis zwei Zahlen eingetragen.
Hier nun der behobene Code
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| procedure TForm1.SetMyPrimtest(VonZahl, BisZahl: Integer); var i,k: Integer; FLAG: Boolean; begin
for I := VonZahl to BisZahl do begin
FLAG := TRUE;
if not odd(i) then begin
if i = 2 then Listbox3.Items.Add(IntToStr(i));
Listbox1.Items.Add(IntToStr(i)); FLAG := FALSE; end else begin
for k := 2 to TRUNC(i / 2) do begin
if (i mod k) = 0 then begin Listbox2.Items.Add(IntToStr(i)); FLAG := FALSE; EXIT; end;
end;
if i = 1 then begin Listbox2.Items.Add(IntToStr(i)); FLAG := FALSE; end;
if FLAG = TRUE then Listbox3.Items.Add(IntToStr(i));
end;
end;
end; |