EJEMPLOS DE ALGORITMOS 1.- Diseña el algoritmo que suma todos los números naturales anteriores a un número N dado. Inicio
Suma = 1 Contador = 2
Contador <= 100
no
Visualizar Suma
si Suma = Suma+Contador
Fin Contador = Contador +1
Inicio Contador = 2 Suma = 1 Mientras Contador <= 100 hacer Suma = Suma + Contador Contador = Contador + 1 Fin_mientras Visualizar Suma Fin
2.- Diseña el algoritmo del programa que muestra en pantalla las potencias de 2 comprendidas entre 0 y 10 ( 20; 21; 22... 210)
Inicio
Contador = 0
NO Contador <= 10
SI
Potencia = 2^contador
Contador = Contador + 1
Visualizar potencia
Fin
Inicio Contador = 0 Mientras ( Contador <= 10 ) hacer Potencia = 2^Contador Contador = Contador + 1 Visualizar potencia Fin_mientras Fin
3.- Diseña el algoritmo del programa que, tras leer tres números, comprueba si la suma de cualquier pareja de ellos es igual al tercer número, indicando si se cumple esa condición o no. Inicio
Leer ,A, B, C
A+B==C
si
no si A+C==B no
B+C==A
si
no Visualizar “No se cumple”
Visualizar “Se cumple”
fin
inicio Leer_A, B, C Si_(A+B==C)entonces visualizar “son iguales” Si_no si_(A+C==B)entonces visualizar “son iguales” si_no si_(B+C==A)entonces visualizar “son iguales” si_no visualizar “son diferentes” fin_si fin_si fin_s
4.- Diseña el algoritmo del programa que permita resolver la ecuación de segundo grado Inicio
Leer A, B , C
D = B ^ 2 – 4 * A *C
D >= 0
No
Si X1 = (- B + D ^ 1/2) / 2 * A
Visualizar “Soluciones imaginarias”
X2 = (- B – D ^ 1/2) / 2 * A
Visualizar x1, x2
Fin
Inicio Leer A, B, C D = B ^ 2 – 4 * A * C Si (D >= 0) entonces X1 = (- B + D ^ 1/2) / 2 * A X2 = (- B - D ^ 1/2) / 2 * A Visualizar X1, X2 Si _ no Visualizar “Soluciones imaginarias” Fin _ si Fin
5.- Diseña el algoritmo del programa que lee números del teclado y, al finalizar, muestra la media aritmética de todos ellos. Se considera que el número cero finaliza la introducción de datos.
Inicio
Suma = 0 Contador = 0
Leer numero
no Numero<>0
si Suma = Suma+numero
no Suma<>0
si
Media = suma/contador
Visualizar “No hay ningún dato”
Contador = Contador+1 Visualiozar media
fin
Inicio Suma = 0 Contador = 0 leer numero mientras (numero<>0) hacer suma = suma+numero contador = contador+1 leer número fin_mientras s (suma<>0) entonces media = suma/contador visualizar media si_no visualizar “no ha introducido ningún numero” fin_si fin
6.- Diseña el algoritmo del programa que sume y muestra en pantalla los múltiplos de 3 entre 3 y 99.
inicio
Suma = 3 Contador = 6
no Contado < 100 si
Suma = suma+contador
Visualizar suma
Contador = contador+3 fin
inicio suma = 3 contador = 6 mientras (contador < 100) hacer suma = suma+contador contador = contador+3 fin_mientras visualizar suma fin
7.- Diseña el algoritmo del programa que lee cuatro números del teclado y muestra el mayor de ellos.
Inicio
Leer a, b, c, d mayor = a
si
b > mayor
no
mayor = b
si
c > mayor
no
mayor = c
si
d > mayor
mayor = d
visualizar mayor
fin
no
inicio leer (a, b, c, d) mayor = a si (b > mayor) entonces mayor = b fin_si si (c > mayor) entonces mayor = c fin_si si (d > mayor) entonces mayor = d fin_si visualizar (mayor) fin
8.- Diseña el algoritmo del programa que muestra en pantalla todos los números primos entre 2 y 100. Inicio
i =2 j =2
i < = 100
no
si
i % j <> 0
no no
si
i <> j si
visualizar i
j =j+ 1
i=i+ 1
j=2 fin
inicio i = 2 j = 2 mientras (i <= 100) hacer mientras (i % j <>0) hacer j = j + 1 fin_mientras si (i == j) entonces visualizar i fin_si i = i + 1 j = 2 fin_mientras fin
9.- Diseña algoritmo del programa que determine el MCD de dos números enteros por el algoritmo de Euclides: consiste en realizar divisiones sucesivas; en la primera división, se toma como dividendo el mayor de los números y como divisor el otro; luego, el divisor y el resto sirven respectivamente de dividendo y divisor de la siguiente división. El proceso termina cuando se obtiene un resto nulo. El mcd es entonces el penúltimo resto del algoritmo. EJEMPLOS . MCD de de a = 945 y b = 651: MCD de: a = 987 y b = 610: 945 = 1×651 + 294 987 = 1×610 + 377 651 = 2×294 + 63 610 = 1×377 + 233 294 = 4×63 + 42 377 = 1×233 + 144 63 = 1×42 + 21 233 = 1×144 + 89 42 = 2×21 + 0 144 = 1×89 + 55 89 = 1×55 + 34 mcd(945; 651) = 21 (el último resto no nulo) 55 = 1×34 + 21 34 = 1×21 + 13 21 = 1×13 + 8 13 = 1×8 + 5 8 = 1×5 + 3 5 = 1×3 + 2 3 = 1×2 + 1 2 = 2×1 + 0 mcd(987; 610) = 1 (el último resto no nulo).
inicio leer A, B si (A>B) entonces dividendo = A divisor = B si_no dividendo = B divisor = A fin_si resto = dividendo%divisor mientras (resto<>0) hacer dividendo = divisor divisor = resto resto = dividendo%divisor fin_mientras visualizar divisor fin
inicio
leer A, B
si
no
A >B
Dividendo = A
Dividendo = B
Divisor = B Divisor = A
Resto = dividendo%divisor
no resto<>0
Visualizar: divisor
si
Dividendo = divisor Divisor = resto fin
10.- Diseñar el algoritmo del programa que determina si una palabra introducida por teclado es palíndromo o no. Un palíndromo es una palabra que se lee igual en ambos sentidos, como por ejemplo radar. Inicio
i=0 j=0
leer Cad
Cad [ i ] <>’ \0'
si
i= i+1
no
i <> 0
si
Cad_inv [ j ] = Cad [ i - 1]
no j =j+1 i=i-1
Cad_inv [ j ] = ” \0 ”
Cad == Cad_inv
no
si visualizar “sí es palindromo”
visualizar “no es palindromo”
fin
Inicio i = 0 j = 0 leer cad mientras (cad[i] <> “\0”) hacer i = i + 1 fin mientras mientras ( i <> 0) hacer cad_inv[j] = cad[i–1] j = j + 1 i = i – 1 fin mientras cad_inv [j] = ”\0 ” si (cad == cad_inv ) entonces visualizar “si es palindromo” si_no visualizar “no es palindromo” fin_si fin