9 GESTIÓN BÁSICA DE FICHEROS. Contenido

Tamaño: px
Comenzar la demostración a partir de la página:

Download "9 GESTIÓN BÁSICA DE FICHEROS. Contenido"

Transcripción

1 9 GESTIÓN BÁSICA DE FICHEROS Contenido Introducción Archivos C Apertura de ficheros Cierre de ficheros Detección de fin de fichero y otras funciones Comprobación de apertura correcta Lectura/Escritura en ficheros de texto Avance del cursor Ficheros de texto Ficheros binarios Utilidad de los ficheros binarios Lectura/Escritura byte a byte Lectura/Escritura por bloques de bytes Acceso aleatorio a ficheros Ficheros pasados como argumentos Ejemplos de utilización de ficheros binarios y de texto. Ejercicios. En este capítulo vamos a tratar la gestión básica de ficheros (también llamados archivos) en C++ y lo haremos a partir del concepto de flujo. Vamos a estudiar cómo declarar los identificadores que establecen el modo de flujos de los ficheros (de entrada o salida básicamente) y procuraremos no entrar en el concepto de clase de manera que la gestión de ficheros resulte asimilable por el alumno con los conceptos aprendidos hasta el momento. Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 1

2 9.1.- INTRODUCCION. En este tema se verán las características básicas que nos permitirán trabajar con ficheros (también llamados archivos). Por qué se necesitan los ficheros? Todos los programas vistos hasta ahora trabajaban con información almacenada en memoria principal, no obstante, hay situaciones en que esto no es apropiado. Algunas de esas situaciones podrían ser: * Los datos con los que necesita trabajar el programa son demasiado grandes (ocupan mucha memoria) para que entren en la memoria principal. * Nos interesa mantener la información después de cada ejecución, necesitamos utilizar datos procedentes de otros programas (editores, etc.), o generar datos para que puedan ser utilizados por otros programas. En dichos casos se utilizarán ficheros para contener la información en memoria secundaria (disco duro, disquetes, etc.). Definición de Fichero: Es una colección de elementos lógicamente relacionados y almacenados en memoria secundaria. A más bajo nivel, un fichero es una secuencia de bits almacenado en algún dispositivo externo (como por ejemplo uno de memoria secundaria) ARCHIVOS EN C++. En los temas anteriores hemos visto que los datos de entrada o salida en un programa C++ son obtenidos o enviados directamente a través de lo que llamamos flujos de entrada o salida. Hasta hora hemos manejado los flujos estándares cin y cout, y una serie de operadores (<< y >>) y funciones (como get o getline por ejemplo) disponibles a partir de la biblioteca iostream y que son útiles para la entrada/salida de la información. En C++ un fichero es simplemente un flujo externo que se puede abrir para entrada (dando lugar a un flujo de archivo de entrada que, para simplificar, llamaremos simplemente archivo o fichero de entrada), para salida (dando lugar a un flujo de archivo de salida que, para simplificar, llamaremos simplemente archivo o fichero de salida) o para entrada-salida (archivo o fichero de entrada-salida o archivo de E/S). C++ soporta dos tipos de archivos: de texto y binarios. Los primeros almacenan datos como códigos ASCII. Los valores simples, tales como números y caracteres están separados Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 2

3 por espacios. Los segundos almacenan bits de forma directa y se necesita usar la dirección de una posición de almacenamiento. Una biblioteca en C++ que proporciona funciones y operadores para el manejo de ficheros es la biblioteca fstream. En general emplearemos ésta para la gestión básica de ficheros por lo que deberemos incluir el archivo de cabecera correspondiente en nuestros programas mediante la declaración adecuada, o sea, incluyendo la directiva de preprocesamiento siguiente #include <fstream.h> La biblioteca fstream ofrece un conjunto de funciones y operadores comunes a todas las operaciones de Entrada/Salida (E/S) de ficheros Apertura de ficheros. Antes de que un programa pueda manipular un fichero para leer o escribir información se debe abrir (o crear si es necesario) el fichero para identificar la posición del mismo en el programa (o sea, la dirección de memoria a partir de la cual almacenaremos o leeremos el contenido del fichero). Ya hemos indicado anteriormente que los archivos son tratados como flujos de entrada/salida por lo que, al igual que sucede con los flujos estándares y por defecto cin y cout, la información debe ser transferida en una sola dirección por lo que, salvo en ciertos casos, los ficheros deben abrirse bien para entrada o bien para salida Ficheros de entrada o salida. Supongamos que tenemos un fichero cuyo nombre en el sistema operativo es nombre.extensión. Entonces hay varias formas de abrirlo. (A) Como fichero de entrada: Para ello empleamos la siguiente declaración ifstream descriptor ( nombre.extensión ); (B) Como fichero de salida: Para ello empleamos la sentencia ofstream descriptor ( nombre.extensión ); Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 3

4 En ambos casos descriptor es una variable que se asocia al fichero cuyo nombre es nombre.extensión. Comentario: Observe que a partir de la apertura de un fichero, el descriptor del fichero será utilizado en todas las operaciones que se realicen sobre el fichero (OJO! no utilizamos el nombre original del fichero). Otra forma de abrir un fichero para operar sobre él consiste en crear primero el flujo de entrada asociado al mismo, o sea, en asociar una variable descriptor a un fichero en una forma similar a como se declara una variable en C++, es decir, mediante una sentencia tal como ifstream descriptor; ofstream descriptor; // Para ficheros de entrada // Para ficheros de salida y, posteriormente, abrir el fichero (en el modo deseado: de entrada o salida por ejemplo) mediante el uso de la función open aplicada a ese flujo de entrada, o sea en la forma descriptor.open( nombre.extensión,int modo); donde la variable modo indica el modo de apertura del fichero y los modos de apertura, posiblemente combinados mediante el símbolo como veremos a continuación, pueden ser: ios:: in // Modo entrada ios:: out // Modo salida ios:: app // Modo añadir, o sea, posicionar el cursor del fichero (ver abajo) // al final del fichero antes de cada escritura ios:: binary // El archivo se abre en modo binario ios:: nocreate // Genera un error si el fichero no existe ios:: noreplace // Genera un error si el fichero existe ya Un archivo abierto con ofstream puede serlo en dos modos: Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 4

