Noch eine Variante zur Denksportaufgabe:
Delphi-Quellcode:
function longestNumber(s : string) : word;
var
L1, L2, N: Word;
c: Char;
i: Integer;
begin
Result := 0;
L1 := 0;
L2 := 0;
N := 0;
for c in s do
begin
{Zeichen in Ziffern-Wert umwandeln}
i := Ord(c) - Ord('0');
if (i >= 0) and (i <= 9) then
begin
{c enthält eine Ziffer, an dieser Stelle eventuell Ergenisüberlauf prüfen}
N := N * 10 + i;
L2 := L2 + 1;
{Länge des Zwischenergebnis vergleichen und eventuell als Endergebnis übernehmen}
if L2 > L1 then
begin
Result := N;
L1 := L2;
end;
end
else
begin
{c enthält keine Ziffer}
N := 0;
L2 := 0;
end;
end;
end;