program LeerReal(input,output); { Lee un n'umero real del teclado car'acter a car'acter. El n'umero deber'a tener, al menos un d'igito antes del punto, un punto y, al menos, otro d'igito detr'as del punto. Opcionalmente podr'a tener un signo (+/-)} var numero, signo, parteDecimal: real; valorDigito: 0..9; letra: char ; begin read(letra); while (letra=' ') do read(letra); if (letra='+') then begin signo:= 1.0; read(letra) end else if (letra='-') then begin signo:= -1.0; read(letra) end else signo:= 1.0; numero:=0.0; parteDecimal:= 1.0; if (letra >='0') AND (letra<='9') then begin while (letra >='0') AND (letra<='9') do begin valorDigito:= ord(letra) - ord('0'); numero:= numero*10.0 + valorDigito; read(letra) end; if (letra='.') then begin read(letra); if (letra >='0') AND (letra<='9') then begin while (letra >= '0') AND (letra<= '9') do begin valorDigito:= ord(letra) - ord('0'); parteDecimal:= parteDecimal / 10.0; numero:= numero+ valorDigito*parteDecimal; read(letra) end; write('El numero leido es: '); writeln(numero*signo) end else writeln('Un numero real debe tener parte decimal') end else writeln('Un numero real debe tener un punto') end else writeln('Un numero real debe empezar por un digito o un signo seguido de un digito'); end.