5 1. Modo salida, usando ios::out. En este caso todos los datos en el fichero se descartan (o sea, se borra el contenido del fichero si existe previamente). Naturalmente si el fichero no existe lo crea. En ambos casos el cursor del fichero (o sea, la cabeza de lectura/escritura del mismo) se posiciona al principio del fichero. Este es el modo por defecto de apertura de un fichero de salida. 2. Modo añadir, usando ios::app. En este caso los datos adicionales se añaden a partir del final del fichero (o sea, el cursor se sitúa al final del fichero y es ahí a partir de donde se empieza a realizar la escritura). También se pueden combinar las dos formas anteriormente vistas de forma que el descriptor de fichero es declarado a la vez que el fichero es abierto. Para ello empleamos las siguientes declaraciones (según el fichero se abra para entrada o para salida): ifstream descriptor( nombre.extensión,int modo); ofstream descriptor( nombre.extensión,int modo); // para entrada // para salida donde modo es como se ha mostrado anteriormente. Ejemplo 1: Las dos líneas siguientes abren el fichero mio.txt como fichero de entrada (para lectura) y lo asocian al descriptor in. ifstream in; in.open( mio.txt ); // descriptor del fichero a abrir // Apertura del fichero; Esas dos líneas equivalen a la siguiente: ifstream in ( mio.txt ); // Apertura del fichero; Ejemplo 2: Para abrir el fichero salida.dat en modo salida (si el fichero no existe lo crea, y si existe borra su contenido) asociándolo al descriptor out podemos usar la siguiente sentencia; o la siguiente o también ofstream out("salida.dat"); ofstream out("salida.dat", ios::out); Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 5

6 ofstream out; out.open("salida.dat"); Ficheros de entrada/ salida. Un fichero puede ser también abierto para entrada-salida. En este caso emplearemos una declaración fstream combinada con la operación de apertura correspondiente, o sea: fstream descriptor; descriptor.open( nombrefichero.ext, ios::in ios::out) O alternativamente podemos combinar la declaración y la apertura en una sola sentencia. Por ejemplo: fstream descriptor( nombre.extensión,ios::in ios:: out); // para entrada-salida La declaración fstream puede ser usada arbitrariamente tanto sobre archivos de escritura como sobre archivos de lectura, aunque recomendamos que para archivos de solo-lectura se use ifstream y para aquellos de solo-escritura se use ofstream. Comentario: Cuando un fichero de E/S se declara con fstream, abrirlo con open debemos especificar el modo de apertura que queremos (entrada, salida o bien entrada.salida). Ejemplo 3: // Abrimos el fichero F1.dat como fichero de entrada fstream inout; inout.open("f1.dat", ios::in); // Intentamos abrir el fichero F1.dat pero tenemos un error puesto que no // hemos especificado el modo de apertura fstream inout; inout.open("f1.dat"); // Abrimos el fichero F2.txt como fichero de salida en modo AÑADIR. fstream inout; inout.open("f2.txt", ios::app); Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 6

7 // Abrimos el fichero binario.dat para entrada-salida binaria y le asociamos el // descriptor ejemplo. fstream ejemplo ("binario.dat", ios::in ios:: out ios::binary); Cierre de ficheros. Un fichero anteriormente abierto y con un descriptor asociado a él debe ser cerrado con el fin de liberar los recursos asociado a él de la siguiente forma: descriptor.close() Detección de fin de fichero y otras funciones. Además de las funciones open y close, existen otras funciones disponibles en la biblioteca fstream, que pueden ser aplicadas directamente al descriptor de un fichero en la forma Descriptor.función(); Donde función es una de las siguientes: La función eof() que devuelve "true" si se ha alcanzado el final del fichero y falso en cualquier otro caso. LECTURA ADELANTADA: Para que la función eof() devuelva un valor de verdad (actualizado) es necesario, en muchos casos, realizar una operación de lectura previa. Esto permite que se actualice el valor a devolver por la función eof comprobándose si tras realizar dicha operación se ha llegado al final del fichero. A este proceso lo llamaremos lectura adelantada (ver el ejemplo 6). La funciones fail() o bad() que devuelven "true" si existe un error en una operación de flujo asociada al fichero identificado por la variable descriptor (bien sea en una apertura, un cierre, una escritura o una lectura entre otras posibles operaciones) y "false" en caso contrario. La diferencia entre estas dos Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 7

8 funciones es muy sutil. En realidad un flujo puede estar en un estado de fallo (i.e., fail) pero no en un estado erróneo (i.e. bad) en el caso de que el flujo no se considere corrupto ya que no se han perdido los caracteres que provienen del flujo (en un estado erróneo, esto puede no ocurrir). Recomendamos un vistazo a algún manual de C++ para aclarar las diferencias tan sutiles. La función good() que devuelve "true" si no existe un error en una operación de flujo y "false" en caso contrario Comprobación de apertura correcta Antes de empezar a leer o escribir en un fichero es siempre conveniente verificar que la operación de apertura se realizó con éxito. La comprobación del "buen estado" de un determinado flujo asociado a un fichero se puede realizar preguntando directamente sobre el descriptor de fichero asociado (al igual que se hace con los flujos estándares cin y cout) en la forma siguiente: if (descriptor) //Buen estado. Continuamos // operando sobre el fichero... if (! descriptor) // Mal estado. Escribimos un mensaje // a la salida estándar cout << Error en la apertura... o mejor aun, utilizando las funciones good y bad (o fail) vistas anteriormente, o sea: if (descriptor.good()) //Buen estado. Continuamos // operando sobre el fichero... if (descriptor.bad()) // o descriptor.fail() // Mal estado. Escribimos un mensaje // a la salida estándar cout << Error en la apertura Ejemplo 4: ifstream in("f1.dat"); if (!in) // O bien, if (in.bad() ) cout << endl <<"Incapaz de crear o abrir el fichero " << endl; Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 8

9 // salida estándar cout << " para entrada " << endl;. // Se opera sobre el fichero LECTURA-ESCRITURA EN FICHEROS (DE TEXTO) Avance del cursor Tanto para los ficheros de texto como para los ficheros binarios existe lo que se denomina el cursor o apuntador del fichero que es un índice que direcciona una posición relativa del fichero. El cursor marca en todo momento la posición actual del fichero a partir de la cual va a tener lugar la siguiente operación de entrada-salida a ejecutar sobre el mismo (bien sea una operación de lectura o una de escritura). Cada vez que se realiza una operación de entrada o salida, el cursor del fichero avanza automáticamente el número de bytes leídos o escritos Ficheros de texto La lectura y la escritura en un archivo de texto se puede realizar directamente con los operadores << y >> al igual que se realiza sobre los flujos estándares cin y cout. Ejemplo 5: El siguiente programa escribe tres líneas en un fichero llamado EJEMPLO5.TXT que se crea en el programa (si ya existe borramos su contenido). Cada línea consta de un entero, un real y una cadena de caracteres. Los datos en cada línea están separados por espacios en blanco. #include <fstream.h> // Biblioteca para el manejo de ficheros #include <iostream.h> // Biblioteca para la entrada-salida estándar int main() ofstream fichout("ejemplo5.txt",ios::out); if (!fichout) cout << endl << "Incapaz de crear este o abrir el fichero " << endl; fichout << 1 << " " << 5.0 << " APROBADO" << endl; // Escritura en el fichero fichout << 2 << " " << 1.1 << " SUSPENSO" << endl; fichout << 3 << " " << 8.0 << " NOTABLE " << endl; fichout.close(); // Fin del main Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 9

