funciones, vectores y matrices
Transcripción
funciones, vectores y matrices
Ejercicios programación estructurada (funciones, vectores y matrices) 1. El juego de dados conocido como “craps” (tiro perdedor) es muy popular, realice un programa que simule dicho juego, a continuación se muestran las reglas para los jugadores: • Un jugador tira dos dados. Cada dado tiene seis caras. Las caras contienen 1, 2, 3, 4, 5 y 6 puntos. • Una vez que los dados se hayan detenido, se calcula la suma de los puntos en las dos caras superiores. • Si a la primera tirada, la suma es 7, o bien 11, el jugador gana. • Si a la primera tirada la suma es 2, 3 o 12 (conocido como “craps”), el jugador pierde (es decir la casa “gana”). • Si a la primera tirada la suma es 4, 5, 6, 8, 9 ó 10, entonces dicha suma se convierte en un “punto”. • Para ganar, el jugador deberá continuar tirando los dados hasta que haga 7 “puntos”. 2. Para calcular la trayectoria de un proyectil podemos usar las ecuaciones: X=(V cos θ)t y=(V sen θ) t−1/2 g t 2 Donde V es la velocidad inicial del proyectil (m/s), θ es el ángulo de inclinación (en radianes), t es el tiempo, g es la aceleración de la gravedad (9.8 m/s 2), y x y y son las coordenadas del proyectil en el tiempo t. Escriba una función que acepte los parámetros para V y θ y despliegue las coordenadas del proyectil en intervalos de 0.1s hasta que el proyectil llegue a tierra. 3. Escriba funciones para calcular seno, coseno hiperbólicas. Las funciones hiperbólicas se definen de la siguiente forma: e x −e−x senh ( x)= 2 e x +e−x cosh (x )= 2 Donde: 2 3 x x x e x =1+ + + +... Esta función evaluada en 1.0 genera 2.7182818284590455. La 1 ! 2! 3 ! función exp de la biblioteca math genera 2.718281828459045. 4. Construya una función recursiva que retorne la cantidad de dígitos de un número entero positivo; por ejemplo, entrada: 9309, salida: 4. 5. Implemente una función recursiva que calcule xy con el uso de multiplicaciones sucesivas. 6. Implemente una función recursiva que calcule A x B, con el uso de sumas sucesivas. 7. Construya una función recursiva que calcule el enésimo número de la serie Fibonacci de un entero ingresado por teclado. 8. Construya una función recursiva que calcule el máximo común divisor (MCD) de dos enteros positivos. 9. Implemente una función recursiva que calcule el término enésimo de la secuencia de Lucas...tañeda: 1,3,4,7,11,18,29,47,... 10. Leer un vector x de “n” valores y calcular: • Valor máximo • Valor mínimo • Mitad del intervalo: Valor máximo+Valor mínimo Mitad delintervalo= 2 • Media aritmética : n ∑ Xi • • • x= i=1 n Mediana: valor ubicado en el medio de una cantidad de “n” ordenada de valores. Se calcula del siguiente modo: Si “n” es impar, se define como el valor que se encuentra en la posición central; si “n” es par entonces corresponde al promedio de los valores centrale. Media armónica: n Media armónica= n ∑ x1 i=1 i Media cuadrática: Media cuadrática= • • √ n ∑ X 2i i=1 n Moda: es el valor que se presenta con mayor frecuencia. Desviación estándar de la muestra: S= √ n ∑ ( X i−X )2 i=1 n−1 11. Implementar un programa que determine si un vector ingresado por teclado es simétrico o no, un vector es simétrico si el elemento de la i-ésima posición es igual al elemento de la posición n – i-ésima; por ejemplo: X = [1,2,3,4,3,2,1]. 12. Conocida la producción mes por mes de papa en el departamento de Nariño durante los últimos cinco años (año por año), se necesita saber en qué mes y año se registró la mayor y menor producción. Intercalar los cinco años en un sólo vector para tener ordenada y compilada toda la información. 13. Desarrolle una aplicación que almacene en un vector el nombre del país y en otro su capital. Implemente un sistema de búsqueda que ingresando el nombre del país visualice su correspondiente capital o viceversa. Nota: si usa python prueba usando un diccionario. 14. Leer dos vectores X y Y de “n” valores y calcular la ecuación de regresión con las ecuaciones planteadas a continuación: • Ordenada del origen: n n n i=1 i=1 n (∑ Y i )( ∑ X 2i )−( ∑ X i)(∑ X i Y i) b0 = i=1 i=1 n n i=1 i=1 2 n( ∑ X 2i )−( ∑ X i) • Pendiente: n n n n( ∑ X i Y i)−( ∑ X i)(∑ Y i ) b1= i=1 i=1 i=1 n n i=1 i=1 2 n( ∑ X 2i )−(∑ X i ) • Ecuación de regresión: ̂y =b 0+ b1 x Ejemplo: Datos de entrada: X 53.0 67.5 72.0 72.0 73.5 68.5 73.0 37.0 Y 80 344 416 348 262 360 332 34 Resultados: b 0=−351.659 b1=9.659 ^y =−351.659+9.659 x 15. Llene dos vectores numéricos A y B (el tamaño de los dos no necesariamente debe ser igual) y realice las siguiente operaciones con conjuntos: • Unión: conjunto que contiene (sin repetir) los elementos de A y B • Intersección: conjunto que contiene los elementos comunes que aparecen en los conjuntos A y B. • Diferencia (A-B): conjunto formado por los elementos que pertenecen al conjunto A y no pertenecen al conjunto B. • Diferencia (B-A): similar al anterior. 16. La fábrica de muebles “El hermano gorgojo” tiene en el proceso de construcción de sillas de oficina en 5 fases (A,B,C,D,E) que se pueden realizar en 6 máquinas diferentes (1..6), se necesita calcular el costo máximo y mínimo tanto para fases como para máquinas; en la tabla siguiente se muestra la relación costo-proceso-máquina que estos eventos conllevan: A B C D E 1 6 5 9 19 11 2 45 23 21 17 30 3 15 7 23 25 2 4 75 26 38 49 19 5 2 15 76 1 45 6 92 82 4 20 13 17. Escriba un programa que encuentre el cuadrado mágico para cualquier n donde 3 < n < 10 de orden impar. Un cuadrado mágico es una cuadrícula en general de n x n, en la que se acomodan ciertos números que cumplen que la suma de cualquier renglón, la suma de cualquier columna y la suma de cualquiera de las dos diagonales es siempre la misma. Si el cuadrado es de 3 x 3, entonces tendrá 9 casillas y los números que se acomodan en él son todos los números del 1 al 9. Si el cuadrado es de 4 x 4, entonces tendrá 16 casillas y los números que se acomodan en él son del 1 al 16. En general, si el cuadrado es de n x n, entonces tendrá n cuadrada casillas y los números que acomodaremos en él serán del 1 a n². El orden de un cuadrado mágico es el número de renglones o el número de columnas que tiene. Así un cuadrado de 3 x 3 se dice que es de orden 3. 18. Construya una aplicación que realice las siguientes operaciones con matrices: multiplicación de dos matrices (producto punto), multiplicación de una matriz por un escalar, inversa de una matriz. 19. Con el uso de matrices cuadradas de orden “n” (n controla el tamaño de los caracteres) con ceros y unos, elabore el abecedario, los números del 0 al 9 y los caracteres especiales: signos de admiración, interrogación, puntuación, etc. Con el uso de estas estructuras implemente un programa que simule un tablero electrónico de publicidad, el cual lea una cadena de caracteres, el tamaño de los caracteres (n) y despliegue la información animada de derecha a izquierda de la pantalla. Por ejemplo, si se ingresa la cadena “HOLA” y como tamaño 5, en la pantalla se visualizará de forma animada una gráfica de forma similar a lo siguiente: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 20. Desarrolle un programa que de solución al problema de las 8 reinas, este trata de calcular todas las posibles configuraciones para situar 8 reinas en un tablero de ajedrez de forma tal que ninguna de ellas sea atacada por otra, lo que indica que no pueden estar posicionadas dos o más reinas en la misma fila, columna o diagonal. 21. Construya un programa que lea una serie de palabras y las almacene en un vector, con el uso de una matriz de “n” x “n” genere una sopa de letras con el vector ingresado, organizando aleatoriamente las palabras en sentido horizontal (derecha a izquierda o viceversa), vertical (arriba hacia abajo o viceversa) y diagonal (en todos los sentidos). Las casillas restantes se deben llenar de forma aleatoria con los caracteres del alfabeto. 22. Construir un programa que genere “n” tableros de juego para BINGO. Cada tablero es una matriz de 5 filas por 5 columnas, la cual se llena con cifras aleatorias (no repetidas) en un rango determinado por el número de columna así: Columna Rango 1(B) 1..15 2(I) 16..30 3(N) 31..45 4(G) 46..60 5(O) 61..75 Se tiene una restricción especial en la columna 3(N) en la cual sólo se generan 4 filas aleatorias, porque en la tercera fila se ubica el número del tablero: B I N G O 1 19 45 47 70 4 17 33 60 61 11 28 0696 49 68 13 20 36 53 74 2 22 43 48 73 23. Construya una solución que genere en su respectivo recorrido en espiral las matrices cuadradas de orden “n” (n impar >= 5) mostradas en el siguiente figura: 24. El almacén “Los monitos” con sede en Popayán, tiene como línea de venta una amplia gama de productos para perros y gatos (de todas las “marcas” tamaños, colores y sabores), que varían desde alimentos y medicinas, hasta vestidos, chaquetas, zapatos, bolsos, gorras, camas, biberones, etc. Debido a la baja en las ventas por la crisis económica por la que atraviesa nuestro sufrido país, han tenido que diversificar su línea de ventas, por ello montaron una distribuidora de libros que aunque lenta pero con paso firma, está poco a poco sacando adelante la empresa. Por esta razón se necesita crear una solución computacional que minuciosamente controle los procesos de: • Entrada y salida (facturación) de productos para mascotas (ver tabla) • Información general de proveedores de productos para mascotas. • Información general de productos para mascotas. • Información general de categorías de productos para mascotas. • Entrada y salida (facturación) de libros. • Información general de editores de libros. • Información general de proveedores de libros. • Contenido y características de libros. • Información de autores. • Categorías de libros. • Inventario actualizado de libros. Factura No: Cliente: Telefono: Vendedor: Fecha: Cantidad Detalle o producto Vr. Unitario Vr. Parcial Subtotal IVA (16%) Total 25. La cadena de salas de cine “Charles Chaplin” necesita que usted desarrolle una aplicación para la reserva y venta de sillas a sus funciones, éstas disponen de tres tipos de salas con la siguiente distribución de silletería a saber: A. Clásica = 10 filas x 6 columnas, B. Express = 12 filas x 10 columnas, C. Sensorama 3D = 15 filas x 20 columnas; la ubicación de cada asiento se define de forma a una hoja de cálculo, indicando primero la columna (rotulada con una letra que inicia desde A) y luego la fila (que comienza en 1). El programa debe brindar información sobre los sitios disponibles para que el cliente escoja. Cuando se venda un cupo se debe pedir el número de identificación, y el nombre del cliente; para el caso de una reserva se pide además el teléfono de contacto; y el precio de la silla tiene un 2% de incremento. El costo de cada función se cobra conforme a la siguiente tabla: Clásica Express Sensorama 3D No. Fila Costo No. Fila Costo No. Fila Letra Columna Costo 1 al 3 U$8 1 al 2 U$10 12 al 15 A,B,S,T U$4 4 al 7 U$6 3 al 5 U$8 8 al 14 C..G, N..R U$8 8 al 10 U$3 6 al 10 U$6 1 al 7 H..M U$10 11 al 12 U$2 El programa debe realizar los siguiente procesos: generar la colilla de pago para una o varias sillas de acuerdo al tipo de sala y su ubicación, y consultar de forma individual o en conjunto la información de la(s) persona(s) que ocupa(n) una determinada silla o rango de éstas. Calcular para cada una y por todas las salas: • Total ventas por fila y columna. • Promedio de ventas por fila y columna. • Fila y columna de silletería más y menos vendida. • Sala que reporta más ganancias. • Sala que reporta menos ganancias. 26. La fábrica “El juanete Feliz” tiene como linea de producción la creación de hormas para zapato, usted ha sido contratado(a) para la construcción de un sistema de información que controle todo lo relacionado con sus procesos de producción. Todos los requerimientos (expuestos a nivel muy general) se relacionan a continuación: • Información general de proveedores de materias primas: resortes, hormas, tornillos, empaques, entre otros. • Información personal de los empleados. • Información general de productos. Características físicas como: código, nombre, dimensiones, peso, composición, fecha de creación, diseñador, número de patente, entre otras. Información general de categorías de productos: hormas dama, hormas niño, hormas caballero. Mucho cuidado no confundir las categorías con los contenidos de las categorías, ejemplo de un contenido de las categorías pueden ser las tallas 12,13,14 …. 56, o los tipos de calzado para las que han sido diseñadas las hormas como: alparg 27. El gimnasio “Entrenen duro que dan lástima” lo(a) ha contratado para que construya una solución computacional que automatice los procesos de manejo de información que se llevan a cabo en sus dependencias. • Procesos: • Control de inscripciones y pago de mensualidades de usuarios. • Control de asistencia de usuarios al gimnasio. • Control de asistencia de usuarios a clases de aeróbicos. • Control de asistencia de usuarios a servicios extendidos del gimnasio: masajes, hidromasajes, jacuzzi, lodo volcánico. • Control de datos personales de usuarios. • Control de rutinas de entrenamiento. • Control de progresos de usuarios. Medidas antropométricas. • Control de asistencia de entrenadores de aeróbicos. • Control de asistencia de entrenadores de fisicoculturismo. • Control de asistencia de entrenadores de pesas. • Horarios de aeróbicos. Requerimientos: El módulo de control de incripciones y pago de mensualidades de usuarios debe permitir generar los siguientes reportes: • Recibo de pago por usuario. • Recibo de pago totales por día. • Recibo de pago totales por semana. • Recibo de pago totales por mes. • Recibo de pago totales por año. El módulo de control de asistencia de usuarios debe generar los reportes sobre la cantidad de usuarios que ingresen en los horarios de la mañana, la tarde, la noche, los sábados y domingos. Estos reportes deben contener: código, nombre del usuario, y fecha de vencimiento de su mensualidad. Un usuario debe tener una única rutina que cambia en un tiempo determinado debido al control de las medidas antropométricas. Varios usuarios pueden tener la misma rutina. Con el fin de ampliar la información que se maneja, a continuación se relaciona un ejemplo que ilustre sobre algunos de sus procesos: Ejemplo de datos personales de usuario: Nombre del usuario : Luis Jimenez Código : M – 0095 Tipo de documento de identidad : Cédula de ciudadanía Número : 54.963.988 de Popayán (Cauca) Fecha de nacimiento : 4 de junio de 1982 Sexo : Masculino Estatura : 1.69 m Tipo de sangre : O+ Antecedentes médicos Medicamentos que consume Dirección Teléfono fijo Celular Email Código de rutina : Hipertensión arterial : Ninguno : Cll 33 N #12-125 B/Los Olivos : 8-996598 : 314-1592653 : [email protected] : MB-001 Ejemplo de control de medidas antropométricas: Código de usuario: M-0095 (M significa que es de sexo masculino y 0095 el código) Medida 1 Medida 2 Medida 3 Fecha 12/11/2009 12/12/2009 12/01/2010 Peso 120 Kg 100 Kg 90 Kg Hombro 140 cm 120 cm 110 cm Pecho (busto) 150 cm 130 cm 100 cm Brazo 45 cm 40 cm 35 cm Antebrazo 37 cm 33 cm 30 cm Cintura 145.5. cm 135 cm 110 cm Cadera 100.10 cm 95 cm 90 cm Pierna superior 95.7 cm 90 cm 85.6 cm Pierna media 90.4 cm 85.3 cm 80.5 cm Pantorrilla 56.5 cm 50.5 cm 49.5 cm Ejemplo de rutina: Código del rutina: MB-001 (M significa que es de sexo masculino, B que está diseñada para bajar de peso y 001 el número de la rutina, si por ejemplo fuera FS-001 indicaría que es de sexo femenino y que diseñada para subir de peso “S”). A continuación se presenta un modelo de rutina para cuatro días: Día 1 Ejercicio Repeticiones Press de banco plano 12-10-8-8 Press mancuerna inclinado 10-10-8-8 Peck deck 10-10-8-8 Curl alternado mancuerna 10-8-6 Curl barra Z 8-8-8 Abdominales máquina 5 x 30 Día 2 Ejercicio 28. Repeticiones Sentadilla 15-12-10-8 Extensión pierna 15-12-10-8 Press pierna 15-12-10-8 Pollo asado 15-12-10-8 Curl femoral 15-8-6-8 Abductores 20-15-10-8 Abdominales exprimidas 5 x 30 Abdominales laterales 5 x 30 Día 3 Ejercicio 29. Repeticiones Remo polea horizontal 15-12-10-8 Remo polea vertical atrás 15-12-10-8 Remo T abajo 15-12-10-8 Tríceps polea 15-12-8-6 Tríceps copa 15-15-10-8 Abdominales exprimidas 5 x 50 Abdominales laterales 5 x 30 Día 4 Ejercicio 30. Repeticiones Press militar atrás 15-12-10-8 Press militar delante 15-12-10-8 Press militar mancuerna 15-12-10-8 Laterales mancuerna 15-12-10-8 Exprimidas con apoyo 4 x 50 Giros con palo 15 minutos Abdominales exprimidas 5 x 50 Abdominales laterales Ejemplo de control de asistencia de usuarios: Código de usuario: M-0095 Mes: Diciembre de 2009 Domingo Lunes Martes Miércoles 6 x 13 20 7 x 14 x 21 x 5 x 30 Jueves Viernes 1 2 x 3 4 8 9 x 10 11 17 x 18 24 x 25 15 x 16 22 x 23 x x Sábado 5 x 12 x 19 x 26 x 27 x 28 x 29 x 30 x 31 Las “x” contiguas a cada fecha indican que el usuario asistió ese día al gimnasio, el horrio de asistencia a clases de aeróbicos, y control de asistencia de instructores funcionan de manera similar al proceso de control de asistencia de usuarios. Los procesos que hacen falta por ilustrar, los deberá implementar de acuerdo al análisis y criterios de diseño que usted escoja. 31.