Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) Página 1 de 7 PRÁCTICA ALGORÍTMICA: EJERCICIOS PROPUESTOS EJERCICIOS DE ESTRUCTURA REPETITIVA 1. (Problema 4) Escriba un algoritmo que lea del teclado un número entero y que compruebe si es menor que 5. Si no lo es, debe volver a leer un número, repitiendo la operación hasta que el usuario escriba un valor correcto. Finalmente debe escribir por pantalla el valor leído. 2. (Problema 5) Modifique el algoritmo del problema 4 para que, en vez de comprobar que el número es menor que 5, compruebe que se encuentre en el rango (5,15). 3. (Problema 6) Modifique el algoritmo del problema 5 para que cuente las veces que ha leído un número del teclado y escriba el resultado por pantalla. 4. (Problema 7) Modifique el algoritmo del problema 6 para que se realicen 10 lecturas del teclado como máximo. 5. (Problema 8) Escriba un algoritmo que, dado un vector de 10 enteros, escriba todos sus elementos por pantalla. Supongamos que el primer elemento del vector tiene índice 1. 6. (Problema 9) Escriba un algoritmo que, dado un vector de 10 enteros, sume todos sus elementos y escriba por pantalla el resultado. Supongamos que el primer elemento del vector tiene índice 1. 7. (Problema 10) Escriba un algoritmo que, dado un vector de enteros, cuente los elementos que están en el rango [10, 50) y que escriba el resultado por pantalla. 8. (Problema 11) Modifique el algoritmo del problema 10 para que calcule la media de los elementos que cumplen la condición. 9. (Problema 12 ) Escriba un algoritmo en pseudo código que calcule e imprima la suma de los n primeros números enteros positivos. El valor de n debe leerse del teclado. 10. (Problema 13) Escriba un algoritmo que lea un número real del teclado y busque dicho número en un vector de N números reales, donde N es una constante a la que le daremos un valor cualquiera. Si se encuentra el número, se debe escribir por pantalla el índice del elemento que lo contiene. Supongamos que: a. Que el algoritmo no necesita leer el contenido del vector. b. Ningún elemento del vector se repite. 11. (Problema 14) Escriba un algoritmo que busque el valor máximo de los elementos de un vector de N números reales, donde N es una constante a la que le daremos un valor cualquiera. El algoritmo debe escribir por pantalla el valor máximo. Supongamos que: a. Que el algoritmo no necesita leer el contenido del vector. 12. (Problema 15) Escriba un algoritmo que busque el valor mínimo de los elementos de un vector de N números reales, donde N es una constante a la que le daremos un valor cualquiera. El algoritmo debe escribir por pantalla el valor máximo y el índice del elemento que lo contiene. Supongamos que: a. Que el algoritmo no necesita leer el contenido del vector. Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) SOLUCIONES ALGORITMO problema4 VARIABLES num ES ENTERO INICIO ESCRIBE “Teclee un número menor que 5” LEE num MIENTRAS num >= 5 HACER ESCRIBE “Teclee un número menor que 5” LEE num FIN MIENTRAS ESCRIBE “El número leído es “, num FIN ALGORITMO problema5 VARIABLES num ES ENTERO INICIO ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)” LEE num MIENTRAS num <= 5 O num >= 15 HACER ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)” LEE num FIN MIENTRAS ESCRIBE “El número leído es “, num FIN ALGORITMO problema6 VARIABLES num, veces SON ENTEROS INICIO ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)” LEE num veces ← 1 MIENTRAS num <= 5 O num >= 15 HACER ESCRIBE “El número es incorrecto, inténtelo de nuevo.” LEE num veces ← veces + 1 FIN MIENTRAS ESCRIBE “El número leído es “, num ESCRIBE “El número de intentos ha sido “, veces FIN Página 2 de 7 Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) ALGORITMO problema7 VARIABLES num, veces SON ENTEROS INICIO ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)” LEE num veces ← 1 MIENTRAS (num <= 5 O num >= 15) Y veces < 10 HACER ESCRIBE “El número es incorrecto, inténtelo de nuevo.” LEE num veces ← veces + 1 FIN MIENTRAS SI (veces = 10) ENTONCES ESCRIBE “Se han acabado los intentos” SINO ESCRIBE “El número leído es “, num ESCRIBE “El número de intentos ha sido “, veces FINSI FIN ALGORITMO problema8 VARIABLES v ES VECTOR DE 10 ENTEROS (INDICES 1 A 10) i ES ENTERO INICIO i ← 1 MIENTRAS i <= 10 HACER ESCRIBE “El elemento “, i, “ vale ”, v[i] i ← i+1 FIN MIENTRAS FIN ALGORITMO problema9 VARIABLES v ES VECTOR DE 10 ENTEROS (INDICES 1 A 10) total, i SON ENTEROS INICIO i ← 1 total ← 0 MIENTRAS i <= 10 HACER total ← total + v[i] i ← i+1 FIN MIENTRAS ESCRIBE total FIN Página 3 de 7 Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) ALGORITMO problema10 VARIABLES v ES VECTOR DE 10 ENTEROS (INDICES 1 A 10) cuenta, i SON ENTEROS INICIO i ← 1 cuenta ← 0 MIENTRAS i <= 10 HACER SI v[i] >= 10 Y v[i] < 50 ENTONCES cuenta ← cuenta + 1 FINSI i ← i+1 FIN MIENTRAS ESCRIBE total FIN ALGORITMO problema11 VARIABLES v ES VECTOR DE 10 ENTEROS (INDICES 1 A 10) total, cuenta, i SON ENTEROS INICIO i ← 1 cuenta ← 0 total ← 0 MIENTRAS i <= 10 HACER SI v[i] >= 10 Y v[i] < 50 ENTONCES cuenta ← cuenta + 1 total ← total + v[i] FINSI i ← i+1 FIN MIENTRAS ESCRIBE total / cuenta FIN ALGORITMO problema12 VARIABLES i ES ENTERO s ES REAL INICIO LEER n s ← 0 i ← 1 MIENTRAS i<=n s ← s+i i ← i+1 HACER Página 4 de 7 Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) FIN MIENTRAS ESCRIBE “La suma de los primeros “, n, “ numeros es “, s FIN ALGORITMO Problema12 (estructura REPETIR … HASTA) VARIABLES i, n SON ENTEROS s ES REAL INICIO LEER n s ← 0.0 i ← 1 REPETIR s ← s + i i ← i +1 HASTA i > n ESCRIBE “La suma de los primeros”, n ESCRIBE “numeros positivos es = “, s FIN ALGORITMO Problema12 (Estructura PARA) VARIABLES i, n SON ENTEROS s ES REAL INICIO LEER n s ← 0.0 PARA i ← 1 HASTA n HACER s ← s + i FIN PARA ESCRIBE “La suma de los primeros”, n ESCRIBE “numeros positivos es = “, s FIN ALGOTIRMO Problema13 (búsqueda secuencial) CONSTANTES n VALE 100 VARIABLES a ES VECTOR DE REALES (INDICES 1 A n) i ES ENTERO valor ES REAL encontrado ES BOOLEANO INICIO LEE valor i ← 1 encontrado ← FALSO Página 5 de 7 Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) Página 6 de 7 MIENTRAS i<=n Y NO encontrado HACER SI a[i] = valor ENTONCES encontrado ← VERDADERO ESCRIBE “El valor se ha encontrado en la posición”, i FINSI i ← i+1 FIN MIENTRAS FIN ALGOTIRMO Problema14 (búsqueda del máximo) CONSTANTES n VALE 100 VARIABLES a ES VECTOR DE REALES (INDICES 1 A n) i ES ENTERO max ES REAL INICIO LEE valor max ← a[1] PARA i ← 2 HASTA n HACER SI a[i] > max ENTONCES max ← a[i] FINSI FIN PARA ESCRBE “El valor máximo es”, max FIN ALGOTIRMO Problema15 (búsqueda del mínimo solución 1) CONSTANTES n VALE 100 VARIABLES a ES VECTOR DE REALES (INDICES 1 A n) i, imin ES ENTERO min ES REAL INICIO LEE valor min ← a[1] imin ← 1 PARA i ← 2 HASTA n HACER SI a[i] < min ENTONCES min ← a[i] imin ← i FINSI FIN PARA ESCRIBE “El valor mínimo es”, min, “ y se encuentra en la posición “, imin Asignatura: Fundamentos de Informática Departamento de Arquitectura y Tecnología de Computadores (ATC) Página 7 de 7 FIN ALGOTIRMO Problema15 (búsqueda del mínimo solución 2) CONSTANTES n VALE 100 VARIABLES a ES VECTOR DE REALES (INDICES 1 A n) i, imin ES ENTERO INICIO LEE valor imin ← 1 PARA i ← 2 HASTA n HACER SI a[i] < a[imin] ENTONCES imin ← i FINSI FIN PARA ESCRIBE “El valor mínimo es”, a[imin], “ y se encuentra en la posición “, imin FIN