10 Comentario: El operador >> omite los espacios en blanco al igual que ocurría en la entrada estándar. Ejemplo 6: El siguiente programa lee el fichero de texto EJEMPLO5.TXT, creado en el ejemplo anterior, y visualiza su contenido en el monitor. #include <fstream.h> // Libreria para el manejo de ficheros #include <iostream.h> typedef char TCadena[30]; int main() int i; float r; TCadena cad; ifstream fichin("ejemplo5.txt"); // declaracion y apertura del fichero if (!fichin) cout << endl << "Incapaz de crear o abrir el fichero "; fichin >> i; // Observe la lectura adelantada!!! while (!fichin.eof()) cout << i << " "; // Lectura de valores en el fichero fichin >> r; cout << r << " "; // Lectura de valores en el fichero fichin >> cad; cout << cad << endl; // Lectura de valores en el fichero fichin >> i; fichin.close(); // Fin del // Fin del main Comentarios: (1) Observe en el ejemplo anterior que ha sido necesario realizar una lectura adelantada previamente al chequeo del fin de fichero. Si no se realiza de esta forma podriamos tener problemas. (2) Observe también que no es necesario realizar una lectura para saltarse los espacios en blanco que fueron introducidos en el fichero EJEMPLO5.TXT en el ejemplo 5. Esto es debido a que, como ya se comentó anteriormente, el operador >> omite los espacios en blanco (3) No olvide cerrar los ficheros!! FICHEROS BINARIOS. Hasta ahora hemos trabajado con ficheros de texto, éstos pueden ser vistos como una serie de caracteres que pertenecen a un determinado código de entrada/salida, en nuestro caso al Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 10

11 código ASCII. También hemos visto cómo se abre un fichero binario. En esta sección vamos a ver cómo podemos leer y escribir datos en binario Utilidad de los ficheros binarios. En esta sección explicamos la diferencia de los ficheros binarios con los de texto y lo hacemos a partir de un ejemplo sencillo.. Por ejemplo, si creamos un fichero con ofstream fich("f1.dat",ios::out); if (!fich) cout << endl << "Incapaz de crear este o abrir el fichero "; cout << " para salida " << endl; fich << "HOLA ADIOS"; // Escribe la cadena en el fichero // "F1.dat" fich.close(); F1.dat será un fichero que contiene 10 bytes, donde cada uno será el código ASCII correspondiente a cada uno de los caracteres que hemos escrito en el fichero (un carácter ocupa un byte). Esta característica hace que un fichero de texto pueda ser usado por otros programas que supongan que el contenido del fichero es un conjunto de caracteres del código ASCII. Sabemos que los datos se almacenan en memoria según las características del tipo con que han sido declarados. Así, para: char C; unsigned N; La variable C usa un byte en memoria principal, y en el se almacena el código ASCII de un carácter, mientras que la variable N, al ser de tipo entero sin signo, usa dos bytes, y en ellos se almacena el código binario correspondiente a un número entero sin signo. Esta característica sugiere que para almacenar en el fichero de texto el número contenido en la Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 11

12 variable N no basta con grabar directamente los dos bytes en el fichero (Ejemplo, si N contiene el número 13864, para almacenarlo en el fichero se requieren 5 caracteres- o sea, 5 bytes-, mientras que en memoria la variable N ocupa cuatro bytes). Así pues, una instrucción fich << N; ocasionará dos pasos: 1) Convertir N a su configuración en caracteres ASCII. 2) Escribir en el fichero los caracteres ASCII obtenidos. En el caso del tipo CHAR, no es necesario efectuar la conversión pues la variable en memoria principal se corresponde con (es decir, contendrá como valor) el código ASCII correspondiente al carácter almacenado en la misma. Hay situaciones en las que en lugar de convertir los valores a escribir en el fichero en una serie de caracteres, puede resultar útil efectuar la grabación en el fichero directamente a partir contenido de la memoria. A los ficheros creados de esta forma se les llama ficheros binarios. Ventajas del uso de ficheros binarios:: El proceso de lectura ó escritura es más rápido, pues nos ahorramos el tiempo necesario para la conversión. Normalmente un fichero binario ocupa menos memoria que su correspondiente fichero de texto (Ejemplo, escribir en formato de texto ocuparía cinco bytes, mientras que hacerlo en formato binario ocuparía dos bytes). Inconvenientes del uso de ficheros binarios: No podrán ser usados por programas de carácter general. Por ejemplo, si intento usar la orden TYPE (de MS-DOS) o la orden cat (de UNIX) con un fichero binario, la información que obtengo por pantalla no es legible. De todo lo dicho anteriormente se desprende que es conveniente usar ficheros de texto cuando pueda interesarnos tratar la información contenida en éstos con programas de carácter general (Editor, TYPE, PRINT, etc.), y en otro caso usar ficheros binarios. Tratamiento de ficheros binarios. Puesto que no hay que distinguir entre diferentes formatos para diferentes tipos de datos, sólo se necesitan instrucciones que lean y escriban un cierto número de bytes por lo que en realidad sólo necesitamos un tipo de instrucción para lectura y un tipo de instrucción para Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 12

13 escritura. Aún así veremos dos formas diferentes de leer y escribir desde y en ficheros binarios Lectura/Escritura byte a byte Lectura. Para leer un carácter (es decir un byte) desde un fichero usamos la función get aplicada sobre el descriptor del mismo de la siguiente manera descriptor.get(ch); Esta instrucción extrae un único carácter del flujo de entrada, incluyendo el espacio en blanco y lo almacena en la variable ch (que debe ser declarada de tipo carácter). Esta función avanza además un byte la posición del cursor del archivo identificado por la variable descriptor. Ejemplo 7: El siguiente programa lee (byte a byte) un fichero binario que contiene caracteres y visualiza su contenido en el monitor. #include <fstream.h> // Librería para el manejo de ficheros #include <iostream.h> int main() char c; ifstream fichin("f1.dat",ios::in ios::binary); if (!fichin) cout << endl <<"Incapaz de Abrir el fichero "; fichin.get(c); // LECTURA ADELANTADA!! while (fichin) // Tambien vale 'while (!fichin.eof())' cout << c; fichin.get(c); ; fichin.close(); // Fin del // Fin del main Escritura. Para escribir o mandar un carácter (es decir un byte) a un archivo de de salida usamos la función put aplicada al descriptor de fichero del archivo de la siguiente manera Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 13

