Vous êtes sur la page 1sur 6

Preparacin Laboratorio 2 o INC112 - Programacin I o

Lunes 5 y Martes 6 de Diciembre 2011 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. Desarrolle un programa en C que dado 10 nmeros enteros: u Llene un arreglo con los 10 nmeros. u Calcule el promedio de los 10 nmeros. u Encuentre el nmero mayor indicando su posicin dentro del arreglo. u o Encuentre el nmero menor indicando su posicin dentro del arreglo. u o Calcule la cantidad de nmeros bajo y sobre el promedio. u 2. Dado un mensaje, se debe calcular su costo para enviarlo por telgrafo. Para esto se e sabe que cada letra cuesta $10, los caracteres especiales que no sean letras cuestan $30 y los d gitos tienen un valor de $20 cada uno. Los espacios no tienen valor. Ejemplo: Entrada: Feliz Aniversario!, Salida: Su mensaje cuesta $260. El mensaje es una cadena de caracteres. Las letras (,N,,, o,) se consideran caracteres especiales. n a e , u 3. Escribir un programa que rellene automticamente una matriz de 4x7 con la suma a de sus ndices (Es decir, el elemento A11=1+1). El programa mostrar la matriz a resultante por pantalla. 4. Crear un programa que contenga una funcin llamada copiarArray() que reciba dos o arrays y el tamao de los mismos (deben de ser del mismo tamao) y que consiga n n copiar en el segundo array el contenido del primero. 5. Crear un programa que, mediante un men, admita reservar o cancelar asientos de u un avin, as como mostrar qu asientos estn ocupados y libreas actualmente. El o e a array tendr 25 las y 4 columnas a

6. Se tienen N empleados en una compa y se ha ideado llenar un arreglo lineal A na con los sueldos de los empleados, un arreglo B con las asignaciones o bonos totales de cada empleadoy un arreglo C con las deducciones o descuentos de cada uno. Crear un arreglo T que contenga el neto a pagar a cada empleado (Neto a pagar = sueldo + asignaciones - deducciones). 7. Se tiene la produccin de los siete d de la semana de 20 plantaas. Elaborar un o as programa que lea estos datos, imprima el nmero de la planta que tuvo la mayor u produccin semanal y el nmero de planta con mayor produccin en un d o u o a espec co (dato que ingresa el usuario), y con cuanta produccin. o 8. Realice una funcin que, dada una cadena de caracteres y un carcter, devuelva el o a nmero de apariciones de dicho carcter en la cadena. u a 9. Disear una funcin que calcule el rea y otra que calcule el per n o a metro de una circunferencia. Utiliza esas funciones en un programa principal que lea el radio de una circunferencia y muestre su area y per metro. 10. Crear el programa, utilizando la tcnica de programacin estructurada, para un e o determinado comercio en el que se realiza un descuento dependiendo del precio de cada producto. Si el precio es inferior a 600 pesos, no se hace descuento; si es mayor o igual a 600 pesos y menor que 6000 pesos, se hace un 5 por 100 de descuento, y si es mayor o igual a 6000 pesos, se hace un 10 por 100 de descuento. Finalizar visualizando el precio inicial, el valor del descuento y el precio nal. Nota: Puedes utilizar las siguientes funciones: leerPrecio: Que lee un precio y valida que sea positivo. calcularDescuento: Que recibe un precio y devuelve el descuento. calcularPrecioTotal: Que recibe un precio y el descuento y devuelve el precio nal. 11. Realice un programa en C que permita jugar el juego Gato usando matrices y funciones. (*Si gusta puede usar el cdigo system(clear) en Linux para limpiar o la terminal, o su equivalente system(cls) en Windows. 12. Crea una funcin para calcular el mcm y otra para calcular el MCD, crea un o programa principal que pida dos nmeros y muestra el mcm y MCD usando estas u dos funciones. 13. Si el cuadrado de un nmero es igual a la suma de la cantidad de nmero impares u u indicados por el nmero (ejemplo 32 = 1 + 3 + 5) cree una funcin que calcule el u o cuadrado de un numero mediante sumas sucesivas de los nmeros impares. u 2

14. Crear un programa que pida el l mite inferior y el l mite superior de un intervalo. Si el l mite inferior es mayor que superior, intercambiar las variables. A continuacin o se irn pidiendo nmeros enteros positivos hasta que se introduzca un nmero a u u negativo. Al terminar se mostrar la siguiente informacin: a o Cantidad de nmeros fuera del intervalo u La media de los nmero pares que estn dentro del intervalo. u a Se ha introducido algn nmero igual a alguno de los l u u mites del intervalo? Algunas de las funciones que puedes utilizar son las siguientes: LeerLimitesDelIntervalo: Funcin que lee los dos l o mites del intervalo. IntercambiarVariables: Funcin que intercambia el valor de dos variables. o ContarNumerosFueraDelIntervalo: Funcin que va contando la cantidad de o nmero que hay fuera del intervalo. u MediaNumerosParesDentroIntervalo: Funcin que va calculando la media de o los nmero pares que estn en el intervalo. u a ComprobarLimites: Funcin que te dice si el nmero introducido es igual a o u algunos de los l mites. Si piensas en alguna otra funcin no dudes en utilizarla. o 15. Queremos crear un programa que trabaje con fracciones a/b. Para representar una fraccin vamos a utilizar dos enteros: o int numerador; int denominador; Vamos a crear las siguientes funciones para trabajar con funciones: LeerFraccin: La tarea de esta funcin es leer por teclado el numerador y el o o denominador. Cuando leas una fraccin debes simplicarla. La funcin de o o simplicar se ver a continuacin. a o EscribirFraccin: Esta funcin escribe en pantalla la fraccin. Si el dominador o o o es 1, se muestra slo el numerador. o CalcularMcd: Es una funcin auxiliar que nos va ayudar a realizar las otras o funciones. Esta funcin recibe dos nmero y devuelve el mximo comn o u a u divisor. Realizarlo con el mtodo de Euclides. e SimplicarFraccin: Esta funcin simplica la fraccin, para ello hay que o o o dividir numerador y dominador por el mcd del numerador y denominador. 3

Ejemplo Si la fraccin es 35/15 o Se calcula el mcd(35,15)= 5 Se divide 35/5=7 y 15/5=3 ... La fraccin simplicada es 7/3. o Si la fraccin ya est simplicada se deja como igual. o a SumarFracciones: Funcin que recibe dos funciones n1/d1 y n2/d2, y calcula la o suma de las dos fracciones. La suma de dos fracciones es otra fraccin cuyo o numerador=n1*d2+d1*n2 denominador=d1*d2 La fraccin resultante debe estar simplicada. o Ejemplo: 8/3 + 2/5 numerador= 8*5+3*2 = 46 denominador= 3*5 = 15 46/15 que ya est simplicada. a RestarFracciones: Funcin que resta dos fracciones, igual que la anterior pero o al calcular el numerador hay que restar. numerador=n1*d2-d1*n2 denomianador=d1*d2 La fraccin resultante debe estar simplicada. o MultiplicarFracciones: Funcin que recibe dos fracciones y calcula el producto, o para ello: numerador=n1*n2 denominador=d1*d2 La fraccin resultante debe estar simplicada. o DividirFracciones: Funcin que recibe dos fracciones y calcula el cociente, para o ello: numerador=n1*d2 denominador=d1*n2 La fraccin resultante debe estar simplicada. o Crear un programa en C que utilizando las funciones anteriores muestre el siguiente men: u a) Sumar dos fracciones: En esta opcin se piden dos fracciones y se muestra el o resultado. b) Restar dos fracciones: En esta opcin se piden dos fracciones y se muestra la o resta. 4

