Что тут не правильно??? Смысл задачи простой. Есть строка символов. нужно проверить ее на наличие множества символов и определить есть ли символы не входящие в множество.
function isisonum(a:string):integer;
var
   i,e:integer;
  begin
    e:=0;
    for i:=0 to length(a)-1 do
     begin
            if  not (a[i] in ['0'..'9']) then
               inc(e);
     end;
     isisonum:=e;
end;           
showmessage(inttostr(isisonum('50043908a8210d0k421')));
неправильно отрабатывается вхождение '  if  not (a[i] in ['0'..'9']) then'
			
		

