La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.

Presentaciones similares


Presentación del tema: "Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes."— Transcripción de la presentación:

1 Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

2 Tipos de Datos t Simples: Almacenan un solo valor (enteros, reales, caracteres, apuntadores, lógicos). t Compuestos o estructurados: Almacenan uno o mas valores (arreglos, registros, cadenas de caracteres).

3 Registro t Generalización del concepto de variable t Variable: Puede tener como máximo un valor. t Registro: Representa una colección de valores, llamados campos, lógicamente relacionados, donde cada uno puede tener un tipo diferente (estructura heterogénea).

4 Registros: Representación Gráfica Persona Nombre del registro Registro de 5 campos cuyo nombre es Persona

5 Registros: Notación Algorítmica Registro nombre_registro tipo_dato campo 1 tipo_dato campo 2 ……… tipo_dato campo n fin_registro

6 Registros: Notación Algorítmica Ejemplo Registro Empleado Cadena nombre Cadena CI entero num_dependientes real sueldo fin_registro

7 Registros: Definición en C++ t Para definir registros en C++ se utiliza la palabra struct. struct Empleado { char nombre[31]; // Vector de caracteres (cadena) char CI[10]; // Vector de caracteres (cadena) int num_dependientes; float sueldo; }

8 Cadenas de Caracteres t Una cadena de caracteres (string) es un conjunto de caracteres - incluido el blanco - que se almacenan en localidades contiguas de memoria. Se representa como un vector de caracteres. fecha char fecha[11];

9 Cadenas de Caracteres fecha Nota: El caracter ‘\0’ al final de la cadena es indispensable para indicar el fin de la cadena

10 Registros: Definición en C++ Ejemplo #define kMaxArtistaLong 50 #define kMaxTituloLong 50 struct CDInfo { short rating;// campo 1 char artista[ kMaxArtistaLong + 1 ]; // campo 2 char titulo[ kMaxTituloLong + 1 ]; // campo 3 };

11 Registros: Declaración en C++ Al declarar una variable de tipo registro (struct) se reserva un grupo de localidades consecutivas de memoria relacionadas por el hecho que tienen el mismo nombre y diferentes tipos.

12 Registros: Declaración en C++ t Una definición de tipo struct crea un tipo de datos nuevo. De la misma forma como usamos el tipo short o float para declarar una variable, podemos usar este nuevo tipo de datos para declarar una variable de tipo struct. struct CDInfo miInfo; En C++ se puede omitir la palabra struct. CDInfo miInfo;

13 Registros: Declaración en C++ miInfo Nombre de la variable Campos del registro CDInfo Valores de los campos

14 Registros: Acceso t Para tener acceso a los campos de una variable de tipo registro se utiliza el operador. Ejemplo miInfo.rating = 7; miInfo.artista = “Shakira”; miInfo.titulo = “Pies Descalzos”;

15 Registros: Ejemplo (1) struct ShortIntShort// Definicion del registro { short miShort1; int miInt; short miShort2; }; struct ShortIntShort var; // Declaración de la variable var

16 Registros: Ejemplo (1) var Acceso a los campos de la variable Representación gráfica de la variable

17 Registros: Ejemplo (2) #include struct baraja { char numero[8]; char pinta[7]; }; void main () { struct baraja a; a.numero[0] = ‘A’; a.numero[1] = ‘s’; anumero[2] = ‘\0’;// Caracter de fin de cadena cin >> a.pinta; cout << a.numero << “de” << a.pinta << endl; }

18 Registros: Ejemplo (2) a numeropinta Nota: El caracter ‘\0’ al final de la cadena es indispensable

19 Registros: Instrucciones Válidas t A.campo1 = 3; t X = A.campo4; t cin >> A.campo3; t cout << A.campo3; t A.campo1 = A.campo3; t Y = Suma (A.campo1, b, c); t b = A.campo6 / 2; Cada campo de una variable de tipo registro puede usarse como una variable cualquiera.

20 Registros: Inicialización struct Alumno { long nmat; char nombre[41]; }; struct Alumno alu1={76986, "Luis Perez"}, alu2 = { 67549, "Mikel Lasa"};

21 Registros: Ejemplo (3) Crear un vector de registros #include struct estudiante {// Definición de la estructura char nombre[30]; short nota1; short nota2; short nota3; short promedio; }; #define num 11 struct estudiante est[num]; // Declaración de un vector de // registros como una variable global

22 Registros: Ejemplo (3) Crear un vector de registros void LeerDatosPDI () { int k; for (k = 0; k < num; k++) { cout << “Nombre del estudiante:” << endl; cin >> est[k].nombre; cout << “Nota Parcial 1:” << endl; cin >> est[k].nota1; cout << “Nota Parcial 2:” << endl; cin >> est[k].nota2; cout << “Nota Parcial 3:” << endl; cin >> est[k].nota3; }

23 Registros: Ejemplo (3) Listar nombre de estudiantes con Parcial1 > 15 void Eximidos () { int k; cout << “Estudiantes eximidos” << endl; for (k = 0; k < num; k++) if (est[k].nota1 > 15) cout << est[k].nombre << endl; }

24 Registros: Ejemplo (3) Calcular el promedio de notas de cada estudiante void CalcularPromedio () { int k; for (k = 0; k < num; k++) est[k].promedio = (est[k].nota1 + est[k].nota2 + est[k].nota3)/3; }

25 Registros: Ejemplo (3) Escribir el promedio de notas de cada estudiante void EscribirPromedio () { int k; cout << “Nota promedio” << endl; for (k = 0; k < num; k++) cout << est[k].nombre << est[k].promedio << endl; }

26 Registros: Ejemplo (3) Programa Principal void main () { LeerDatosPDI (); Eximidos(); CalcularPromedio(); EscribirPromedio(); }

27 Registros: Paso de parámetros t Los registros pueden pasarse como parámetros a las funciones de la siguiente forma: –Un campo individual: por valor –La estructura completa: por valor –Un apuntador a la estructura: por referencia. Nota: Arreglos de estructuras son automáticamente pasados por referencia.

28 Ejercicios t Realizar el ejemplo tres pasando el vector de registros como parámetro a todos los procedimiento especificados. t Definir un registro AGENDA que contenga los siguientes campos: –Nombre –Direccion –Telefono –Celular –Correo electrónico –Fecha de nacimiento

29 Ejercicios t Una librería almacena la siguiente información sobre cada uno de sus libros: CODIGO, TITULO, AUTOR y PRECIO. Tomando en cuenta que la información debe estar almacenada en orden ascendente por los códigos de los libros, realizar un programa en C++ que realice lo siguiente: –Insertar información de nuevos libros, la cual debe mantenerse ordenada en todo momento. –Buscar registros por el campo código. –Buscar todos los libros escritos por un autor. –Borrar la información correspondiente a un libro.


Descargar ppt "Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes."

Presentaciones similares


Anuncios Google