Bueno, como no se que nivel de experiencia tienes te explicaré como si fueras nuevo, y primero que nada no te pienso hacer todo el trabajo, la idea es que tu mismo aprendas y hagas tu proyecto, pero si puedo ayudarte en lo que creo podría darte más problemas.
Todo buen programador debe saber que tipo de dato utilizar dependiendo del caso, la idea es consumir el menor espacio de memoria posible para que el programa corra más fluido, aunque se puede decir que para la rapidez de las maquinas de ahora es casi imperceptible trabajando con pascal pero es lo más recomendable.
Basado en esto y en el programa planteado te recomiendo que para los datos más grandes utilices
LongInt en lugar de
Integer para que tenga un rango mayor (integer acepta maximo 5 cifras, longint acepta hasta 10), y para los datos más pequeños puedes utilizar
byte (que abarca de 0 a 255) como en el caso de obtener cifras o sumar cifras que no guardaran valores muy altos.
Otra cosa importante, ya que trabajamos con valores numéricos, en lugar de cadenas, debes utilizar divisiones en base a 10, "mod 10" y "div 10" segun el caso para obtener o quitar cifras respectivamente.
OK si no entendiste mucho lo de las diviciones aqui te va el codigo para obtener una cifra (contando de izquierda a derecha "
<-") y sumar cifras:
Function SacarCifra(n:Longint;c:Byte):Byte;
var i:byte;
begin
if (c<0) or (c>10) or (n<0) then {Si algun valor es invalido}
begin
SacarCifra:=0;{se retorna 0}
exit
end;
for i:=c-1 downto 1 do n:=n div 10;{Elimina cifra por cifra}
n:=n mod 10; {Luego ignora las demas cifras sobrantes}
SacarCifra:=byte(n){convierte manualmente el valor en "byte"}
end;
Function SumarCifras(n:Longint):Byte;{Sin utilizar "Sacarcifra"}
var suma:byte;
begin
if n<0 then {Si el valor no es valido}
begin
SumarCifra:=0;{se retorna 0}
exit
end;
suma:=0;
while n>0 do {Mientras el valor sea positivo}
begin
suma:=suma + (n mod 10);{se suma la primera cifra}
n:=n div 10;{y se elimina para continuar con la siguiente}
end;
SacarCifra:=byte(suma)
end;
Ya con esto puedes resolver los casos 3, 5, 9 y 10, el mismo principio lo puedes utilizar para obtener los demás, solo usa tu imaginación, por ejemplo para el caso 4 que son 2 cifras utiliza: 10*10 = 100, es decir "mod 100", ya no te doy mas pistas has lo que puedas tu solo y si de verdad necesitas ayuda estamos para servirte.
Bye