Prof. Dr. Paul Bustamante



Documentos relacionados
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Prof. Dr.Paul Bustamante

Contenidos. Archivos en C++ Archivos en C++ Introducción

#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

Prof. Dr. Paul Bustamante

3.1. Guardar un libro de trabajo

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Prof. Dr. Paul Bustamante

PROGRAMACIÓN ORIENTADA A OBJETOS

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.) Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Prof. Dr. Paul Bustamante

Entrada y salida de datos en C y C++

Examen escrito de Programación 1

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Uso de archivos en C++

Introducción al tipo de dato ARRAY

Problemas de Redes de Computadores. Conjunto de problemas 1

Aprendamos Juntos. FreeMaker Video Converter

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

MANUAL WINDOWS MOVIE MAKER. Concurso de Gipuzkoa

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Enviar la combinación de un documento Word 2007 como cuerpo del mensaje de un

Sistema Integrado de Control de Presencia Dactilar

CURSO DE INTRODUCCIÓN AL WORD

Examen Septiembre Curso Programación en C++ Pág. 1

SOLUCIÓN CASO GESTIÓN DE COMPRAS

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Preliminares. Tipos de variables y Expresiones

Prof. Dr. Paul Bustamante

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

RELACIÓN DE PRÁCTICAS DEL TEMA 2

LABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA

Prof. Dr. Paul Bustamante

Herramientas CONTENIDOS. MiAulario

Prof. Dr. Paul Bustamante

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Proyecto de Facturación con Filemaker Pro 12

INSTALACIÓN Y REGISTRO

PORTALES DE EMPLEO EN INTERNET

CITRIX Citrix Application Streaming

EJERCICIOS DEL TEMA 1

Manual para realizar compras on-line

Sobre la lectura y escritura de datos en FORTRAN.

TUTORIAL PRÁCTICO DE BASES DE DATOS EN ACCESS CREAR UNA AGENDA

MANUAL DE CS-ALMACENES

USO DE LA PAGINA WEB PREMIE

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Backup & Recovery Oracle 9i. Las copias físicas offline, conocidas como Backups en frío, se realizan cuando la Base de Datos está parada.

Capítulo 9. Archivos de sintaxis

Correo Electrónico: Webmail: Horde 3.1.1

Figura 1. Pantalla principal de la aplicación. Bits de inteligencia. Nos lleva al espacio dedicado a este tema.

Notas para la instalación de un lector de tarjetas inteligentes.

Mi primer proyecto en Dev-C++

15 CORREO WEB CORREO WEB

6.1. Conoce la papelera

ARCHIVOS. 1. Introducción. 2. Definición de archivo. 3. Archivos de acceso secuencial. 4. Gestión de un archivo secuencial de estructuras

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Año: 2008 Página 1 de 18

Tema: Arreglos de Objetos en C++.

Configurar un Servidor FTP. Serv-U

Ecuaciones de primer grado con dos incógnitas

NOVEDADES Y MEJORAS. datahotel versión 9.00 TRABAJAR CON I.V.A INCLUIDO

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Lo primero que nos pedirá cuando accedamos al Correo Electrónico HORDE es que nos identifiquemos:

Uso del Programa Gantt Project

1.- Introducción 22/11/ :57:30. Page 1 of 5

Cierre y Apertura de ejercicio. Gestión - Contabilidad

Plantillas Office. Manual de usuario Versión 1.1

Codex.pro. Módulo de gestión económica.

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

Si quiere obtener la Subred 5. Los bits en verde (101), es el numero 5

Curso Internet Básico - Aularagon

Curso Excel Básico - Intermedio

Tutorial de herramientas de Google

Guía nuevo panel de clientes Hostalia

Anexo B. Comunicaciones entre mc y PC

QUE ES UN CUPO? Cupos 1

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

El protocolo IMAP ofrece la descarga de correos en modo sólo lectura, es decir descarga sólo una copia del correo y no permite el borrado.

7. Manejo de Archivos en C.

MANUAL DE USO PROGRAMA DE GESTIÓN AGENCIAS DE VIAJES

El cuadro de mando contiene indicadores e informes que deben actualizarse a partir de la información de su sistema informático.

Solución a las diferentes preguntas que puedan entrar en el examen de CCNA. David Santos Aparicio

Combinar correspondencia (I)

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

efactura Online La fibra no tiene competencia

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

CRM para ipad Manual para Usuario

Transcripción:

Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante

INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO EN BINARIO.... 2 1.3 EJERCICIO 3: EJERCICIO COMPLETO DE LECTURA/ESCRITURA.... 2 1.4 EJERCICIO 4: GRABANDO ESTRUCTURAS... 3 Introducción. En esta práctica vamos a hacer ejercicios para escribir y/o leer ficheros en formato binario, esto quiere decir que las variables numéricas serán almacenadas byte a byte, por lo cual nuestros ficheros no se van a poder leer con cualquier editor de texto, hará falta otro programa que lea en binario, el cual también tendremos que hacerlo nosotros. Cuando trabajemos con streams binarios usaremos las funciones write y read. 1.1 Ejercicio 1: Mi primer fichero en Binario. En este ejercicio vamos a escribir ficheros en binario, esto quiere decir que no se podrán leer desde un editor de texto, ya que por ejemplo el número 1298.456 se puede representar en una variable tipo float que ocupa 4 bytes. Si este número lo escribo en formato texto, voy a ocupar 8 bytes, incluido el punto decimal; en cambio si escribo los 4 bytes que representan la variable, ocuparé la mitad. Y esto multiplicado por las muchas variables que se manejan en un programa, se ahorra bastante espacio en el disco. #include <fstream.h> #include <math.h> int main(int argc, char* argv[]) float val, PI=(float)3.141592; fstream foutt("datos.txt",ios::out); //fichero Texto fstream foutb("datos.dat",ios::out ios::binary); //fiche. Binario if (!foutt!foutb) cerr << "Error..." << endl; return -1; // generar datos (una grafica del seno, 4 ciclos y amplitud 5v.) //en incrementos de PI/10 foutt.precision(5); foutt.setf(ios::fixed); for (float i=0;i<8*pi;i+=pi/10) val = (float)(5.0*sin(i)); foutb.write((char*)&val,sizeof(float)); foutt << val << endl; foutb.close(); //cierra fichero Binario foutt.close(); //cierra fichero Texto cout << "He terminado.."; return 0;

