PROCEDURE EscribeReal (x: REAL; d: INTEGER); VAR Partentera : INTEGER; I : INTEGER; Mantisa : REAL; BEGIN Partentera := TRUNC (x); WriteInt (Partentera, 1); WriteString (","); Mantisa := x - FLOAT (Partentera); FOR I := 1 TO d DO Mantisa := Mantisa * 10.0; WriteInt (TRUNC (Mantisa), 1); Mantisa := Mantisa - FLOAT ( TRUNC (Mantisa)) END; END EscribeReal; MODULE EscribeReal; FROM InOut IMPORT WriteString, WriteInt, WriteLn, ReadInt; FROM RealInOut IMPORT WriteReal, ReadReal; VAR Numero : REAL; Partentera : INTEGER; I, Decimales : INTEGER; Mantisa : REAL; BEGIN WriteLn; WriteString (" Este programa pasa los numeros reales a notacion con "); WriteLn; WriteString (" un numero de decimales especificados por el ususario. "); WriteLn; WriteLn; WriteString (" Introduzca el numero Real que desea convertir : "); ReadReal (Numero); WriteLn; WriteString (" Introduzca el numero de decimales para el numero anterior : "); ReadInt (Decimales); WriteLn; WriteLn; WriteString (" El numero dado bajo sus especificacion sera : "); IF Numero < 0.0 THEN Partentera := TRUNC (ABS (Numero)); WriteString (" -"); WriteInt (Partentera, 1); WriteString (","); Mantisa := ABS (Numero) - FLOAT (Partentera); ELSE Partentera := TRUNC (Numero); WriteInt (Partentera, 1); WriteString (","); Mantisa := Numero - FLOAT (Partentera); END; FOR I := 1 TO Decimales DO Mantisa := Mantisa * 10.0; WriteInt (TRUNC (Mantisa), 1); Mantisa := Mantisa - FLOAT ( TRUNC (Mantisa)) END; WriteLn; END EscribeReal. por VICENTE SAN MILLÁN CIUDAD