EJERCICIOS DIAGRAMAS DE FLUJO 1. Una compañía de gas natural calcula su factura trimestral tomando la lectura actual del contador y la del trimestre anterior, cobrando las primeras 40 unidades a 525 ptas/unidad y el resto a 285 ptas/unidad. Realiza el organigrama de un programa que reciba las dos lecturas del contador de un cliente y produzca una factura detallada, junto con el total de la misma. 2. En el Principado de Euritania las reglas para calcular la pensión de una persona son las siguientes: • Los hombres de 65 años, o más, reciben 50 euris por semana • Los casados reciben 25 euris adicionales por semana • Las mujeres de 60 años, o más, reciben 35 euris por semana, sin una cuota extra por estar casadas • Además, cualquier hombre o mujer de 70 años, o más, recibe 20 euris adicionales por semana Desarrollar un diagrama de flujo de un programa que conociendo la edad, el sexo y el estado civil de una persona, calcule la pensión semanal que le corresponde. El programa deberá detectar si el individuo es demasiado joven para recibir pensión. 3. Realizar el organigrama de un programa que calcule lo que cuesta una reserva para el teatro, conociendo el precio de una entrada normal (1.800 ptas.) y el número de entradas normales y de niños que se desean. Se ha de tener en cuenta que los niños pagan la mitad de la entrada y que, por cada 10 entradas normales reservadas, se obsequia con una entrada adicional. 4. Un constructor necesita calcular la cantidad de ladrillos y mortero necesarios para construir una pared. Se le proporcionan las dimensiones de la pared y el número de huecos y sus dimensiones. Sabiendo que para construir 1 m3 de pared, se requieren 650 ladrillos y 70 Kg. de cemento, realiza un organigrama que calcule lo que necesita el constructor. 5. Realiza el diagrama de flujo de un programa que acepte los nombres y las calificaciones de N estudiantes, y que devuelva por pantalla, sólo los datos (nombre y calificación) de los estudiantes que estén por encima de la media del grupo. 6. Un carpintero necesita un programa que calcule el precio de cualquier escritorio que pida un cliente, basándose en los siguientes datos: longitud y anchura del escritorio, tipo de madera y número de cajones. El precio se calcula como sigue: • El precio de todos los escritorios es como mínimo de 200 Euros • Si la superficie es mayor de 4.000 cm2, añadir 50 Euros • Si la madera es “caoba” añadir 150 Euros, y si es “roble” añadir 125 Euros • Por cada cajón que tenga el escritorio añadir 30 Euros. Realizar el diagrama de flujo correspondiente a dicho programa. 7. Sabiendo que el número de bacterias de un cultivo después de una generación viene dado por la formula y = x (1.0 + r), donde x es el número de bacterias de la población original, y el número de bacterias de la nueva población y r el crecimiento (nacimientos – muertes). Realizar el organigrama de un programa que calcule la nueva población de un cultivo de bacterias, conocido x, el nº de nacimiento y el nº de muertes. Además se debe permitir que el programa se ejecute tantas veces como decida el usuario. 1 8. Realizar el algoritmo de un programa que recoja la precipitación pluvial durante quince días y que, posteriormente, indique si la precipitación de cada día fue igual, o estuvo por encima o por debajo del promedio de esa quincena. 9. Recoger una lista de N elementos y a continuación investigarla, contando los elementos positivos, los negativos y los ceros. 10. Realizar el organigrama de un programa que permita obtener la media aritmética (M), la varianza (V) y la desviación típica (E) de la altura de una muestra de población de N individuos. Los datos se introducen por teclado y el resultado se saca por la impresora. M= X1 + X 2 +L+ X N N ; V= ( X 1 − M )2 + ( X 2 − M )2 +L+ ( X N − M )2 N ; E= V 11. Realizar el diagrama de flujo de un programa que recoja dos lista de datos: • ai: contendrá la lista de las 51 capitales de provincia de España (sin contar Zamora) • bi: contendrá la distancia entre Zamora y dichas capitales El programa ha de ser capaz de, dada o la capital, o la distancia, proporcionar la distancia o la capital que le corresponda, siempre que el dato esté entre los de la lista. También debe permitir repetir la consulta tantas veces como desee el usuario. 12. Las apuestas en las carreras de caballos se efectúan casi siempre por un sistema de apuesta mutua en el que el total del dinero apostado, menos un porcentaje para los administradores y el estado, se divide entre los que apostaron a los caballos ganadores de los tres primeros lugares, pero en proporción a las cantidades apostadas Realizar el organigrama de un programa que calcule el importe que se deberá pagar a un apostante que apuesta 500 ptas. a cada uno de los tres primeros caballos en una carrera. Antes de que el dinero se distribuya a los ganadores, el Estado se quedará con el 14% y los operadores del hipódromo guardarán el 9%, ambos del total apostado. El dinero restante se reparte como sigue: el 50% para los que apostaron al caballo que ocupó el primer lugar, el 30% para los que apostaron al caballo que ocupó el 2º y el 20 % para los que apostaron al caballo que ocupo el tercero. Los datos de entrada del programa serán: el total de dinero apostado en la carrera y la cantidad total apostada a cada uno de los tres caballos ganadores en orden (recogidos en orden: 1º, 2º, 3º). El programa deberá devolvernos la cantidad a pagar por cada 500 ptas. apostadas a cada uno de ellos. Podemos suponer que las cantidades apostadas a cada caballo son positivas y que el importe total apostado deberá ser mayor que las sumas de las apuestas hechas a los tres caballos. 13. Crear una matriz de M columnas y N filas, rellenándola con ceros. 14. Crear una matriz en memoria de M x N elementos, rellenándola de modo que el valor de cada elemento sea la suma del n1 de su fila y el de su columna. 15. Hacer un programa que recoja 2 matrices por teclado de dimensiones M x N y realice su suma. 16. Hacer un organigrama de un programa que, dado un número entero, nos diga sí es, o no, capicúa, es decir, si escrito a la inversa se obtiene, o no, el mismo número. Por ejemplo, 12321 es capicúa, pero 2345 no lo es. 2 17. Hacer un diagrama de flujo que permita leer una lista de 10 números, y luego los vuelva a presentar, pero en otro orden. Primero los que ocupan una posición par en el orden en que fueron introducidos y después los que ocupan una posición impar, pero en el orden inverso al que fueron introducidos. Por ejemplo, si la lista de partida es: 5, 8, 6, -2, 7, 12, 4, -9, 51, 3, los que ocupan una posición par son 8, -2, 12, -9, 3 y los que ocupan una posición impar son 5, 6, 7, 4, 51. En consecuencia la lista de salida debe ser: 8, -2, 12, -9, 3, 51, 4, 7, 6, 5. 18. Hacer un organigrama que lea una lista de 10 números enteros y los vuelva a escribir, pero primero los pares y después los impares (sin alterar de otra forma el orden de entrada). Por ejemplo, si la lista de entrada es 12, 5, -7, 3, 8, 16, -4, 343, 89, -1, la de salida debe ser: 12, 8, 16, -4, 5, -7, 3, 343, 89, -1. 19. Hacer un organigrama que pida por teclado un número entero, y nos diga si es, o no, triangular. Se dice que un número N es triangular si existe otro entero k tal que 1+2+ ... +k = N. Por ejemplo, el número 10 es triangular (es 1+2+3+4), pero el número 11 no lo es. 20. Hacer un diagrama de flujo que dado un número N, cuente y escriba las veces que se repite cada uno de los dígitos de los que se compone (en base 10). Por ejemplo, si el dato es 1751, el diagrama debe escribir: “La cifra 1 se repite 2 veces”, “La cifra 5 se repite 1 vez” y “La cifra 7 se repite una vez”. 21. El algoritmo de la multiplicación rusa sirve para multiplicar dos números enteros positivos: se forman dos columnas y se aplica repetidamente la siguiente regla hasta que el multiplicador valga 1: se divide por dos el multiplicador (sin tener en cuenta el posible resto) y se duplica el correspondiente multiplicando. Por ejemplo, para multiplicar 45 y 19: 45 22 11 5 2 1 19 38 76 152 304 608 A continuación, se tachan los números de la columna del multiplicando que correspondan a multiplicadores pares. El producto se obtiene sumando los multiplicandos no tachados. En el ejemplo: 19+76+152+608 = 855. Realizar el organigrama de un programa que utilice el algoritmo de la multiplicación rusa para realizar el producto de dos enteros positivos. 3 22. Sean los datos: x, a1, a2, a3, a4; Elabore un diagrama de flujo para calcular: a1x3 + a2x2 + a3x + a4 sin usar la operación de potencia. 23. Una agencia de compra de coches ofrece préstamos para la adquisición de los diferentes modelos de automóviles. Si el automóvil vale más de 25.000€ la agencia solicita un 35% de adelanto y el resto debe pagarse en 24 mensualidades sin intereses. Si el automóvil tiene un valor máximo de 25.000€ se requiere un adelanto del 25% y el resto se debe pagar en 18 mensualidades sin intereses. La agencia desea saber, en base al precio de un automóvil que un determinado cliente elija, cuál es la cantidad del adelanto; y cuál es el número y el importe de las mensualidades que éste debe pagar. 24. El precio de un billete de viaje de ida y vuelta en tren se calcula tomando en cuenta el número de kilómetros que se van a recorrer, siendo el precio 0,40€ por Km. Este precio puede tener un descuento del 30% si el viaje de regreso se hace después de 7 días del viaje de ida, o si el recorrido supera los 800 Km. Elabore un diagrama de flujo para calcular cuánto se debe pagar por un billete de tren dando como datos el total de Km recorridos y el número de días entre el viaje de ida y el viaje de vuelta. 25. Dado un valor de x calcular el valor de y según la siguiente función: 3 x + 36 x 2 −10 y = f ( x) = x + 6 0 26. si x ≤ 11 si 11 < x ≤ 33 si 33 < x ≤ 64 para los demás valores de x Elabore un diagrama de flujo para que, dados dos números enteros a, b y una clave, realice la operación aritmética indicada por medio de la clave a los números dados. Por ejemplo, si los datos son: 8 4 +, el algoritmo debe calcular la suma de 8 + 4. Las claves válidas son: + - * /.