Está en la página 1de 6

Preparacin Laboratorio 3 o INC112 - Programacin I o

Lunes 2 de Enero 2012 Prof. Eliana Providel G. - Roberto Muoz S. n Ayudantes: Jos Arenas - Carlos Varas e

Instrucciones: Trabaje utilizando Linux y gcc para compilar o DevC++ en Windows

1. Escribir un programa en C el cual permita al usuario ingresar los datos de X personas, los cuales deben ser almacenados en un archivo. Los datos de las personas son: Nombre Apellido Fono Rut Cargo El programa debe mostrar en pantalla todos los datos de las personas ingresadas. 2. Escribir un programa que permita al usuario leer o guardar un arreglo de 4 personas. Este arreglo debe ser le o guardado en un archivo llamado ((personas.txt)). do 3. Se desea implementar un programa en C que lea un archivo estructurado y lo copie en archivos distintos. El archivo de entrada ((entrada.txt)) est estructurado de la a siguiente manera: Tiene 5 datos por personas. Cada persona est separada por el carcter de punto y coma. a a Cada dato est separado por un espacio. a Los datos son:, Nombre, Apellido, Telfono, Rut y Cargo e Para realizar este ejercicio se les entregar el archivo ((entrada.txt)). a 4. Desarrolle un programa tal que permita buscar una palabra en un archivo, utilice en archivo entrada.txt del ejercicio anterior.

5. Modique el programa del ejercicio 1, tal que los datos sean guardados en una estructura. 6. Realice un programa, donde en una estructura que contiene los campos hora, minutos y segundos (inicializados en 0), se guardar una hora sealada. Implemente a n una funcin que reciba slo el parmetro de los segundos y los guarde en la o o a estructura antes declarada representados en horas, minutos y segundos. Por ejemplo: si la hora de la estructura es 00:00:00, y se llama a la funcin con parmetro 5000 o a (5000 segundos), en la estructura se guardar: 1:23:20, que son 5000 segundos. a 7. Analice los resultados del siguiente programa: #include <stdio.h> struct a{ char cadena[12]; int i; }; union b{ char cadena[12]; int i; }; int main(){ printf("%d\n", sizeof (struct a)); printf("%d\n", sizeof (union b)); return 0; }

8. Se tiene una arreglo de 50 mdicos donde se desea guardar la siguiente informacin: e o Rut, Nombre, Fecha nacimiento, Isapre y Ao ingreso a la isapre. n Escriba una funcin que permita realizar el ingreso de los datos. Utilice una o estructura para guardar la informacin del mdico y otra para la fecha con d mes o e a, y ao, generando estructuras anidadas. Escriba una funcin que permita saber los n o datos de los mdicos que pertenecen a una determinada Isapre y cuya edad ucte e u entre los 20 y 30 aos inclusive, adems de determinar la cantidad de mdicos que n a e no cumplen con todo lo sealado anteriormente. n 9. En un colegio, se necesita almacenar de manera automatizada las notas de cada alumno de un curso de 45 y adems llevar un registro de las anotaciones positivas y a negativas de cada uno. Para lograr esto, el colegio tiene denido un total de 7 notas de las cuales las que estn en los lugares impares son notas coeciente dos. La a informacin que el colegio necesita registrar del alumno es la siguiente: Rut, o Nombre, n1, n2, n3, n4, n5, n6, n7, anotaciones positivas y anotaciones negativas. Sugiera una forma de almacenamiento con arreglos de estructuras. Disee una funcin que permita ingresar los datos de los alumnos y n o anotaciones. Disee una funcin que permita calcular el promedio de notas de un alumno n o determinado y elegir si se desea ver las anotaciones positivas o las negativas de dicho alumno. 10. Actualizacin de registros de clientes: considere un sistema de facturacin de o o clientes simple. En este sistema los registros se almacenan en un arreglo de estructuras. Cada registro ser almacenado como una estructura individual (como a un elemento del arreglo), conteniendo el nombre del cliente, direccin con calle y o ciudad, nmero de cuenta, estado de la cuenta (al d atrasada o delincuente), u a, saldo previo, nuevo saldo y fecha de pago. La estrategia ser introducir cada registro y actualizarlo tan pronto como sea a introducido, para reejar los pagos actuales. Entonces se mostrarn todos los a registros actualizados, con el estado actual de cada cuenta. El estado de la cuenta se basar en el ultimo pago realizado y el saldo previo del cliente. a El estado de la cuenta ser determinado de la siguiente manera: a Si el pago actual es mayor que cero pero menor que el diez por ciento del saldo previamente al descubierto, la cuenta ser atrasada. a Si hay un saldo al descubierto y el pago actual es cero, la cuenta ser delincuente. a En otro caso la cuenta estar al d a a. 3

La estrategia global ser como se sigue: a a) Especicar el nmero de cuentas de clientes (nmero de estructuras) a u u procesar. b) Para cada cliente leer los siguientes elementos: Nombre Calle Ciudad Nmero de cuenta u Saldo anterior Pago actual Fecha de pago c) Cada vez que se lee un registro, actualizarlo de la siguiente manera: Comparar el pago actual con el saldo anterior y determinar el estado apropiado de la cuenta. Calcular el nuevo saldo restando el pago actual con el saldo anterior (un saldo negativo indicar un crdito). a e d ) Una vez que todos los registros han sido introducidos y procesados, escribir la siguiente informacin para cada registro: o Nombre Nmero de cuenta u Calle Ciudad Saldo anterior Pago actual Nuevo saldo Estado de la cuenta 11. Crear una funcin match la cual devuelve la cantidad de veces que se logra calzar o una cadena de caracteres en otra cadena de caracteres ms grande. Un calce se a dene como una correspondencia exacta caracter a caracter. El prototipo de la funcin es: int match( char * patron,char *cadena); o Ejemplo: match( amor, es amor dijo con clamor), devolver 2. a match(abca,aaabcabcacbbabcaabcaa), devolver 4. a

12. Realice un programa que mediante el uso de punteros permite crear la funcin swap, o con el siguiente prototipo: void swap(int *p1, int *p2). La funcin permitir que p1 o a apunta hacia donde apuntaba p2 y p2 donde apuntaba p1. 13. Desarrolle un programa que permita calcular la suma de los elementos de dos matrices de enteros. Cada matriz se debe procesar como un puntero a un conjunto de arreglos de enteros. Utilice aritmtica de punteros. e 14. El esqueleto de la estructura de un programa en C se muestra a continuacin: o void func(int *p); int main() { int a[5] = {10,20,30,40,50}; ..... func(a); ..... } void func(int *p) { int I, suma=0; for(i=0;i<5;++i) suma += *(p+i); printf("suma=%d", suma); return; }

Qu tipo de argumento se pasa a func? e Qu tipo de informacin devuelve func? e o Qu tipo de argumento formal se devuelve dentro de func? e Cul es la nalidad del bucle for que aparece dentro de func? a Qu valor es escrito por la instruccin printf dentro de fun? e o

15. Un programa en C contiene la siguiente declaracin: o Float matriz[2][3] = { {1.1,1.2,1.3}, {2.1,2.2,2.3} }; Cul es el signicado de matriz? a Cul es el signicado de (matriz + 1)? a Cul es el signicado de *(matriz + 1)? a Cul es el signicado de (*(matriz + 1) +1)? a Cul es el signicado de (*(matriz) + 1)? a Cul es el valor de *(*(matriz + 1)+1)? a Cul es el valor de *(*(matriz) + 1)? a Cul es el valor de *(*(matriz + 1))? a Cul es el valor de *(*(matriz) + 1)+1? a

También podría gustarte