1 / 25

Registros

Registros. Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes. Tipos de Datos. Simples: Almacenan un solo valor (enteros, reales, caracteres, apuntadores, l ó gicos).

anoki
Download Presentation

Registros

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Registro • Generalización del concepto de variable • Variable: Puede tener como máximo un valor. • 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 Nombre del registro Persona Registro de 5 campos cuyo nombre es Persona

  5. Registros: Notación Algorítmica Registro nombre_registro tipo_dato campo1 tipo_dato campo2 ……… tipo_dato campon 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++ • 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 • 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 raiting; // campo1 char artista[ kMaxArtistaLong + 1 ]; // campo2 char titulo[ kMaxTituloLong + 1 ]; // campo3 };

  11. Registros: Declaración en C++/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/C++ • 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/C++ Nombre de la variable miInfo Valores de los campos Campos del registro CDInfo

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

  15. Registros: Acceso • Para tener acceso a los campos de una variable de tipo registro se utiliza el operador ( . ) Ejemplo Notación en lenguaje C y C++ miInfo.rating = 7; gets(miInfo.artista) scanf(“%s”,miInfo.titulo);

  16. Registros: Ejemplo (1) struct datos { char num_carnet[9]; char nombre[30]; int edad; char sexo; char direccion[50]; };

  17. Registros: Ejemplo (2) /************************************************ // Declaraciòn de un registro struct datos { charnum_carnet[9]; char nombre[30]; int edad; char sexo; chardireccion[50]; }; intmain() { struct datos alumno; printf("\n Introduzca los datos del alumno:"); printf("\n Nùmero de Carnet: "); scanf("%s",alumno.num_carnet); printf("\n Nombre: "); scanf("%s",alumno.nombre); printf("\n Edad: "); scanf("%d",&alumno.edad); printf("\n Sexo: "); alumno.sexo=getchar(); alumno.sexo=getchar(); printf("\n Direcciòn: "); gets(alumno.direccion); gets(alumno.direccion); printf("\n ****** Los datos Capturados fueron: "); printf("\n Nùmero de Carnet: %s",alumno.num_carnet); printf("\n Nombre: %s ",alumno.nombre); printf("\n Edad: "); printf("%d", alumno.edad); printf("\n Sexo: "); putchar(alumno.sexo); printf("\n Direcciòn: "); puts(alumno.direccion); return 0; }

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

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

  20. Registros: Inicialización • Definición de nuevos tipos de datos • typedef se puede usar para definir nuevos nombres de datos explicítamente, usando algunos de los tipos de datos de C, donde su formato es: • typedef <tipo> <nombre>;

  21. Registros: Inicialización • Se puede usar typedef para crear nombres para tipos más complejos, como una estructura, por ejemplo: typedef struct direc { char nombre[30]; char calle[40]; char ciudad[20]; char estado[3]; unsigned int codigo; } sdirec; sdirec info_direc={"Vicente Fernandez","Fantasia 2000","Dorado","MMX",12345};

  22. Registros: Inicialización • en este caso direc sirve como una etiqueta a la estructura y es opcional, ya que ha sido definido un nuevo tipo de dato, por lo que la etiqueta no tiene mucho uso, en donde sdirec es el nuevo tipo de datos e info_direc es una variable del tipo sdirec, la cual es una estructura.

  23. Registros: Ejemplo (3) Crear un vector de registros #include <iostream.h> 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

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

  25. Ejercicios • 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.

More Related