Machen wir doch mal ein kleines Beispielprogramm:
Code: Alles auswählen
var
s: String;
begin
s := 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
if numbers(s) then
WriteLn('numbers behauptet, dass s mindestens eine ziffer enthaelt')
else
WriteLn('numbers behauptet, dass s keine ziffer enthaelt');
ReadLn;
end.
Was mag da für ein Ergebnis herauskommen?
Code: Alles auswählen
numbers behauptet, dass s mindestens eine ziffer enthaelt
Woran liegt das? In Pascal ist ein String nicht Null-basiert, d.h. der erste Buchstabe steht in s[1]. In s[0] hingegen wird (in einigen Fällen) die Länge des Strings abgelegt. In diesem Falle ist er 52 Zeichen lange, es steht als 52 in s[0]. Das wiederum entspricht dem ASCII-Zeichen '4' und das findet deine Funktion, freut sich darüber und behauptet eine Ziffer gefunden zu haben. Du müsstet also bei 1 starten in deiner Schleife.
Bei der Gelegenheit kannst du die Funktion noch umbenennen, damit klar ist was sie tut.
ContainsNumbers wäre zum Beispiele eine gute Idee.