INTRODUCCION A LA COMPUTACIÓN – 2014 Licenciatura y Profesorado en Ciencias de la Computación Práctico Nº 5: Lenguaje de Diseño de Algoritmos - Repetición Importante: En todos los casos que se pida el desarrollo de un algoritmo esto implica: Especificar el ambiente del algoritmo. Para verificar el funcionamiento de los algoritmos desarrollados ejecútelos con al menos dos grupos de datos de entrada. Use la estructura de selección y de repetición que considere más conveniente, luego justifique. Responda las siguientes preguntas teóricas: [1] [2] Construya el diagrama de flujo correspondiente a la estructura de control de repetición Mientras y explique su funcionamiento. ¿Cuántas veces se ejecutará el cuerpo de la siguiente repetición? i <- 1; j <- 0; Mientras i <= 10 Hacer j <- j + 1; i <- i + 2; FinMientras [3] [4] [5] ¿Cuál es el número mínimo de veces que se evalúa la condición en una estructura de control de repetición Mientras? Construya el diagrama de flujo de la estructura de control Repetir y explique su funcionamiento. ¿Cuántas veces se ejecutará el cuerpo de la siguiente repetición? Repetir Leer cantidad; Hasta Que cantidad > 0 [6] Explique cómo funciona la estructura de control Para … FinPara, empleado como ayuda el siguiente código: Para i <- 1 Hasta 3 Con Paso 2 Hacer Escribir "HOLA MUNDO"; FinPara Ejercicio 1: Dado el siguiente algoritmo, ejecútelo con los siguientes datos de entrada: 7 y -5 Proceso Algoritmo1 Definir n, i, j Como Entero; Leer n; i <- 1; j <- 0; Mientras i <= n Hacer Si i % 3=0 Entonces j <- j + 1; FinSi i <- i + 1; FinMientras Escribir j; FinProceso A partir del análisis del código ¿puede inferir que hace el Proceso Algoritmo1? Ejercicio 2: Dado el siguiente algoritmo, construya la tabla de ejecución y ejecútelo con los siguientes datos de entrada: 5 9 -4 3 0 8 1 -4 Proceso Algoritmo2 Definir suma, x Como Entero; Escribir “Para salir ingrese 0”; suma <- 0; Leer x; Repetir Si x <> 0 Entonces suma <- suma + x; Leer x; FinSi Hasta Que x = 0 Escribir suma; FinProceso Ejercicio 3: Dado el siguiente algoritmo, ejecútelo con el siguiente dato de entrada: 20 Proceso Algoritmo3 Definir n, i Como Entero; Leer n; Para i <- n Hasta 1 Con Paso -2 Hacer Si i % 3=0 Entonces Escribir i; FinSi FinPara FinProceso Ejercicio 4: Dado el siguiente algoritmo: Proceso Tarea Definir area, radio Como Real ; Definir finalizar Como Caracter ; Repetir Escribir “Ingrese radio” ; Leer radio ; area <- 3.14159 * radio ˆ 2; Escribir “El área es: ” area; Escribir “Desea calcular otra área: ”; Leer finalizar; Hasta Que finalizar = “N” | finalizar = “n” FinProceso Se pide: Indicar qué realiza el algoritmo. Ejecutarlo con la siguiente secuencia de datos de entrada: 7.10 Y 2.29 K 1.15 n Ejercicio 5: Desarrollar los algoritmos en Lenguaje de Diseño correspondientes a los siguientes problemas: a) Dadas 30 letras ingresadas por el usuario, mostrar por pantalla el porcentaje de vocales. Resuelva este problema utilizando la estructura de repetición Mientras y luego utilizando la estructura de repetición Para. b) Se ingresan los sueldos de 180 empleados, mostrar por pantalla cuántos empleados ganan más de $7200. c) Dados 1000 caracteres ingresados por el usuario, mostrar por pantalla la cantidad de mayúsculas, la cantidad de minúsculas y la cantidad de dígitos ingresados. d) Determine si un número introducido por teclado es o no perfecto. Un número se dice que es perfecto cuando es igual a la suma de todos sus divisores (incluido el 1) excluido él mismo. Por ejemplo, 28=1+2+4+7+14, luego es un número perfecto Ejercicio 6: Escribir un algoritmo que pida un número (n) y dos límites (i y s) y muestre la tabla de multiplicar correspondiente al número n entre i y s (n, i y s son números enteros positivos). Por ejemplo, si el n ingresado es 3 e i y s son 4 y 14 respectivamente, se deberá mostrar el resultado de: 3*4, 3*5, 3*6,…, 3*14. Mostrar, además, cuántos de los elementos de esta tabla de multiplicar son impares. Ejercicio 7: Escriba un algoritmo en Lenguaje de Diseño que extraiga el valor mínimo y máximo de una secuencia de M números ingresada por el usuario. Ejercicio 8: Ejecute el siguiente algoritmo con diferentes números (por ejemplo: -1, 5, 2569 y 569712) y especifique qué hace. Proceso Cuántos Definir N, C Como Entero; C <- 0; Leer N; Mientras N >= 10 Hacer N <- N / 10; C <- C + 1; FinMientras C <- C + 1; Escribir “la cantidad es: ” C FinProceso Ejercicio 9: Escribir un algoritmo en Lenguaje de Diseño que implemente una calculadora que realice las operaciones según la opción del usuario: op1 = sumar, op2 = restar, op3 = multiplicar, op4 = dividir. El algoritmo debe solicitar al usuario: la opción de la operación deseada, los valores de los operandos (que involucra hacer los controles necesarios sobre éstos para evitar errores en el cálculo de la operación) y luego de mostrar el resultado por pantalla solicitar una opción adicional para indicar si se desea realizar otro cálculo o no. Ejercicio 10: Escribir un algoritmo en Lenguaje de Diseño que para una cierta cantidad de usuarios C, el mismo debe solicitar a cada usuario la edad para discriminar el costo de la entrada al cine y los posibles descuentos de la siguiente forma: para menores de 5 años el costo de la entrada es de $20, para los niños entre 5 y 12 años el costo de la entrada es de $25, para los mayores de 12 años el costo de la entrada es el costo general de $40 y finalmente para los mayores de 60 años se hace un descuento especial del 15% del costo de entrada general. Calcular la ganancia de las entradas y mostrarla por pantalla. Ejercicio 11: Un colegio ha solicitado a una encuestadora, estadísticas sobre el conocimiento general de los alumnos. Para ello la encuestadora debe llamar telefónicamente a 1500 alumnos y realizarle a cada uno 10 preguntas de temas generales. El departamento de sistemas de la encuestadora diseñó un algoritmo para llevar a cabo esta tarea, el cual funciona de la siguiente manera: El empleado de la encuestadora llama a cada alumno, al cual se le efectúa el cuestionario de 10 preguntas una por una. Por cada respuesta que emite el alumno, el empleado ingresa un VERDADERO si el alumno respondió correctamente ó FALSO si la respuesta fue incorrecta. El algoritmo contabiliza la cantidad de aciertos que tuvo ese alumno, muestra esa cantidad por pantalla y acumula esa cantidad. Para finalizar, el algoritmo muestra la cantidad de respuestas correctas que emitieron todos los alumnos encuestados (cantidad acumulada). ¿Cómo escribiría este algoritmo en Lenguaje de Diseño? Ejercicio 12: Una compañía telefónica cobra las llamadas de forma diferenciada utilizando una política peculiar. Los primeros minutos siempre son más caros que los siguientes, de acuerdo al siguiente criterio: - Los primeros 10 minutos - $2 por minuto - Luego de pasados los 10 minutos, $1 el minuto. Escriba un algoritmo que permita calcular el total de la boleta telefónica de 10 clientes. No se sabe cuántas llamadas realizó cada cliente, pero sí se conoce la duración de cada llamada efectuada. Por ejemplo, si un cliente efectuó 5 llamadas, con duración 4, 16, 40, 5, 20, el total de la boleta debería ser 124, pues es el resultado de sumar el costo de las 5 llamadas que se hicieron: 8 + 26 + 50 + 10 + 30. Determine el modo más apropiado de indicar la finalización de la entrada de datos.