14 descriptor.put(ch); Esta instrucción coloca el carácter contenido en ch en el archivo de salida identificado por la variable descriptor (o sea, en su caso en el fichero asociado a dicho descriptor) y lo hace a partir de la posición actual del cursor. A continuación avanza el cursor del fichero al siguiente byte. Ejemplo 8: El siguiente programa escribe un texto (byte a byte) en el fichero Ejemplo8.dat. #include <fstream.h> #include <iostream.h> int main() char cad[17]="texto A ESCRIBIR"; ofstream fichout("ejemplo8.dat", ios::out ios::binary); if (!fichout) cout << endl << "Incapaz de Crear o Abrir el fichero "; for (int i=0;i<=16;i++) fichout.put(cad[i]); // Escritura en el fichero fichout.close(); // Fin del // Fin del main Lectura/Escritura por bloque de bytes. Otra manera alternativa de leer y escribir en ficheros binarios consiste en utilizar las funciones read() y write() Lectura. básico La función read tiene varios formatos aunque a continuación explicamos el formato De forma intuitiva, una llamada de la forma Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 14

15 descriptor.read(&c, num); donde c es una variable de un tipo arbitrario (por ejemplo de un tipo TElemento), pasada por referencia, y num es un entero o una variable de tipo entero, ejecuta una lectura (a partir de la posición actual del cursor del fichero asociado a la variable descriptor) de num bytes del fichero y los coloca en la variable c. En definitiva la llamada lee num bytes del fichero y los coloca en la variable c. Esta función puede extraer caracteres hasta alcanzar el fin del fichero Escritura. Asumiendo que c es una variable de un tipo arbitrario (por ejemplo de un tipo TElemento) pasada por referencia, que num es un entero o una variable conteniendo un entero que descriptor esta asociado a un fichero, una llamada de la forma Descriptor.write(&c, num); Escribe, a partir de la posición del cursor, el contenido de c en el fichero asociado a descriptor. En realidad sólo escribe num bytes que corresponden a los num bytes siguientes que se encuentran en memoria a partir de la dirección en la que se encuentra almacenado el contenido de c. Esta instrucción escribe a partir de la posición indicada por el puntero de lectura/escritura del fichero asociado a descriptor los num bytes contenidos en el parámetro c. Se puede observar que en el segundo parámetro hay que indicar el número de bytes que ocupa el valor que se desea escribir. Para conocer éste dato de una forma fácil, podremos usar la función sizeof. Ejemplo 9: El siguiente programa declara el fichero F.dat para entrada-salida, graba en dicho fichero el valor en binario y después los veinte primeros enteros. Posteriormente, lee el fichero visualizando su información en la salida estándar (el monitor). #include <fstream.h> #include <iostream.h> #include <stdlib.h> int main() float R= ; Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 15

16 int i,n; fstream fichbin("f.dat",ios::binary ios::out); // Apertura como salida fichbin.write(&r,sizeof(float)); for (i=1;i<=20;i++) fichbin.write(&i,sizeof(int)); fichbin.close(); fichbin.open("f.dat",ios::binary ios::in); fichbin.read(&r,sizeof(float)); cout <<endl << "R= " << R << endl; for (i=1;i<=20;i++) fichbin.read(&n,sizeof(int)); cout <<endl << i << "= " << N << endl; system("pause"); return 0; // Fin del main // Apertura como entrada Observa que la apertura y el cierre de ficheros binarios se puede efectuar con las mismas operaciones estudiadas para ficheros de texto Acceso aleatorio a ficheros. Sabemos que las operaciones de lectura y escritura siempre se realizan a partir de la posición indicada por el puntero de lectura/escritura del fichero. Para poder acceder correctamente al fichero, debemos saber como cambia dicho puntero de lectura/escritura. Hasta ahora hemos visto, que tenía un comportamiento secuencial, es decir, siempre se incrementa en el número de caracteres leídos ó escritos con cada instrucción, no obstante, puede haber situaciones en las que éste comportamiento no se adapte a nuestras necesidades. Supongamos que deseamos acceder a información situada cerca del final del fichero. Según lo visto hasta ahora, debemos leer previamente toda la información que le precede con objeto de ir avanzando el puntero de lectura/escritura progresivamente. Puesto que conocemos la situación de la información que queremos leer ó escribir, parece más conveniente poder situar el puntero de lectura/escritura directamente en dicha posición. Para gestionar éste tipo de comportamiento disponemos de una serie de funciones. Ya hemos visto que el acceso a un fichero se describe en términos de lo que denominamos el cursor o apuntador del fichero que es un índice que apunta a una posición relativa del fichero de manera que en todo momento la posición actual del cursor marca el lugar a partir del cual tendrá lugar la operación (de lectura o escritura) sobre el fichero. Además, cada vez que se realiza una operación de entrada o salida, el cursor del fichero avanza automáticamente dependiendo del número de bytes leídos o escritos. Básicamente existen dos instrucciones de acceso aleatorio para cada tipo de acceso a un fichero. Las Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 16

17 vemos a continuación Lectura. Las funciones de acceso aleatorio para lectura son seekg y tellg. seekg(pos) mueve la posición del cursor del fichero a la posición relativa del fichero indicada por pos, donde pos es un entero (o variable conteniendo un entero). tellg() devuelve la posición relativa actual del cursor asociado al fichero de entrada y devuelve un 1 en caso de existir algún error Escritura. Las funciones de acceso aleatorio equivalentes para escritura on seekp y tellp. seekp(pos) mueve la posición del cursor del fichero a la posición absoluta del fichero indicada por pos. tellp() devuelve la posición absoluta actual del cursor asociado al fichero de salida y devuelve un 1 en caso de existir algún error. Ejemplo 10: El siguiente programa almacena en un fichero los 10 primeros enteros, luego muestra por pantalla el quinto entero (o sea el 5), posteriormente lo reemplaza por el valor 100, y al final visualiza en el monitor el contenido del fichero. #include <fstream.h> #include <iostream.h> #include <stdlib.h> int main() int i,n; fstream fichbin("ejemplo11.dat",ios::binary ios::in ios::out); for (i=1;i<=10;i++) fichbin.write(&i,sizeof(int)); // Almacena los 10 primeros enteros fichbin.seekp(4*sizeof(int)); // se posiciona al principio del quinto entero fichbin.read(&n,sizeof(int)); // Lee dicho entero cout <<endl << "Quinto= " << N << endl; // visualiza el valor 5 fichbin.seekp(4*sizeof(int)); // se posiciona de nuevo al principio del quinto entero // pues el cursor había avanzado. i=100; fichbin.write(&i,sizeof(int)); // Modifica el valor 5 por el valor 100; Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 17

