Académique Documents
Professionnel Documents
Culture Documents
Clase Anterior
Cadenas de Caracteres. Declaracin de una variable string. String en C. Lectura y Escritura de un string en C. scanf, printf. gets. String como parmetro. Arreglos de string. Estructuras con string.
Programacin Prof. Gonzalo Mller Clase 22 GM - 2
Puntero
Es una variable que contiene la direccin de memoria de otra variable
Variable Puntero a A Identificador
A 101 31
Direccin
B 31 93
Identificador
Direccin
Puntero
Es una variable que contiene la direccin de memoria de otra variable
Variable Puntero a A Identificador
A 101 31
Direccin
B 31 93
Identificador
Direccin
Puntero
Declaracin: tipo *variable; tipo *variable1, *variable2, ; tipo indicada el tipo de variable a la que se esta apuntando. Un puntero a tipo char solo puede apuntar a variables tipos char, uno unsigned char solo puede apuntar a variables tipos unsigned char y as sucesivamente.
Programacin Prof. Gonzalo Mller Clase 22 GM - 5
Puntero
Ejemplo:
unsigned char A, *B; unsigned short *C; A = 101; B = &A; printf(%u\n, A); printf(%u, &A); printf(%u, B); C = &A; Error
Programacin Prof. Gonzalo Mller Clase 22 GM - 6
Archivo
Coleccin de informacin binaria, 0s y 1s, que contiene datos o programas. Los cuales se encuentra almacenados en unidad de almacenamiento externo (disco duros, CD, DVD, etc.).
0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0
Archivo
Coleccin de bytes, que contiene datos o programas. Los cuales se encuentra almacenados en unidad de almacenamiento externo.
0 1 0 0 1 0
1 0 1 1 0 1
1 0 1 0 0 1
1 0 0 1 0 1
0 0 1 1 0 1
1 0 1 1 1 0
0 1 0 1 0 1
1 1 0 0 1 0
Archivo
Todo archivo esta representado por una etiqueta de presentacin, que permite al usuario identificarlo fcil y rpidamente.
0 1 0 0 1 0
1 0 1 1 0 1
1 0 1 0 0 1
1 0 0 1 0 1
0 0 1 1 0 1
1 0 1 1 1 0
0 1 0 1 0 1
1 1 0 0 1 0
1 1 1 0 0 1
Ejercicio1.HTML
Archivo
La etiqueta esta formada por dos partes:
Nombre
Nombre
Apellido
Familia a la que pertenece
Nombre
Extensin
Nombre.Extensin
Archivo
La etiqueta esta formada por dos partes:
Nombre
Nombre
Apellido
Familia a la que pertenece
Nombre
Extensin
Nombre.Extensin
Ejercicio1.HTML Nombre Archivo HTML
Tipos de Archivo
Texto: Contiene datos en formato legible (texto). Representacin en Caracteres. (Programa Fuente)
Tipos de Archivo
Binarios: Ejecutables: Contiene las instrucciones en cdigo de maquina de un programa ejecutable. (Programa Ejecutable) Datos: Contiene datos en formato de maquina. Representacin Binaria (tal como en memoria)
Tipos de Archivo
Datos en Archivo de Texto:
Tipos de Archivo
Datos en Archivo de Texto: 123 -> 123 -> 1 2 3 -> 3 Bytes en lugar de 1
Tipos de Archivo
Datos en Archivos Binarios: Contiene datos en formato de maquina. Representacin Binaria (tal como en memoria) 123 -> 1 Byte
Tipo Nmero (entero, real) Carcter Lgico Guarda como Nmero (entero:1,2,4,8 B. real:4,8 B) Carcter (1 Byte) Lgico (1 Byte)
Flujo Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor. Entrada Teclado Programa Salida Monitor
Flujo Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor o utilizando archivos. Entrada Teclado
y/o
Programa
Salida Monitor
y/o
Archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 18
Archivo
Flujo Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor o utilizando archivos. Entrada Teclado
y/o
Programa
Salida Monitor
y/o
Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 19
Archivo
modo escritura
Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
Entrada Teclado
y/o
Programa
Salida Monitor
y/o
Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 20
Archivo
modo escritura
Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
scanf printf
Entrada Teclado
y/o
fscanf
Programa
fprintf
Salida Monitor
y/o
Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 21
Archivo
modo escritura
Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
scanf fscanf printf
Entrada Teclado
y/o
Programa
fprintf
Salida Monitor
y/o
Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 22
Archivo
modo escritura
Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
scanf printf
Entrada Teclado
y/o
fscanf
Programa
fprintf
Salida Monitor
y/o
Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 23
Archivo
modo escritura
Flujo Entrada/Salida
En C un archivo es manejado por un puntero: FILE *
scanf printf
Entrada Teclado
y/o
fscanf
Programa
fprintf
Salida Monitor
y/o
Archivo
FILE *
FILE es una estructura que contiene la informacin necesaria para manejar un archivo modo lectura
Archivo
FILE *
modo escritura
Manejo de un archivo
El proceso consta de 3 pasos bsicos: 1. Apertura del archivo. 2. Manipulacin del archivo. 3. Cierre del archivo
Manejo de un archivo
Apertura del archivo: antes de poder utilizar un archivo este debe ser abierto. fopen: abre un archivo y retorna un puntero al mismo:
puntero = fopen(nombre, modo);
Manejo de un archivo
modo: indica en que forma debe ser abierto el archivo.
Modo Descripcin r abre un archivo existente para lectura (solo lectura). w abre un nuevo archivo para escritura (solo escritura), si el archivo existe se crea uno nuevo, destruyendo el existente. a abre un archivo existente para aadir (solo escritura), si el archivo no existe se crea uno nuevo. b binario
Programacin Prof. Gonzalo Mller Clase 22 GM - 27
Manejo de un archivo
de esta forma se dispone de los siguientes posibles modos:
Modo r w rb wb Descripcin lectura de archivo de texto escritura de archivo de texto lectura de archivo binario escritura de archivo binario
Manejo de un archivo
Ejemplo: Apertura de archivo de texto para lectura
FILE *pArch; pArch = fopen(test.txt, r); if(pArch != 0) {
Manejo de un archivo
Ejemplo: Apertura de archivo de texto para lectura
FILE *pArch; pArch = fopen(test.txt, r); if(pArch != 0) {
la estructura FILE contiene informacin sobre ubicacin de archivo, modo de apertura, ubicacin del buffer, posicin actual entre otros
Programacin Prof. Gonzalo Mller Clase 22 GM - 30
Manejo de un archivo
Cierre del archivo: luego de utilizar un archivo este debe ser cerrado, de esta forma se libera el recurso del sistema y otras aplicaciones pueden utilizarlo sin conflicto. fclose: cierra un archivo:
fclose(puntero);
Manejo de un archivo
Ejemplo: Cierre de archivo
FILE *pArch; pArch = fopen(test.txt, r); if(pArch != 0) { ... fclose(pArch); }
Programacin Prof. Gonzalo Mller Clase 22 GM - 32
Salida a un archivo
Salida a un archivo
fprintf: Escribe la informacin indicada en un archivo tipo texto. Formas de uso: 1. Solo texto, sin formato:
fprintf(puntero, texto);
Archivo de Informacin
Programacin Prof. Gonzalo Mller Clase 22 GM - 34
Salida a un archivo
Ejemplo:
/* Escribe en C++ es el 1*/ fprintf(pArch, 1); el archivo: Lenguaje es el
Lenguaje
C++
/* Escribe en dos lneas en el archivo: Lenguaje C++ es el Mejor!*/ fprintf(pArch, Lenguaje C++\n); fprintf(pArch, es el Mejor!);
Programacin Prof. Gonzalo Mller Clase 22 GM - 35
Ejercicio
Construir un programa en C++ para guardar su datos personales en un archivo Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa en C++.
Salida a un archivo
2. Texto + variables, con formato: Escribe el valor de un conjunto de variables en un archivo de texto:
fprintf(puntero,Formato,Variable1 , Variable2,);
Formato: constante texto que establece que tipo de variables estn contenidas en las lista.
Archivo de Informacin Archivo de Datos
Salida a un archivo
El formato esta constituido por al menos una lista de especificadores que indica el tipo.
Un especificador esta formado por un carcter porcentaje y una letra, la cual indica el tipo de variable correspondiente:
Letra c d u x,X f,e,E,g,G s Tipo de dato Carcter Entero con signo Entero sin signo Hexadecimal Real String
%Letra
Salida a un archivo
Ejemplo:
/* Escribe en el archivo: El valor de la variable uwContador */ fprintf(pArch,%u, uwContador); /* Escribe en el archivo: El valor de la variable uwContador y dMedia fprintf(pArch,%u dMedia); %f, uwContador,
Salida a un archivo
fprintf(puntero,%Letra1 %Letra2,
Correspondencia
Variable1,Variable2);
No es recomendable colocar texto adicional en el formato, ya que afectara la lectura del archivo Ejemplo
fprintf(pArch,Se encontraron %u datos, cuyo promedio fue %f,uwContador, dMedia);
Archivo de Informacin
Programacin Prof. Gonzalo Mller Clase 22 GM - 40
Salida a un archivo
fprintf(puntero,%Letra1 %Letra2,
Correspondencia
Variable1,Variable2);
No es recomendable colocar texto adicional en el formato, ya que afectara la lectura del archivo Ejemplo
fprintf(pArch,%u %f, uwContador, dMedia);
Archivo de Datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 41
Salida a un archivo
fprintf(puntero,%Letra1 %Letra2,
Correspondencia
Variable1,Variable2);
No es recomendable colocar texto adicional en el formato, ya que afectara la lectura del archivo Ejemplo
fprintf(pArch,Se encontraron %u datos, cuyo promedio fue %f,uwContador, dMedia); fprintf(pArch,%u %f, uwContador, dMedia);
Archivo de Datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 42
Ejercicio
Construir un programa en C++ para guardar N edades y pesos Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa en C++.
Notas Leer Escribir
Leer de teclado
Escribir en archivo
Tipos de Archivo
Archivo de Informacin Archivo de Datos
Guardar informacin para ser utilizada Guardar datos que son procesados por el directamente por el usuario programa para luego ser mostrados al usuario
Programa Programa
Archivo
Archivo
texto texto texto texto texto texto texto texto texto texto archivo
Tamao Definido
N registro1 registroN archivo
Tamao Indefinido
registro1 registroN archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 45
Tamao Definido
N registro1 registroN archivo
Tamao Indefinido
registro1 registroN archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 46
Datos
condicin
Formato: constante texto que establece que tipos de variables sern ledas.
Programacin Prof. Gonzalo Mller Clase 22 GM - 51
(ISOC9899) (ISOC9899)
Problemtico
(ISOC9899) (ISOC9899)
Archivo 1 dato
Programacin Prof. Gonzalo Mller Clase 22 GM - 55
%f,&uwCantidad,
Archivo 2 datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 56
fopen
XX XX XX XX XXXX XXXX XX X
archivo
pArch=fopen(, r)
k=1
fscanf
XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 59
d[1]=XXX
k=2
fscanf
XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 60
d[2]=XX
XXX XX X XXX
fscanf(%hu,&d[k])
fscanf
XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 61
XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 62
d[4]=XXX
k < N
Ejercicio
Conjunto de Tamao Definido Construir un programa modular en C++ con acoplamiento de datos para leer un archivo que contiene un conjunto, de tamao Definido, de personas y los presente en pantalla. Cada persona posee: nombre (string), edad (entero), genero (carcter).
Personas Leer Escribir
Leer de archivo
Escribir en pantalla
!feof()
XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 70
Ejercicio
Conjunto de Tamao Indefinido Construir un programa modular en C++ con acoplamiento de datos para leer un archivo que contiene un conjunto, de tamao indefinido, de personas y los presente en pantalla. Cada persona posee: nombre (string), edad (entero), genero (carcter).
Personas Leer Escribir No cambia
Leer de archivo
Escribir en pantalla
Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida los mayores de cierta edad. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 74
Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida los de un nombre especfico. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 75
Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida los de un genero especfico. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 76
Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida ordenados de mayor a menor. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 77
Resumen
Puntero Flujo de entrada y salida de datos. Archivo Texto Binario FILE * modo lectura. modo escritura.
Programacin Prof. Gonzalo Mller Clase 22 GM - 78
Resumen
Manejo de un archivo 1. Apertura del archivo: fopen (r, w, a) 2. Manipulacin del archivo.
Archivo de Informacin, Archivo de Datos.
Tamao Definido. Tamao Indefinido.
Resumen
Lectura de conjuntos de un archivo: Conjunto de Tamao Definido
N registro1 registroN archivo
feof
registroX archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 80
Lectura Extra
Puntero
El identificador de un arreglo constituye un puntero al primer elemento. Ejemplo:
En la notacin suele usarse el prefijo p para indicar que el tipo definido es un puntero unsigned char arreglo[4]; unsigned char *pArreglo; pArreglo = arreglo; Totalmente vlido printf(%X, arreglo); Escribe A3F6 en la pantalla printf(%X, pArreglo); Escribe A3F6 en la pantalla
arreglo
1 Elemento
A3F6