c) Multiplicar dos fracciones: En esta opcin se piden dos fracciones y se muestra o el producto. d ) Dividir dos fracciones: En esta opcin se piden dos fracciones y se muestra el o cociente. e) Salir 16. Desarrolle un programa en C que muestre la potencia de dos nmeros pasados por u l nea de comando usando recursividad. Considere que no se deben permitir ms de 2 a valores ingresados para realizar la tarea, siendo el primer valor la base y el segundo valor el exponente, que debe ser entero. Ambos nmeros deben ser positivos. u Adems debe realizar una funcin que permita vericar que los valores ingresados a o sean nmeros, y en caso que lo sean verique si son enteros o de coma otante. u Utilice tantas funciones como estime conveniente. Funciones utiles: int atoi(char cadena[]); Pertenece a la librer stdlib.h a Retorna el equivalente en int de la cadena pasada por parmetro. a oat atof(char cadena[]); Pertenece a la librer stdlib.h a Retorna el equivalente en oat de la cadena pasada por parmetro. a int strlen(char cadena[]); Pertenece a la librer string.h a Retorna la cantidad de caracteres en la cadena pasada por parmetro. a 17. Usando como base el programa anterior, realice una funcin recursiva que permita o obtener potencias de potencias de tantos nmeros sean pasados por linea de u comando, siendo el primer nmero la base, y los siguientes las potencias. u Ejemplo: ./programa 3 4 5 6 7 8 Ser 8 a: 34 *Considere solo el rango de los int para la potencia. 18. Un pal ndromo es una palabra que se lee igual de izquierda a derecha, que de derecha a izquierda. Por ejemplo, reconocer es un pal ndromo. Cualquier palabra puede convertirse en un pal ndromo, aadindole las letras adecuadas. Por ejemplo, n e ab no es un pal ndromo, pero si le aadimos a a la derecha obtenemos aba, que s lo n es. Tambin podr e amos haberle aadido ba para obtener abba que tambin es un n e 5
7 56

pal ndromo. Escribe un Algoritmo que dada una cadena de caracteres, devuelva el pal ndromo construido aadindole por la derecha el menor nmero de caracteres a n e u la cadena de entrada. Por ejemplo, ab ---> aba a ---> a palin ---> palinilap reconocer ---> reconocer cierre ---> cierreic

Vous aimerez peut-être aussi