Вы находитесь на странице: 1из 7

UNIDAD 4.

- REGISTROS
Ctedra: Algoritmos y Estructuras de Datos 1
UNIDAD 4.- REGISTROS

OBJETIVOS:
Que el alumno comprenda el concepto de dato, los seleccione adecuadamente y los
organice en forma estructurada.
Que comprenda el concepto de estructura de datos y describa las aplicaciones
adecuadas de los registros.
Que represente adecuadamente los registros.

TEMAS:
4.1. Definicin, lectura e impresin.
4.2. Representacin en lenguaje C.
4.3. Registros J erarquizados.
4.4. Array de registros.
4.5. Registros de array.

UNIDAD 4.- REGISTROS
Ctedra: Algoritmos y Estructuras de Datos 2
4.1. DEFINICIN
Un registro, en programacin, es un tipo de dato estructurado esttico, donde sus elementos pueden ser
de distinta naturaleza, es decir que son heterogneos; los mismos se denominan campos; y pueden ser, o
bien datos elementales (entero, real, carcter,...), o bien otras estructuras de datos.

4.2. REPRESENTACIN EN LENGUAJE C
Los registros son llamados tambin estructuras en lenguaje C, y cada uno de sus elementos se denominan
miembros.
Sintaxis:
struct [<identificador>] {
[<tipo> <nombre_variable>[,<nombre_variable>,...]];
.
};
El identificador de la estructura es un nombre opcional para referirse a la misma.
En el interior de una estructura, entre las llaves, se pueden definir todos los elementos que se consideren
necesarios, del mismo modo que se declaran las variables.
Las estructuras pueden referenciarse completas, usando su nombre, y tambin se puede acceder a los
elementos en el interior de la estructura usando el operador de seleccin (.), un punto, que se denomina
selector de campo.
Tambin pueden declararse ms variables del tipo de estructura en cualquier parte del programa, de la
siguiente forma:
[struct] <identificador><variable_estructura>
[,<variable_estructura>...];

LECTURA E IMPRESIN
Para ingresar o mostrar los datos de un registro, es necesario hacerlo campo por campo.
En el siguiente ejemplo se ingresan y muestran los campos cdigo, descripcin y precio de un
artculo.
PROGRAMA PARA LECTURA E IMPRESIN DE LOS ELEMENTOS DE UN REGISTRO
#i ncl ude <st di o. h>
#i ncl ude <coni o. c>
#i ncl ude <st r i ng. h>
UNIDAD 4.- REGISTROS
Ctedra: Algoritmos y Estructuras de Datos 3

st r uct r egi st r o
{
i nt codi go;
char descr i [ 30] ;
f l oat pr eci o;
};

mai n ( voi d)
{
r egi st r o r eg;

pr i nt f ( " I ngr ese l os dat os del r egi st r o\ n\ n" ) ;
pr i nt f ( " Codi go: " ) ;
scanf ( " %d" , &r eg. codi go) ;

pr i nt f ( " Descr i pci on: " ) ;
scanf ( " %s" , r eg. descr i ) ;

pr i nt f ( " Pr eci o: " ) ;
scanf ( " %f " , &r eg. pr eci o) ;

pr i nt f ( " \ n\ nLOS DATOS I NGRESADOS SON: \ n\ n" ) ;
pr i nt f ( " Codi go: %d" , r eg. codi go) ;
pr i nt f ( " \ nDescr i pci on: " ) ;
put s( r eg. descr i ) ;

pr i nt f ( " Pr eci o: %. 2f " , r eg. pr eci o) ;
get ch( ) ;
}


4.3. REGISTROS JERARQUIZADOS
Un registro jerarquizado tambin denominado en lenguaje C como estructura anidada, es un registro
en el cul por lo menos uno de sus campos es a su vez un registro.

Ejemplo:
Al registro del artculo que tena los campos cdigo, descripcin y precio le agregamos el campo
fecha de vencimiento; el cul a su vez es un registro que posee los campos da, mes y ao.

codigo descri precio fec
dia mes anio


PROGRAMA PARA LECTURA E IMPRESIN DE LOS ELEMENTOS DE UN REGISTRO JERARQUIZADO
#i ncl ude <st di o. h>
#i ncl ude <coni o. h>
#i ncl ude <st r i ng. h>

UNIDAD 4.- REGISTROS
Ctedra: Algoritmos y Estructuras de Datos 4
st r uct f echa
{
i nt di a, mes, ani o;
};

st r uct r egi st r o
{
i nt codi go;
char descr i [ 30] ;
f l oat pr eci o;
f echa f ec;
};

