09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

B.4. Datos numéricos reales 493<br />

tivos, si<strong>en</strong>do para el tipo shortInt {−128, ..., 127}, mi<strong>en</strong>tras que el de longInt<br />

es {−214483648, ..., 2147483647}.<br />

El tipo shortInt ocupa un byte, el tipo integer ocupa 2 y el longInt 4<br />

bytes.<br />

Estos tipos son especialm<strong>en</strong>te útiles para realizar cálculos <strong>en</strong>teros con valores<br />

grandes, como el cálculo del factorial, para los que el tipo integer resulta muy<br />

limitado.<br />

A estos tipos numéricos se les pued<strong>en</strong> aplicar los mismos operadores y operaciones<br />

que al tipo <strong>en</strong>tero, e incluso se pued<strong>en</strong> asignar <strong>en</strong>tre sí siempre que los<br />

valores asignados estén compr<strong>en</strong>didos d<strong>en</strong>tro de los respectivos dominios.<br />

Existe un tercer tipo llamado comp que es un híbrido <strong>en</strong>tre <strong>en</strong>tero y real: se<br />

almac<strong>en</strong>a <strong>en</strong> la memoria como un <strong>en</strong>tero (<strong>en</strong> complem<strong>en</strong>to a dos), pero se escribe<br />

como un real (<strong>en</strong> notación ci<strong>en</strong>tífica). A pesar de su implem<strong>en</strong>tación como <strong>en</strong>tero<br />

no es un tipo ordinal. Dado que no se le pued<strong>en</strong> aplicar las operaciones de<br />

tipo <strong>en</strong>tero, lo consideraremos y utilizaremos como real. Se utiliza <strong>en</strong> aquellas<br />

aplicaciones que necesit<strong>en</strong> valores “grandes”, con precisión <strong>en</strong>tera, pero donde<br />

no haya que aplicar operaciones <strong>en</strong>teras.<br />

En Turbo <strong>Pascal</strong> la expresión n mod m se calcula como n - (n div m) *<br />

m y no produce error si m es negativo, mi<strong>en</strong>tras que <strong>en</strong> <strong>Pascal</strong> estándar no está<br />

definido si m es cero o negativo.<br />

B.4 Datos numéricos reales<br />

Turbo <strong>Pascal</strong> dispone de tres tipos de datos reales (codificados <strong>en</strong> punto<br />

flotante) que complem<strong>en</strong>tan al tipo estándar real, d<strong>en</strong>ominados single, double<br />

y ext<strong>en</strong>ded, además del ya com<strong>en</strong>tado comp. Sus difer<strong>en</strong>tes características se<br />

muestran <strong>en</strong> la sigui<strong>en</strong>te tabla:<br />

Tipo Dominio Cifras Ocupación<br />

significativas de memoria<br />

single {±1.5E − 45, ..., ±3.4E38} 7 u 8 4<br />

double {±5.05E − 324, ..., ±1.7E308} 15 ó 16 8<br />

ext<strong>en</strong>ded {±1.9E − 4951, ..., ±1.1E4932} 19 ó 20 10<br />

comp {−2 63 , ..., 2 63 − 1} 19 ó 20 8<br />

real {±2.9E − 39, ..., ±1.7E38} 11 ó 12 6<br />

Los tipos single y double cumpl<strong>en</strong> el estándar IEEE 754, que es el más<br />

utilizado <strong>en</strong> repres<strong>en</strong>tación <strong>en</strong> punto flotante, lo que los hace idóneos para el<br />

intercambio de datos reales con programas escritos <strong>en</strong> otros l<strong>en</strong>guajes. Es curioso<br />

que el tipo estándar real de Turbo <strong>Pascal</strong> no sea estándar <strong>en</strong> su codificación<br />

interna.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!