18 fichbin.seekp(0*sizeof(int)); // se posiciona de nuevo al principio del fichero for (i=1;i<=10;i++) fichbin.read(&n,sizeof(int)); cout <<endl << i << "= " << N << endl; // Se visualiza el contenido en pantalla fichbin.close(); system("pause"); return 0; // Fin del main Ficheros pasados como argumentos. En esta sección simplemente comentamos que cuando el descriptor de un fichero es pasado como argumento, la mayoría de las veces debe hacerlo como parámetro por referencia puesto que cualquier operación de lectura/escritura (y la mayoría de las de acceso directo) modifican la posición del cursor asociado a ese fichero. Ejemplo 11: El siguiente programa simplemente añade la cadena "HOLA" al fichero "poesia.txt". Observe que el argumento formal del procedimiento escribir_hola esta declarado por referencia. #include <fstream.h> void escribir_hola(fstream &canal_salida) canal_salida << endl << "HOLA" << endl; int main() fstream out("poesia.txt",ios::app); escribir_hola(out); out.close(); // Fin del main Ejemplos de utilización de ficheros binarios y de texto. En esta sección mostramos dos ejemplos de cómo podemos leer/escribir datos desde/a ficheros binarios o de texto. Comentario: Observe que en la apertura de ficheros binarios ES NECESARIO, en algunos compiladores como es el caso del DEV-C++) especificar el modo de apertura (in, out, app,...,etc) a pesar de que este sea el modo por defecto. Si no se especifica entonces podemos tener problemas en la lectura de los datos. Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 18

19 Ejemplo 12: El siguiente programa lee, desde teclado una información relativa a una serie de empleados de una empresa. Los datos a leer son el nombre, un código formado por cuatro enteros - ojo, no por cuatro dígitos- y una cantidad correspondiente al sueldo mensual. Entonces, toda la información recogida es grabada en dos ficheros (uno de texto y otro binario) para ser posteriormente leída desde los mismos y visualizada en pantalla. #include <iostream.h> #include <stdlib.h> #include <fstream.h> //CONSTANTES const int MAXCAD = 40; const int MAXVECT = 4; const char ENTER = '\n'; //TIPOS typedef int TVector[MAXVECT]; typedef char TCadena[MAXCAD+1]; struct TPersona TCadena nombre; TVector codigo; // exactamente cuatro cifras float sueldo; ; void VisualizaPersonasFichero(TCadena nombrefichero,int numempleados); void EscribePersonaFichero(TCadena nombrefichero, TPersona p); void VisualizaPersonasFicheroBin(TCadena nombrefichero,int numempleados); void EscribePersonaFicheroBin(TCadena nombrefichero, TPersona p); void pintavector(tvector v); void pintapersona(tpersona p); void leepersona(tpersona &p); int main() TPersona per; TVector cod; int i,n; cout << "introduzca el número de personas a incluir "; cin >> N; for (i=1; i <= N ; i ++) leepersona(per); // Escribo la información en texto y en binario EscribePersonaFichero("empleados.txt",per); EscribePersonaFicheroBin("empleados.dat",per); cout << "Mostramos la información almacenada" << endl; cout << "Visualizo desde el fichero de texto: " << endl; VisualizaPersonasFichero("empleados.txt",N); cout << endl; cout << "Visualizo desde el fichero binario: " << endl; VisualizaPersonasFicheroBin("empleados.dat",N); cout << endl; system("pause"); return 0; // Fin del main Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 19

20 // Este proc. visualiza la información almacenada en el fichero de texto void VisualizaPersonasFichero(TCadena nombrefichero, int numempleados) ifstream in; int i,j; TPersona p; in.open(nombrefichero); if (in.bad()) // Comprobamos el estado de la apertura cout << "Error al abrir el fichero: " << nombrefichero << endl; for (i=1;i<=numempleados; i++) in.getline(p.nombre,maxcad+1,enter); //USO DE getline en el fichero for (j=0;j<maxvect;j++) in >> p.codigo[j]; in >> p.sueldo; pintapersona(p); in.ignore(); in.close(); // Fin VisualizaPersonasFichero // Uso de ignore() sobre el descriptor // El siguiente proc. Escribe la informacion de una persona en un fichero de texto void EscribePersonaFichero(Tcadena nombrefichero, TPersona p) ofstream out; int i; out.open(nombrefichero,ios::app); if (out.bad()) cout << "Error al abrir el fichero: " << nombrefichero << endl; out << p.nombre << endl; for(i=0;i<maxvect;++i) out << p.codigo[i] << ' '; // Ojo, incluimos un espacio en medio!! out << p.sueldo << endl; out.close(); // Fin EscribePersonaFichero // Este proc. visualiza la información almacenada en el fichero binario void VisualizaPersonasFicheroBin(TCadena nombrefichero,int numempleados) ifstream in; int i; Tpersona p; in.open(nombrefichero, ios::in ios::binary); // Ojo, hay que poner 'in' forzosamente if (in.bad()) Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 20

21 cout << "Error al abrir el fichero: " << nombrefichero << endl; for (i=1;i<=numempleados;i++) in.read(&p,sizeof(tpersona)); // Se lee toda la información!! pintapersona(p); in.close(); // Fin VisualizaPersonasFicheros // El siguiente proc. Escribe la informacion de una persona en un fichero binario void EscribePersonaFicheroBin(TCadena nombrefichero, TPersona p) ofstream out; out.open(nombrefichero, ios::binary ios::app); // Ojo, especificamos el modo AÑADIR if (out.bad()) cout << "Error al abrir el fichero: " << nombrefichero << endl; out.write(&p,sizeof(tpersona)); out.close(); // Fin EscribePersonaFicheroBin // El siguiente proc. visualiza un código de cuatro enteros (o sea, un vector) a la pantalla void pintavector(tvector v) int i; cout << "CODIGO : "; for(i=0;i<maxvect-1;++i) cout << v[i] << ", " ; cout << v[maxvect-1] << " " << endl; // El siguiente proc. Visualiza la información de una persona en la pantalla void pintapersona(tpersona p) cout << "NOMBRE : " << p.nombre << " "; pintavector(p.codigo); cout << "SUELDO : " << p.sueldo << endl; // El siguiente proc, lee información de una persona desde el teclado void leepersona(tpersona &p) int i; cin.ignore(); // Para limpiar el buffer de teclado cout << "Nombre? "; cin.getline(p.nombre,maxcad+1,enter); cout << endl << "Codigo (4 enteros-no cifras solo)?"; for(i=0;i<maxvect;++i) cin >> p.codigo[i]; Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 21

