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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

280 Capítulo 13. Registros<br />

tipo, es frecu<strong>en</strong>te combinarlos formando arrays de registros que permitan almac<strong>en</strong>ar<br />

y gestionar la información relativa a un grupo de personas u objetos.<br />

Por ejemplo, una vez definido el tipo tFicha del apartado 13.1.1 donde almac<strong>en</strong>amos<br />

los datos de un alumno, podemos definir el tipo sigui<strong>en</strong>te:<br />

type<br />

tVectorFichas = array[1..40] of tFicha;<br />

y declarar las variables:<br />

var<br />

alumno: tFicha;<br />

clase: tVectorFichas;<br />

De esta forma, <strong>en</strong> el vector clase podemos almac<strong>en</strong>ar los datos de los alumnos<br />

de una clase. Para acceder al año de nacimi<strong>en</strong>to del alumno número 3,<br />

t<strong>en</strong>dríamos que utilizar la sigui<strong>en</strong>te expresión:<br />

clase[3].fecha.anno<br />

mi<strong>en</strong>tras que para acceder a su nota usaríamos:<br />

clase[3].nota<br />

Los arrays ti<strong>en</strong><strong>en</strong> un tamaño fijo, sin embargo, hay casos <strong>en</strong> los que el número<br />

de datos no se conoce a priori, pero para los que puede suponerse un máximo.<br />

En este caso, se puede definir un registro que cont<strong>en</strong>ga a un vector del tamaño<br />

máximo y una variable adicional para llevar la cu<strong>en</strong>ta de la parte utilizada.<br />

Por otra parte, hay casos <strong>en</strong> los que puede resultar útil definir registros<br />

de arrays. Supongamos, por ejemplo, que queremos calcular el valor medio de<br />

una variable estadística real de una muestra cuyo tamaño no supera los ci<strong>en</strong><br />

individuos. Para ello se podrían hacer las sigui<strong>en</strong>tes definiciones y declaraciones:<br />

const<br />

MaxCompo = 100;<br />

type<br />

tVector = array [1..MaxCompo] of real;<br />

tRegistro = record<br />

vector: tVector;<br />

ocupado: 0..MaxCompo<br />

<strong>en</strong>dtRegistro;<br />

var<br />

indice: 1..MaxCompo;<br />

reg: tRegistro;<br />

valor, suma, media: real;<br />

fin: boolean;

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

Saved successfully!

Ooh no, something went wrong!