132 Estructuras de datos 6.2.2 Declaración de una variable de tipo de dato registro Sólo después de definidos el o los tipos de datos, se podrán declarar variables que respondan a algunas de esas organizaciones. Nunca podrán ser declaradas de un formato que no se haya establecido antes como tipo. Notación algorítmica en pseudocódigo: Nombre del tipo de dato registro: Identificador de la variable Donde: Nombre del tipo de dato registro: será un nombre cualquiera que el programador elegirá para el nuevo tipo de dato. Ejemplos: Se declaran variables de tipos de datos definidos en el ejemplo anterior: tiempo: x reserva un lugar en memoria con el nombre x. En él se podrá alojar el valor de un dato compuesto que tenga primero un número fraccionario y después dos enteros. Nunca otros tipos de valores. dato_alum: pers, uno reserva dos lugares en memoria, denominados pers y uno, respectivamente. Los dos pueden alojar a los valores de un dato compuesto que tenga primero una cadena de hasta 30 caracteres, después un número fraccionario y finalmente un valor lógico. No servirán para contener a los valores de un dato compuesto que tenga, por ejemplo, primero un número fraccionario, después un valor lógico y finalmente una cadena de hasta 30 caracteres. Evidentemente en todas las variables que se declaren de un mismo tipo registro, la identificación de los campos será siempre mediante el nombre que se estableció en la definición del tipo. Estos nombres no interferirán entre una y otra variable. Así, pers y uno pueden coexistir en memoria y sus campos tendrán la misma identificación, pero corresponderán a lugares distintos; el 2do. campo de pers es n y el 2do. campo de uno es n.Si las declaraciones anteriores formaran parte de un mismo algoritmo, podríamos representar la memoria como: 6.2.3 Acceso a un campo de la variable registro Para acceder a un campo, bastará con mencionar su identificador y el nombre del registro del que forma parte. Se usa un operador especial para separar ambos nombres; en el contexto de este libro el símbolo será el punto, aunque en otros entornos suele usarse el signo de porcentaje. Notación algorítmica en pseudocódigo: Identificador de la variable registro . Identificador del campo
6.2 Registro (Record o Struct) 133 Ejemplos: Se usan variables declaradas en el ejemplo anterior: x.hs referencia al 3er. campo del registro x. uno.m referencia al 1er. campo del registro uno. pers.m referencia al 1er. campo del registro pers. pers.p referencia al 3er. campo del registro pers. 6.2.4 Usos de una variable registro Los registros no se tratarán en bloque. Se lo hará campo a campo, cada uno en forma inde- pendiente. Se trabajará con el campo de la misma forma que se lo haría con cualquier variable de su tipo. Por lo tanto, son los campos del registro los que podrán ser usados en acciones primitivas (leer, asignar, escribir), como operando de expresiones o como argumentos de funciones. Ejemplos: Se usan variables declaradas en ejemplos anteriores: 1. pers.m “Profesor” 2. leer (pers.n) 3. mientras (pers.p = .Verd.) 4. ........................ 5. fin mientras 6. escribir (pers.m) 6.2.5 Ejemplo integrador de conceptos referidos a registros Para ejemplificar el uso de registro tomamos como punto de partida que, como consecuencia del análisis del enunciado del problema, se ha detectado un dato compuesto a procesar. Desde esta situación, realizamos: 1 o un análisis de las características del dato, para resolver o no su implementación con un registro. 2 o una descripción de las acciones que podrían estar en el algoritmo y junto a ellas la repre- sentación de lo que ocasionan en la memoria. Dato que se necesita procesar: Medida de un ángulo expresado en sistema sexagesimal. Se trata de un dato compuesto, pues en el sistema sexagesimal la “medida de un ángulo” com- prende indefectiblemente, a un conjunto de 3 números. No existe un tipo estándar que lo defina.Si suponemos que del análisis del enunciado surge la conveniencia de trabajar el dato como un todo, con la posibilidad de operar con sus componentes en forma individual, sería apropiado elegir organizarlos como un registro (de lo contrario podría ser factible usar 3 variables simples). 6.2.6 Otros ejemplos de datos que se podrían implementar con registros Ejemplo 1) Dato que se necesita procesar: Una fecha expresada en el formato DIAMESAAAA (nro. del día, nombre del mes, nro. del año), por ejemplo: 29 ABRIL 2006.
Created with BuildVu