22 cout << endl << "Sueldo (euros)?"; cin >> p.sueldo; Comentarios: 1. El primer argumento de read y write no necesita el símbolo & cuando es de tipo array como se ve en el siguiente ejemplo. 2. Observe que es posible usar ignore() y getline() sobre el descriptor de un fichero y que funcionan de manera análoga a su aplicación sobre cin. Ejemplo 13: El siguiente programa escribe el vector que contiene la información 0,1,2,3,...,8,9 tanto en un fichero binario como en uno de texto. #include <iostream.h> #include <stdlib.h> #include <fstream.h> //CONSTANTES const int MAXCAD = 20; const int MAXVECT = 10; //TIPOS typedef int TVector[MAXVECT]; typedef char TCadena[MAXCAD+1]; void LeeVectorFichero(TCadena nombrefichero, TVector &v); void EscribeVectorFichero(TCadena nombrefichero, TVector v); void LeeVectorFicheroBin(TCadena nombrefichero, TVector &v); void EscribeVectorFicheroBin(TCadena nombrefichero, TVector v); void pintavector(tvector v); int main() TVector v; int i; for(i=0;i<maxvect;++i) // Inicializo el vector v[i]=i; cout << "Inicializo el vector y lo escribo " << "en ficheros de texto y binario: " << endl; pintavector(v); EscribeVectorFichero("vector.txt",v); EscribeVectorFicheroBin("vector.dat",v); for(i=0;i<maxvect;++i) // Borro el vector v[i]=0; cout << "Reseteo el contenido del vector:" << endl; pintavector(v); cout << "Leo v desde el fichero de texto: " << endl; Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 22

23 LeeVectorFichero("vector.txt",v); pintavector(v); cout << "Leo v desde el fichero binario: " << endl; LeeVectorFicheroBin("vector.dat",v); pintavector(v); system("pause"); return 0; // Lee un vector desde un fichero de texto void LeeVectorFichero(TCadena nombrefichero, TVector &v) ifstream in; int i; in.open(nombrefichero); if (in.bad()) // Comprobamos el estado de la apertura cout << "Error al abrir el fichero: " << nombrefichero << endl; for(i=0;i<maxvect;++i) in >> v[i]; in.close(); // Escribe un vector en un fichero de texto void EscribeVectorFichero(TCadena nombrefichero, TVector v) ofstream out; int i; out.open(nombrefichero); if (out.bad()) cout << "Error al abrir el fichero: " << nombrefichero << endl; for(i=0;i<maxvect;++i) out << v[i] << " "; out.close(); // Lee un vector desde un fichero binario void LeeVectorFicheroBin(TCadena nombrefichero, TVector &v) ifstream in; in.open(nombrefichero); if (in.bad()) cout << "Error al abrir el fichero: " << nombrefichero << endl; in.read(v,sizeof(tvector)); in.close(); Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 23

24 // Escribe un vector a un fichero binario void EscribeVectorFicheroBin(TCadena nombrefichero, TVector v) ofstream out; out.open(nombrefichero); if (out.bad()) cout << "Error al abrir el fichero: " << nombrefichero << endl; out.write(v,sizeof(tvector)); out.close(); // Visualiza un vector a la pantalla void pintavector(tvector v) int i; cout << " v = "; for(i=0;i<maxvect-1;++i) cout << v[i] << ", " ; cout << v[maxvect-1] << " " << endl; Una vez ejecutado el programa la salida es la siguiente: Inicializo el vector y lo escribo en ficheros de texto y binario: v =0,1,2,3,4,5,6,7,8,9 Reseteo el contenido del vector v=0,0,0,0,0,0,0,0,0,0 Leo v desde el fichero de texto v =0,1,2,3,4,5,6,7,8,9 Leo v desde el fichero binario v =0,1,2,3,4,5,6,7,8,9 Presione cualquier tecla para continuar... Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 24

25 EJERCICIOS 1.- Escribir un programa con la opción de encriptar y de desencriptar un fichero de texto. La encriptación (codificación) consiste en que dado un fichero de texto de entrada genere otro fichero de salida de extensión <nombre>.cod donde el texto estará codificado (encriptado). Esta codificación consiste en reemplazar cada carácter por el tercero siguiente (ej. a -> d). Si el carácter resultante es no imprimible éste no se cambia. La opción de desencriptado consiste en leer un fichero <nombre>.cod y recuperar la información original. 2.- Escriba un programa que cree un fichero de texto llamado "PERSONAS.DAT" en el que se guarde la información de un número indeterminado de personas. La información que se guardará por cada persona será: Nombre: De 1 a 30 caracteres. Edad CARDINAL. Sexo CHAR (M/F). Arte CHAR (S/N). Deporte CHAR (S/N). Libros CHAR (S/N). MúsicaCHAR (S/N). La información correspondiente a cada persona se leerá del teclado. El proceso finalizará cuando se teclee un campo "Nombre" que esté vacío. 3.- Amplíe el programa que procesa clientes de una agencia matrimonial para que tome los datos de todos los candidatos a estudiar del fichero PERSONAS.DAT del ejercicio anterior, lea el cliente del teclado y finalmente genere como resultado un listado por pantalla con los nombres de los candidatos aceptados y un fichero llamado ACEPTADOS.DAT con toda la información correspondiente a los candidatos aceptados. Una persona del fichero PERSONAS.DAT se considerará aceptable como candidato si tiene diferente sexo y por lo menos tres aficiones comunes con respecto al aspirante introducido por pantalla. (El programa debe ser capaz de trabajar con cualquier número de personas en el fichero PERSONAS.DAT). 4.- Codifique un programa que cree un fichero para contener los datos relativos a los artículos de un almacén. Para cada artículo habrá de guardar la siguiente información: Código del artículo (Numérico) Nombre del artículo (Cadena de caracteres) Existencias actuales (Numérico) Precio (Numérico). Se deberán pedir datos de cada artículo por teclado hasta que como código se teclee 0. El fichero se habrá de crear ordenado por el código del articulo. 5.- Escriba un programa que dados dos ficheros generados por el programa anterior y ordenados genere un tercer fichero que sea el resultado de mezclar de formar ordenada los dos primeros. 6.- Escriba un programa que tome como entrada el fichero del ejercicio 4 y una condición sobre los campos Existencias actuales o Precio. La condición podrá ser: Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 25