Practica Nº 10 Programación en C++ Pág. 2 Este programa genera dos ficheros: datos.txt y datos.dat. Si ves las propiedades de cada uno, verás que datos.dat ocupa menos de la mitad que datos.txt. Trata de ver estos ficheros con un editor de texto qué ocurrirá? podrás ver bien los datos en ambos ficheros? El fichero datos.dat ocupa menos espacio en el disco porque está escrito en formato binario, es decir que se han escrito los cuatro bytes de cada valor. Crea un proyecto Ejer1 y el fichero BinarioOut.cpp para que copies el código que te he dado. 1.2 Ejercicio 2: Leyendo mi primer fichero en Binario. Este ejercicio consiste en que debe hacer un programa para que lea del fichero datos.dat (del ejercicio anterior) y saque por consola los valores obtenidos. Para ello puede abrir el fichero de la siguiente forma: ifstream finb("datos.dat",ios::in ios::binary); //fiche. Binario Al declarar streams de las clases ofstream o ifstream y abrirlos en modo binario, tenemos que añadir el valor ios::out e ios::in, respectivamente, al valor ios::binary. Esto es necesario porque los valores por defecto para el modo son ios::out e ios:in, también respectivamente, pero al añadir el flag ios::binary, el valor por defecto no se tiene en cuenta. Para leer puede usar la función Read(..) y la función Eof() para detectar cuando ha llegado al final del fichero. Puede mirar también los apuntes de clase para que le ayuden a hacerlo. 1.3 Ejercicio 3: Ejercicio completo de lectura/escritura. Este es un ejercicio completo sobre lectura y escritura de ficheros binarios. El ejercicio consiste en hacer un programa con el Menu que se muestra en la figura de la derecha, y cuyas opciones se describen a continuación: Opción1 Como puede ver, el ejercicio básicamente consiste en pedir datos al usuario y calcular la media aritmética de dichos datos. Hasta aquí es lo que hemos venido haciendo habitualmente y, supongo, que no tendréis dificultad alguna en hacerlo. Opción2 Lo más interesante es que una vez que hemos introducido los datos por teclado, éstos pueden ser grabados en el disco, en un fichero (cuyo nombre nos lo debe pedir el programa) en formato binario.

Practica Nº 10 Programación en C++ Pág. 3 Opción3 También debe existir la posibilidad de que al iniciar el programa, el usuario pueda cargar los datos desde un fichero que está en el disco. El programa debe verificar que exista, sino, debe mostrar un aviso. Opción4 Mediante esta opción, el usuario podrá ver los datos que hay en las variables del programa, ya sea porque se han cargado desde el disco, como los datos introducidos por teclado. Opción5 Esta opción debe permitir que el usuario pueda cambiar sólo el valor de un dato, en una determinada posición. Opción6 Mediante esta opción, el usuario podrá calcular la media de los datos que hay en las variables del programa, ya sea porque se han cargado desde el disco, como los datos introducidos por teclado. A continuación se muestra la arquitectura básica de main(): void main() int num,opc=0; double *dat=null; while(1) opc=menu(); switch(opc) case 1: dat=pidedatos(dat,num); break; case 2: GrabaDatos(dat,num); break; case 3: dat=cargardatos(dat,num); break; case 4: PrtDatos(dat,num); break; case 6: Media(dat,num); break; case 7: if (dat!=null) delete [] dat; return; //salir 1.4 Ejercicio 4: Grabando estructuras Hemos dicho que cuando trabajemos con streams binarios usaremos las funciones write y read. En el caso de este ejercicio, estas funciones nos permiten escribir y leer estructuras completas a los ficheros de datos. Véase la siguiente estructura, la cual usaremos para grabar y leer datos del disco: struct Registro char nombre[16]; int edad; float altura; ; Para saber el tamaño en bytes de una estructura, se puede usar la siguiente sentencia:

Practica Nº 10 Programación en C++ Pág. 4 int len=sizeof(registro); Debe hacer un programa que permita pedir los datos de una persona para guardarlos en un fichero binario. Para hacerlo debe usar la estructura Registro, ya que es una forma más fácil de almacenar información en el disco. A continuación se muestra el código para escribir los datos: struct Registro char nombre[16]; int edad; float altura; ; void main() Registro reg1; fstream fout("registro.dat",ios::out ios::binary); while(1) cout << "nombre(x-salir):"; cin >> reg1.nombre; if (reg1.nombre[0]=='x') break; cout << "edad:"; cin >> reg1.edad; cout << "altura:"; cin >> reg1.altura; fout.write((char*)&reg1,sizeof(registro)); cout << "datos grabados OK.."<<endl; fout.close(); //escribir Como segunda parte del ejercicio, ahora debe modificar el programa para que permita leer los datos escritos en el apartado anterior, usando la misma estructura Registro.