PROGRAMACION ALGORITMOS Y ESTRUCTURAS DE DATOS PRACTICA N 6 ESTRUCTURAS COMPUESTAS - ARCHIVOS 1. Dada la siguiente definición: struct datos { int i; double f; }Matriz[5][10]; struct datos *pd; pd = Matriz; a) Si el valor almacenado en pd es 2000, calcular en que posición de memoria está el real Matriz [3][6].f . Considere que el tamaño de un double es de 8 bytes y el tamaño de un entero es de 4 bytes. b) Realice un programa que muestre en pantalla la dirección en memoria de cada una de las estructuras que conforman la matriz. 2. Realizar un programa que defina una tabla de proveedores, teniendo asignado cada proveedor un nombre, cantidad vendida del artículo, precio unitario (introducidos por teclado) e importe (calculado a partir de los datos anteriores). Se pretende visualizar los datos de cada proveedor, el importe total de compra, el nombre del proveedor más barato y el más caro. 3. Realizar un programa que defina una tabla de proveedores empleando una estructura que anida los datos del proveedor (nombre, dirección y teléfono), cantidad vendida, precio unitario e importe (calculado). Los datos no calculados se introducen por teclado. Se pretende visualizar en pantalla los datos de cada proveedor, el importe total de las compras y el nombre y teléfono del proveedor más barato. 4. Realizar un programa que visualiza en binario, según el código ASCII, los caracteres introducidos por teclado (hasta que un carácter sea cero). Se utilizará una unión que contenga un carácter y una estructura de campos de bits para contener un byte. 5. Escriba un programa que cuente el número de líneas presentes en el archivo fuente que contiene al programa. 6. Crear un programa que copie el contenido de un archivo en otro. Los nombres del archivo origen y destino serán introducidos por línea de comandos como parámetros de la función main(). a) Utilizando las funciones de E/S de caracteres. b) Utilizando las funciones de E/S de cadenas de caracteres. c) Utilizando las funciones de E/S formateadas. 1 7.Escriba un programa que contabilice el número de veces que una palabra se encuentra en un archivo aún cuando ésta forme parte de otra palabra. El nombre del archivo y la palabra a buscar serán ingresados por línea de comandos. 8. Realizar un programa que ordene alfabéticamente las líneas de un archivo origen y las guarde ordenadas en un archivo destino. Los nombres de ambos archivos deben pasarse como argumentos de main( ), por línea de comandos del sistema operativo. Utilice una matriz de caracteres y aplique un algoritmo de ordenamiento. Se recomienda el uso de las funciones fgets( ) y fputs ( ) . 9. Según la fórmula de Taylor, podemos expresar la función exponencial ex mediante la siguiente serie: Realice un programa que: a) En forma reiterada pida al usuario el ingreso del valor del exponente, ó Salir del programa. b) Calcule la función exponencial con la máxima cantidad de cifras significativas mediante la serie de Taylor. c) Calcule la función exponencial utilizando la función exp ( ) incluída en math.h . d) Genere un archivo de texto de nombre exponencial.txt y guarde en cuatro columnas: el valor del exponente, el valor obtenido en el punto b, el valor obtenido en c y el error relativo. e) La opción Salir mostrará en pantalla el contenido del archivo generado antes de terminar el programa. NOTA: Tenga presente en la resolución del algoritmo que: Problema Especial: Realizar un programa que dado un archivo de texto origen, genere y muestre un archivo de salida que contenga el mismo texto que el de origen, pero con sus líneas de texto, alineadas a izquierda, derecha ó centro, según lo indique el usuario por línea de comandos con el carácter ‘i’, ‘d’, ó ‘c’. Considere el largo máximo de una línea de caracteres igual a 80. Los nombres de los archivos origen y destino deben ingresar también por línea de comandos. Ejemplo de línea de comandos: >>prueba origen.txt destino.txt i 2