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:
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
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
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 HACER s ← s+i i ← i+1
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
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
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