Lo siento es que estoy algo oxidado en pascal.
para valores reales deberias colocar en el procedimiento str el numero de enteros y decimales y el primer digito empieza en 1 y no en cero, de tal forma que el ejemplo anterior quedaria
var
num: real;
s: string;
write ('Numero: ');
readln (num);
str (num:0:2 , s );
write ( 'el primer digito es ' + s[1] );
-----------------------------------------------------------------------------------
str (num:0:2 , s );
El :0:2 siginifica que no importa el numero de enteros y que solo convierta dos decimales.