ayuda con pascal!!

Hola!
Estoy un pelin desesperado :p . Tengo hechos 2 de los 3 programas que tengo que hacer pero el tercero no me sale.Os explico:
Me piden un programa que contenga estos 3 subprogramas:
1.Implementar un subprograma tratarLinea que pida al usuario una cadena de caracteres y escriba el numero total de palabras que aparecen en la linea(Las palabras son secuencias de caracteres separados por uno o mas espacios).
2.Crea un subprograma distanciaMedia que procese una secuencia de caracteres pedida al usuario.El subprograma mostrara la distancia media entre cada digito de la entrada(Ej:3gh64r9mt, el resultado debe ser 2 ya que la dist. entre 3 y 6 es 3,la dist. entre 6 y 4 es 1 y la dist. entre 4 y 9 es 2, con lo cual la media es (3+1+2)/3=2).
3.Escribir un subprograma contarElementos que pida al usuario una secuencia de caracteres y la procese de tal forma que presente un informe de cuantos digitos, cuantas letras y cuantos caracteres especiales(`*`,`$`...)se han introducido.

Sobre todo me interesa el 2 porque es del que menos idea tengo.
Gracias de antemano y perdon ya que se que es un follon.
Algo asi:

function distanciaMedia(tabla:tarray;N:integer):real;
var primero,suma,numeros:integer;
begin
suma:=0;
numeros:=0;
primero:=-1;
for i:=1 to N do
begin
if esnum(tabla[i]) and (primero==-1) then primero:=i
else if esnum(tabla[i])
then
begin
numeros:=numeros+1;
suma:=suma+(i-primero);
primero:=-1
end
end
distanciaMedia:=suma/numeros;
end;

Donde esnum es una función que te tienes que crear para ver si tabla[i] es caracter o número (devuelve un booleano), estoy un poco oxidado en pascal y no se si tiene algo así (puede que si, mira la ayuda), si no toca crearla.
Lo que te piden es muy simple, lo puedes realizar todo utilizando la función POS.

En la segunda basta con ir sumando las distancias entre dígitos y luego dividirla por el número de distancias que has calculado. O sea, una variable para ir sumando las distancias que vas calculando, y una segunda variable para ir guardando el número de distancias que has calculado. No se si eso es lo que pedías.

salu2
me lo podriais poner sin arrays? esque todavia no he llegado a darlos y seria sospechoso hacerlo con arrays sin haberlos dado.
Gracias
3 respuestas