Vous êtes sur la page 1sur 12

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

no Visualizar
Contador <= 100
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

si
A+B==C

no

si
A+C==B

no

si
B+C==A

no

Visualizar Visualizar
“No se cumple” “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

No
D >= 0

Si
Visualizar
“Soluciones
imaginarias”
X1 = (- B + D ^ 1/2) / 2 * A

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 no
Numero<>0 Suma<>0

si si

Suma = Suma+numero Visualizar


Media = suma/contador
“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 no
b > mayor inicio
leer (a, b, c, d)
mayor = a
mayor = b
si (b > mayor) entonces
mayor = b
fin_si
si (c > mayor) entonces
si no mayor = c
c > mayor
fin_si
si (d > mayor) entonces
mayor = c
mayor = d
fin_si
visualizar (mayor)
fin
si no
d > mayor

mayor = d

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

no
i < = 100

si

no
i % j <> 0
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: a = 987 y b = 610: MCD de de a = 945 y b = 651:
987 = 1×610 + 377 945 = 1×651 + 294
610 = 1×377 + 233 651 = 2×294 + 63
377 = 1×233 + 144 294 = 4×63 + 42
233 = 1×144 + 89 63 = 1×42 + 21
144 = 1×89 + 55 42 = 2×21 + 0
89 = 1×55 + 34
55 = 1×34 + 21 mcd(945; 651) = 21 (el último resto no nulo)
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
Visualizar:
resto<>0
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

si
Cad [ i ] <>’ \0' i= i+1

no

si
i <> 0 Cad_inv [ j ] = Cad [ i - 1]

no

j =j+1
i=i-1
Cad_inv [ j ] = ” \0 ”

no
Cad == Cad_inv

si

visualizar visualizar
“sí es palindromo” “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