Practica Nº6

Anuncio
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.
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
Descargar