mai n ( voi d)
{
r egi st r o r eg;

pr i nt f ( " I ngr ese l os dat os del r egi st r o\ n\ n" ) ;
pr i nt f ( " Codi go: " ) ;
scanf ( " %d" , &r eg. codi go) ;

pr i nt f ( " Descr i pci on: " ) ;
scanf ( " %s" , r eg. descr i ) ;
pr i nt f ( " Pr eci o: " ) ;
scanf ( " %f " , &r eg. pr eci o) ;

pr i nt f ( " \ n\ nFecha de Vt o: \ n" ) ;
pr i nt f ( " Di a: " ) ;
scanf ( " %d" , &r eg. f ec. di a) ;
pr i nt f ( " Mes: " ) ;
scanf ( " %d" , &r eg. f ec. mes) ;
pr i nt f ( " Ao: " ) ;
scanf ( " %d" , &r eg. f ec. ani o) ;

pr i nt f ( " \ n\ nLOS DATOS I NGRESADOS SON: \ n\ n" ) ;
pr i nt f ( " Codi go: %d" , r eg. codi go) ;
pr i nt f ( " \ nDescr i pci on: " ) ;
put s( r eg. descr i ) ;
pr i nt f ( " Pr eci o: %f " , r eg. pr eci o) ;
pr i nt f ( " \ n\ nFecha de Vt o: \ n" ) ;
pr i nt f ( " Di a: %d" , r eg. f ec. di a) ;
pr i nt f ( " \ nMes: %d" , r eg. f ec. mes) ;
pr i nt f ( " \ nAo: %d" , r eg. f ec. ani o) ;

get ch( ) ;
}


4.4. ARRAY DE REGISTROS
Un array de registros es un arreglo (vector, matriz, arreglo multidimensional) cuyos elementos son
registros.
Este tipo de estructura surge para poder conservar en memoria los valores que se ingresan de todos
los registros, caso contrario se tiene en memoria los valores slo del ltimo registro ingresado.

UNIDAD 4.- REGISTROS
V


codigo descri precio
codigo descri precio


V[i] registro

Ejemplo:
Ingresar y mostrar un array (vector) de registros de 2 elementos; cuyos registros tendrn la siguiente
configuracin: cdigo, descripcin y precio.

PROGRAMA PARA INGRESAR Y MOSTRAR UN ARRAY DE REGISTROS
#i ncl ude <st di o. h>
#i ncl ude <coni o. c>
#i ncl ude <st r i ng. h>

st r uct r egi st r o
{
i nt codi go;
char descr i [ 30] ;
f l oat pr eci o;
};

mai n ( voi d)
{
r egi st r o v[ 2] ;
i nt i ;

f or ( i =0; i <2; i ++)
{
cl r scr ( ) ;
pr i nt f ( " I ngr ese l os dat os del r egi st r o %d\ n\ n" , i ) ;
pr i nt f ( " Codi go: " ) ;
scanf ( " %d" , &v[ i ] . codi go) ;

pr i nt f ( " Descr i pci on: " ) ;
scanf ( " %s" , v[ i ] . descr i ) ;

pr i nt f ( " Pr eci o: " ) ;
scanf ( " %f " , &v[ i ] . pr eci o) ;
}

f or ( i =0; i <2; i ++)
{
cl r scr ( ) ;
pr i nt f ( " \ n\ nLOS DATOS I NGRESADOS SON REGI STRO %d: \ n\ n" , i ) ;
pr i nt f ( " Codi go: %d" , v[ i ] . codi go) ;
pr i nt f ( " \ nDescr i pci on: " ) ;
put s( v[ i ] . descr i ) ;

pr i nt f ( " Pr eci o: %. 2f " , v[ i ] . pr eci o) ;
Ctedra: Algoritmos y Estructuras de Datos 5
UNIDAD 4.- REGISTROS
get ch( ) ;
}

}



4.5. REGISTROS DE ARRAY
Un registro de array es un registro en el cual por lo menos uno de sus campos es un arreglo.

Ejemplo:
Un registro que posee los campos:
Legajo
Notas (es un vector de 5 elementos)

registro campo
legajo
notas
5 6 7 8 5
Ctedra: Algoritmos y Estructuras de Datos 6

vector notas
cada elemento es notas[i]

PROGRAMA PARA INGRESAR Y MOSTRAR UN REGISTRO DE ARRAY
#i ncl ude <st di o. h>
#i ncl ude <coni o. c>
#i ncl ude <st r i ng. h>

st r uct r egi st r o
{
i nt l egaj o;
i nt not as[ 5] ;

};

mai n ( voi d)
{
r egi st r o r eg;
i nt j ;

pr i nt f ( " I ngr ese l os dat os del r egi st r o\ n\ n" ) ;
pr i nt f ( " Legaj o: " ) ;
scanf ( " %d" , &r eg. l egaj o) ;

f or ( j =0; j <5; j ++)
{
UNIDAD 4.- REGISTROS
Ctedra: Algoritmos y Estructuras de Datos 7
pr i nt f ( " Not a %d: " , j ) ;
scanf ( " %d" , &r eg. not as[ j ] ) ;
}

pr i nt f ( " \ n\ nLos dat os i ngr esados del r egi st r o\ n\ n" ) ;
pr i nt f ( " Legaj o: %d" , r eg. l egaj o) ;
f or ( j =0; j <5; j ++)
{
pr i nt f ( " \ nNot a %d: %d" , j , r eg. not as[ j ] ) ;
}

get ch( ) ;
}

Вам также может понравиться