26 <campo> [<,<=,>,>=,!= ] <número> Este programa debe generar como salida un fichero llamado "salida.dat" que contenga todos aquellos artículos para los que se cumple la condición de entrada. 7.- Escriba un programa que tenga como entrada un fichero que contenga un texto y dé como resultado una estadística de las palabras que hay de cada longitud, así como de los caracteres especiales (",", ".", ":", ";"). 8.- Escribir un programa que genere a partir de un fichero de entrada que contiene una tabla de números reales otro fichero de salida <nombre>.bin grabado en formato binario. Ej: Dado una tabla grabada en un fichero en formato binario <nombre>.bin hallar la suma horizontal y vertical y grabar la tabla y los resultados en otro fichero de texto o binario según se introduzca por pantalla. El resultado en texto sería el siguiente: Ej: , ,53 6,03 7,35 13,33 Laboratorio de Programación GESTION BASICA DE FICHEROS Pág 26

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

#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión ); ARCHIVOS EN C++ = FLUJOS DE ENTRADA/SALIDA. Ejemplo: cin y cout Tipos de ficheros: DE TEXTO y BINARIOS Biblioteca de gestión de ficheros (a incluir en los programas) #include Apertura de ficheros

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Operaciones con ficheros en Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba

Más detalles

Tema 3: Ficheros en C++

Tema 3: Ficheros en C++ de : en C++ Programación 2, Curso 2013-2014 Índice de, 1 de de un fichero de (1/2) de un fichero de 2, de un fichero binario de un fichero binario 3 Control de errores de lectura/escritura Qué es un fichero

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante 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

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

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

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen Fundamentos de Informática. Dpto. de ATC - Página 1 de 8 conceptos Manejo de ficheros en C Contienen los datos que se almacenan en dispositivos de almacenamiento masivo: disquetes, discos duros, DROM,

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Uso de archivos en C++

Uso de archivos en C++ CICLO 02-2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº 11 Nombre de la práctica: Uso de archivos en C++ Lugar de ejecución: Laboratorio de Informática

Más detalles

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

Contenidos. Archivos en C++ Archivos en C++ Introducción Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C. El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos

Más detalles

Estructura de Datos: Archivos

Estructura de Datos: Archivos Estructura de Datos: Archivos Registros (record) Un registro es una estructura que consiste de un número fijo de componentes llamados campos. Los campos pueden ser de diferentes tipos y deben tener un

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 2 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 2 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Reserva

Más detalles

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Laboratorio de Arquitectura de Redes. Entrada y salida estándar Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada

Más detalles

ALMACENAMIENTO PERSISTENTE DE DATOS

ALMACENAMIENTO PERSISTENTE DE DATOS UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación ALMACENAMIENTO PERSISTENTE DE DATOS Tema 1 Programación II Programación II 0 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Más detalles

Tema 3. Aplicaciones de Tipo Consola

Tema 3. Aplicaciones de Tipo Consola Tema 3. Aplicaciones de Tipo Consola Una aplicación de consola es aquella que se ejecuta dentro de una ventana de línea de comandos. Este tipo de ventana recibe diferentes denominaciones: Símbolo del sistema,

Más detalles

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 CAPITULO 3. ENTRADA Y SALIDA BÁSICA Usando la librería estandar de entrada y salida, seremos

Más detalles

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.

Más detalles

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:

Más detalles

Programación 2. Grado en Estadística Aplicada. Curso 2012-2013. Generación de números pseudoaleatorios. Manejo de ficheros de texto.

Programación 2. Grado en Estadística Aplicada. Curso 2012-2013. Generación de números pseudoaleatorios. Manejo de ficheros de texto. Programación 2 Grado en Estadística Aplicada Curso 2012-2013 Generación de números pseudoaleatorios. Manejo de ficheros de texto. Jesús Correas jcorreas@fdi.ucm.es Departamento de Sistemas Informáticos

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

Entrada y salida de datos en C y C++

Entrada y salida de datos en C y C++ Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Programación en Visual Basic Ricardo Rodríguez García

Programación en Visual Basic Ricardo Rodríguez García Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:

Más detalles

LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B)

LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B) Sección: Cursos Categoría: Tutorial básico del programador web:

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 Módulo 2. Fundamentos de Programación Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 1 CONTENIDO Tema 1. Conceptos generales de algorítmica Tema 2. Sentencias

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes: Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento

Más detalles

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un

Más detalles

Introducción a los Computadores

Introducción a los Computadores Introducción a los Computadores Práctica nº 4 Introducción. Un tipo de datos estructurado es un tipo de datos formado por una colección organizada de componentes de algún otro tipo de datos. Podremos hacer

Más detalles

UNIDAD 4. MODIFICAR TABLAS DE DATOS

UNIDAD 4. MODIFICAR TABLAS DE DATOS UNIDAD 4. MODIFICAR TABLAS DE DATOS Aquí veremos las técnicas de edición de registros para modificar tanto la definición de una tabla como los datos introducidos en ella. Esta unidad está dedicada, principalmente,

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Programación En Lenguaje C

Programación En Lenguaje C Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder

Más detalles

Definición de Memoria

Definición de Memoria Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados - Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,

Más detalles

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 2: Memoria dinámica y Bibliotecas Objetivos Practicar conceptos

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes: MICROSOFT ACCESS DEFINICIÓN MS Access es un programa para manejar bases de datos. Una base de datos es un conjunto de datos de un determinado tema o contexto, almacenados de forma sistemática, para obtener

Más detalles

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

Más detalles

http://www.conclase.net/c/devcpp.php?art=depurar Depurar programas

http://www.conclase.net/c/devcpp.php?art=depurar Depurar programas Depurar programas Siempre hay que tener en cuenta que los ordenadores hacen sólo aquello que nosotros les decimos que hagan: si los programas no funcionan es porque no los hemos diseñado bien o porque

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)

Más detalles

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando

Más detalles

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual. Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la

Más detalles

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Entorno a C# y Estructuras Secuenciales. Tema: Entorno a C# y Estructuras Secuenciales. Programación I, Guía 3 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar el entorno de programación

Más detalles

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso: Contenidos 1. Introducción a las variables untero 2. Reaso: - oerador de dirección: & - referencias 3. Declaración de variables de tio untero 4. Inicialización de variables de tio untero - El untero nulo:

Más detalles

funciones printf scanf

funciones printf scanf FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones

Más detalles

Funciones. Parámetros por valor

Funciones. Parámetros por valor Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que

Más detalles

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE Microsoft Word SALOMÓN CCANCE Microsoft Word 2013 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE UNIDAD 20: MACROS 20.1. Introducción Al utilizar cotidianamente Word suelen surgir tareas

