Sie sind auf Seite 1von 2

El manejo de ficheros desde Matlab consiste, al igual que en cualquier otro lenguaje de programacin, en sustutir los dispositivos habituales

de Entrada (teclado) y Salida (pantalla o impresora) por ficheros. Es decir, los programas leern los datos de entrada desde un fichero en lugar desde el teclado y/o escribirn los resultados en otro/s fichero/s en lugar de hacerlo en la pantalla. En este guin de prcticas retomaremos dos ejercicios realizados con anterioridad para modificarlos de modo que alguna de las operaciones de Entrada y Salida se realice a travs de un fichero, en lugar de utilizar teclado y pantalla. Ejemplo Consideremos el problema en que dado un valor numrico que representa un importe en euros, se peda descomponerlo en el nmero menor de monedas y billetes posible. Los requisitos para este programa van a seguir siendo los mismos que antes: - El importe que desea fraccionar en billetes y monedas pero en esta ocasin, el programa no guardar mediante asignaciones los tipos de billete y moneda, sino que acceder a un fichero de nombre euros.txt donde estn guardados dichos valores. PASO 1 En primer lugar, utilizando el Bloc de Notas vamos a crear un fichero que contenga los diferentes de billete y moneda que hay para el euro. Por ejemplo: 500 200 100 50 20 10 5 2 1 0.5 0.2 0.1 0.05 0.02 0.01 Guardadlo con el nombre euro OJO: Al guardar el fichero desde el bloc de notas, Windows le aade automticamente la extensin ".txt". Es decir, si guardis el fichero con el nombre "euros", se va a almacenar en disco como "euros.txt". Tenedlo en cuenta porque ste va a ser el nombre con el que tengis que manejar el fichero desde MATLAB. PASO 2 Ahora se trata de modificar el programa euros.m que ya resolva este problema, de manera que ahora acceda al fichero "euros.txt" y lea los datos que en l hay escritos. La forma que vamos a utilizar aqu hace uso de la sentencia fscanf de lectura de fichero con formato. Previamente tendremos que acceder al fichero ("abrirlo"): money=fopen('euros.txt', 'r'); Con ello la variable "money" almacena un indicativo de fichero, a travs del cual se puede acceder al contenido de euros.txt. La operacin de lectura, que leer el fichero completo, debe hacer uso de dicho indicativo, que es el nico medio por el cual podemos acceder al fichero desde nuestro programa. El objetivo de la operacin de lectura es almacenar el contenido del fichero en una agrupacin de datos (en este caso, un vector que llamaremos divisa). La sentencia que debemos usar es: divisa=fscanf(money, '%f', [1 inf]); que accede al fichero lee su contenido completo y lo almacena en el vector divisas. Los tres parmetros de la funcin indican, respectivamente lo siguiente: - money: es el indicativo del fichero que hemos abierto - '%f': esta cadena de control indica que vamos a leer nmero en punto flotante - [1 inf]: indica que los datos se van a guardar en la variable divisa en forma de vector (1 fila, "infinitas" columnas). Ahora el programa puede hacer uso de la informacin guardada en el vector de la forma habitual. Sin embargo, y dado que no vamos a utilizar ms el fichero, antes de proseguir con el programa debemos cerrar la "conexin" con el fichero: fclose(money); A partir de aqu, el programa sera exactamente igual a como lo tenis. Probad a ejecutarlo para ver si funciona correctamente.

Das könnte Ihnen auch gefallen