Segunda video tutora - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Segunda video tutora

Description:

... una palabra reservada que sirve para declarar tipos de datos definidos por el usuario. ... Para declarar una variable puntero a la estructura se sigue el mismo ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 25
Provided by: laurab46
Category:

less

Transcript and Presenter's Notes

Title: Segunda video tutora


1
Segunda video tutoría
  • Programación Intermedia

2
Punteros
  • Repaso

3
Qué es un puntero?
  • Es una variable que dice en que parte (dirección)
    de la memoria de la maquina se encuentra otra
    variable (se dice que un puntero "apunta" a una
    variable).
  •  Ej
  • int x
  • int px /puntero a int/ 
  • px x /asignación/

4
Operadores con punteros
  • El Operador
  • es un operador unario que lo que hace es decir en
    que parte de la memoria se encuentra la variable
    a la que se lo aplicó 
  • El Operador
  • es un operador unario que lo que hace es usar la
    variable a la que apunta el puntero, es como si
    se usara directamente la variable a la que apunta
  • Ejemplo 
  • px 30
  • x 50
  • printf("d", x) /imprime 80/

5
Estructuras
6
Qué es una estructura?
  • Una estructura es una colección de variables
    relacionadas, definida por el programador, son
    tipos de datos derivados.
  • Definición de una estructura
  • struct empleado
  • char cedula15
  • char nombre80
  • int num_dpto
  • float salario

7
Declaración de variables de tipo estructura
  • struct empleado antiguoe, nuevoe
  • /antiguoe y nuevoe son variables de tipo
    empleado. /
  • O struct
  • char cedula15
  • char nombre80
  • ...
  • antigue, nuevoe

8
Inicialización de estructuras
  • No se puede inicializar los miembros de una
    estructura dentro de la declaración de la
    estructura. Se puede asignar un valor inicial
    cuando declaro la variable de tipo estructura.
  • Por ejemplo
  • struct empleado nuevoe 1-234-567, Juan
    Perez, 5, 100000.00

9
Incluir variables de tipo estructura dentro de
otra
  • struct empleado
  • char cedula15
  • char nombre80
  • int numdpto
  • float salario
  • struct fecha ultpago
  • struct fecha
  • int dia
  • int mes
  • int anio

10
Arreglos de estructuras
  • struct empleado empleados100
  • / arreglo que contiene, en cada casilla, todos
    los datos de un empleado. /
  • struct empleado empleados
  • 123456789, Jose, 3, 5000, 15, 05, 2005,
  • 779456312, Maria, 2,1000, 28, 04, 2005,

11
Acceso a miembros de una estructura
  • Para acceder a los miembros de una estructura se
    utiliza el operador . variable.miembro
  • Si un miembro de una estructura es a su vez otra
    estructura, entonces el miembro de la estructura
    interna puede ser accedido escribiendo
    variable.miembro.submiembro
  • Si un miembro de una estructura es un arreglo, se
    escribiría variable.miembroindice
  • Si lo que hemos declarado ha sido un arreglo de
    estructuras, sería arregloindice.miembro

12
Typedef
  • Typedef es una palabra reservada que sirve para
    declarar tipos de datos definidos por el usuario.
    Con esta palabra reservada, se puede definir una
    estructura como un tipo de datos.
  • typedef struct
  • char cedula15
  • char nombre80
  • int num_dpto
  • float salario
  • emp

13
Estructuras y punteros
  • Para declarar una variable puntero a la
    estructura se sigue el mismo procedimiento que
    con cualquier otro tipo.
  • Ej emp e
  • emp pe
  • pe e
  • Para acceder a un miembro de una estructura por
    medio de un puntero se utiliza el operador -gt.
    Ej pe -gt salario , pe-gt ultpago.anio
  • También se puede acceder a un miembro por medio
    del operador (pe).salario.

14
Paso de estructuras por parámetro
  • /funcion que ajusta el salario de un empleado /
  • void ajustarsalario(emp pe)
  • pe-gtsalario 1.1 /sí modifica la estructura
    que se le envía desde main/
  • / también se podría (pe).salario 1.1 /

15
Estructuras y funciones
  • /imprime el nombre de un empleado que recibe por
    parámetro/
  • void desplegar_nombre(emp e) /paso por valor,

    no por referencia/
  • printf(s, e.nombre)

16
Estructuras y funciones
  • /función que retorna una estructura/
  • emp leerdatos()
  • emp e
  • printf(\nDigite su nombre )
  • scanf(s, e.nombre)
  • printf(\nDigite su número de cédula )
  • scanf(s, e.cedula)
  • ....
  • return e

17
Archivos
  • Memoria temporal vs permanente
  • Jerarquía de datos
  • Bit Byte Campo Registro
    Archivo
  • Tipos de Acceso
  • Secuencial
  • Directo

18
Archivos Secuenciales
  • Registro clave
  • Orden Secuencial
  • / Apuntador a estructura File /
  • FILE ptrArch
  • / Apertura de flujo de archivo /
  • If ((ptrArch fopen(Equipos.dat, w))
    NULL)
  • / Ciclo de alcance del indicador de fin de
    archivo /
  • while ( !feof(stdin))
  • / Función de Cierre de archivo /
  • fclose(ptrArch)

19
Arch. Secuenciales (Cont)
  • Cómo escribir en ellos?
  • / Función para escritura en el flujo del
    archivo/
  • fprintf (ptrArch, c c d .2f\n,
  • cedula, nombre, num_dpto, salario)
  • / Tipo de apertura de flujo de archivo /
  • If ((ptrArch fopen(Equipos.dat, w))
    NULL)
  • r -gt Lectura
  • w -gt Escritura (Descarta contenido Actual)
  • a -gt Agregar al final
  • (Otros más r, w, a)

20
Arch. Secuenciales (Cont)
  • Cómo leer de ellos?
  • / Función para lectura del flujo del archivo/
  • fscanf (ptrArch, c c d .2f\n, cedula,
    nombre, num_dpto, salario)
  • / Apuntador de posición de archivo/
  • rewind(ptrArch)

21
Archivo Acceso Directo
  • Cómo crearlos?
  • / Función para posicionar al apuntador de
    posición de archivo/
  • fseek (ptrArch , (cedula - 1) sizeof(struct
    empleado), SEEK_SET)
  • / Función para escribir al archivo/
  • fwrite (emp, sizeof(struct empleado), 1,
    ptrArch)

22
Arch. Acceso Directo (Cont.)
  • Cómo escribir en ellos?
  • / Función para transferir a un archivo, número
    específico de bytes/
  • fwrite (emp, sizeof(struct empleado), 1,
    ptrArch)
  • emp Estructura definida
  • sizeof(struct empleado) Tamaño de estructura
  • 1 Cantidad de elementos a escribir
  • ptrArch Apuntador asociado al archivo abierto

23
Arch. Acceso Directo (Cont.)
  • Cómo leer de ellos?
  • / Función para leer del archivo/
  • fread (emp, sizeof(struct empleado), 1,
    ptrArch)
  • emp Estructura definida
  • sizeof(struct empleado) Tamaño de estructura
  • 1 Cantidad de veces a leer
  • ptrArch Apuntador asociado al archivo abierto

24
  • Muchas gracias!!
  • Dudas?
  • Preguntas?
Write a Comment
User Comments (0)
About PowerShow.com