Más detalles

Programación I Unidad III. Tema: Tipos, estructuras y uniones

Programación I Unidad III. Tema: Tipos, estructuras y uniones Programación I Unidad III Tema: Tipos, estructuras y uniones El especificador typedef La palabra reservada typedef representa un especificador de clase de almacenamiento, y se utiliza para definir nuevos

Más detalles

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO 16.1 INTRODUCCIÓN: El teclado se comunica con la BIOS a través de puertos de comunicación controlados por las interrupciones de la

Más detalles

Tema 10: Tipos de datos definidos por el usuario

Tema 10: Tipos de datos definidos por el usuario Tema 10: Tipos de datos definidos por el usuario Indice 1. Introducción 2. Registros 2.1. Elementos de un registro 2.2 Arrays de registros 2.3. Registros con arrays 2.4. Registros con registros 2.5. Paso

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Programación estructurada (Introducción a lenguaje C)

Programación estructurada (Introducción a lenguaje C) Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

Manual Word Macros y Elementos rápidos

Manual Word Macros y Elementos rápidos Manual Word 2010 Macros y Elementos rápidos CONTENIDO Macros Grabar una macro Ejecutar una macro Macros Word permite automatizar tareas repetitivas mediante la creación de macros que consisten en una serie

Más detalles

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas

Más detalles

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS CONTENIDOS OPERACIONES CON LIBROS DE TRABAJO EN EXCEL GUARDAR UN LIBRO CERRAR UN LIBRO. CREAR UN NUEVO LIBRO. ABRIR UN LIBRO OPERACIONES CON CELDAS, FILAS

Más detalles

Manual del Tablón de Noticias de la UPV para Windows (nueva versión enero 96)

Manual del Tablón de Noticias de la UPV para Windows (nueva versión enero 96) Manual del Tablón de Noticias de la UPV para Windows (nueva versión enero 96) página 1. El Tablón de Noticias de la UPV 1 2. El Programa de Noticias de la UPV para Windows 2 4. Leer y Eliminar Noticias

Más detalles

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia

Más detalles

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( \nla temperatura media es %f\n, media ); Arrays en el lenguaje C Introducción Una posible definición de array sería: Un conjunto de datos del mismo tipo, identificados por el mismo nombre, y que se pueden distinguir mediante un número de índice.

Más detalles

TIPOS DE CAMPOS Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes.

TIPOS DE CAMPOS Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.

Más detalles

Funciones básicas del depurador

Funciones básicas del depurador Funciones básicas del depurador Con frecuencia, los alumnos piensan que cuando su programa no tiene errores de compilación (está correctamente escrito) entonces ya es correcto. Muchas veces esto no es

Más detalles

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas

Más detalles

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas. LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.

Más detalles

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO TIPOS DE DATOS BÁSICOS: Tipo Tipo Tamaño aproximado en bits Rango mínimo Carácter char 8 0 a 55 Entero int 16-3767 a 3767 Real float 3

Más detalles

Tema 14: Arreglos estáticos en C

Tema 14: Arreglos estáticos en C Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom

Más detalles

PowerPoint 2010 Edición del contenido

PowerPoint 2010 Edición del contenido PowerPoint 2010 Edición del contenido Contenido CONTENIDO... 1 AGREGAR TEXTO A UNA DIAPOSITIVA... 2 MOVER Y COPIAR INFORMACIÓN... 5 PANEL DE TAREAS PORTAPAPELES... 7 TRABAJO CON DIAPOSITIVAS... 8 EDICIÓN

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

Base de Datos. Formularios. Consultas

Base de Datos. Formularios. Consultas Base de Datos y programa de Microsoft Access Definición Tablas Formularios Consultas Informes 1 BASE DE DATOS. DEFINICIÓN Y PLANIFICACIÓN Qué es una base de datos? Una base de datos es una serie de datos

Más detalles

Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo

Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo Tipos de datos. Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo Valores Constantes: Es un dato que se introduce directamente en

Más detalles

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

COMBINAR CORRESPONDENCIA

COMBINAR CORRESPONDENCIA COMBINAR CORRESPONDENCIA Microsoft Office Word nos provee una herramienta muy útil que nos permite incluir en un documento, datos que se encuentran almacenados en otro lugar. De esta forma logramos obtener

Más detalles

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control PROPIEDADES DE LOS CAMPOS Cada campo de una tabla dispone de una serie de características que proporcionan un control adicional sobre la forma de funcionar del campo. Las propiedades aparecen en la parte

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

CONSEJOS SOBRE WORD 2012

CONSEJOS SOBRE WORD 2012 PÁRRAFOS Según dicen, Word es el programa informático que más se utiliza en todo el mundo y, sin embargo, es poco conocido y estudiado. Se debe a que es tan intuitivo y parece tan fácil trabajar en él,

Más detalles

Lenguaje de programación C. Introducción

Lenguaje de programación C. Introducción Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la

Más detalles

ATRIBUTOS DE LOS FICHEROS EN LINUX

ATRIBUTOS DE LOS FICHEROS EN LINUX PRÁCTICA 2 ATRIBUTOS DE LOS FICHEROS EN LINUX Objetivos Noción de inodo. Enlaces simbólicos y no simbólicos. Descripción de los atributos de un fichero. Permisos de un fichero. 1. Noción de inodo A cada

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Para poder comenzar a trabajar con Excel, es necesario considerar los siguientes términos:

Para poder comenzar a trabajar con Excel, es necesario considerar los siguientes términos: Conceptos básicos de Excel Para poder comenzar a trabajar con Excel, es necesario considerar los siguientes términos: Libro de trabajo Un libro de trabajo es el archivo que creamos con Excel, es decir,

Más detalles

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I Vectores y matrices Fundamentos de Programación Fundamentos de Programación I 1 Ejemplo de utilización n de vectores: gráfico de producción En una compañía nos han encargado escribir un programita que

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT

DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT I.E.S VIRGEN DE LAS NIEVES Programación C para microcontroladores La función printf Índice de contenidos Introducción...2 La función printf...2

Más detalles

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES. APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación

Más detalles

Flujos (streams) Programación. Licenciatura Lingüística y Nuevas Tecnologias Nadjet Bouayad-Agha

Flujos (streams) Programación. Licenciatura Lingüística y Nuevas Tecnologias Nadjet Bouayad-Agha Flujos (streams) Programación Nadjet Bouayad-Agha Licenciatura Lingüística y Nuevas Tecnologias 2007 Agenda Java e argumentos de entrada: args.zip Como leer e escribir datos de/a los flujos estándares.

Más detalles