Thema: Gerade Zahl

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

AW: Gerade Zahl

  Alt 23. Nov 2012, 20:09
Ein "Problem":
Nach IF-THEN, FOR-DO, WHILE-DO und Co. wird immer nur ein "Befehl" behandelt.
Oder eben ein ganzer Block (BEGIN-END)

Oder man kann auch mehrere IFs via ELSE verbinden.

Delphi-Quellcode:
var
  a, i, n: Integer;
begin
  a := 1;
  for i := Memo1.Lines.Count - 1 downto 0 do // oder eben mit Pred ... was man halt mehr mag
    if TryStrToInt(Memo1.Lines.Strings[i], n) then
      if not Odd(n) then
        Memo1.Lines.Delete(i);
      else if n = 1 then
        Memo1.Lines.Delete(i);
      else // es kann nur noch "if n <> 1 then" sein
        begin
          a := n div 2; // man kann gern auch mit "a := n;" anfangen
          repeat
            Dec(a); // a := a - 1;
          until (n mod a = 0) or (a <= 1); // auch wenn es keine Primzahl ist, soll irgendwann abgebrochen werden
          if a > 1 then // oder "if n mod a <> 0 then" , aber das Andere ist kürzer
            Memo1.Lines.Delete(i);
        end;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat