Ejemplos Algoritmos
Ejemplos Algoritmos
Ejemplo:
Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha
del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario,
rechazará.
Los pasos del algoritmo son:
1. Inicio.
2. Leer el pedido.
5. Fin.
Ejemplo:
Se desea diseñar un algoritmo para saber si un número es primo o no. Un número es primo
si solo puede dividirse entre sí mismo y entre la unidad (es decir, no tiene más divisores que él
mismo y la unidad). Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etc., no son primos, ya que son divisibles
entre números distintos a ellos mismos y a la unidad. Así, 9 es divisible entre 3, 8 lo es entre 2, etc.
El algoritmo de resolución del problema pasa por dividir sucesivamente el número entre 2, 3, 4...,
etcétera.
1. Inicio.
5. Suma 1 a X (X ← X + 1).
7. Fin.
2. X = 2.
4. X ← 2 + 1, luego X = 3.
7. X ← 3 + 1, X = 4.
9. 131/X. . ., etc.
10. Fin.
Ejemplo:
Realizar la suma de todos los números pares entre el 2 y el 1000. El problema consiste en
sumar 2 + 4 + 6 + 8 ... + 1 000. Utilizaremos las palabras SUMA y NÚMERO (variables, serán
denominadas más tarde) para representar las sumas sucesivas (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8),
etc. La solución se puede escribir con el siguiente algoritmo:
1. Inicio.
2. Establecer SUMA a 0.
3. Establecer NÚMERO a 2.
7. Fin.
Diseño de algoritmos
Una computadora no tiene capacidad para solucionar problemas mas que cuando se le
proporcionan los sucesivos pasos a realizar. Estos pasos sucesivos que indican las instrucciones a
ejecutar por la máquina constituyen, como ya conocemos, el algoritmo.
La información proporcionada al algoritmo constituye su entrada y la información
producida por el algoritmo constituye su salida.
Los problemas complejos se pueden resolver más eficazmente con la computadora cuando
se dividen en subproblemas que sean más fáciles de solucionar que el original. Es el método de
divide y vencerás (divide and conquer), mencionado anteriormente, y que consiste en dividir un
problema complejo en otros más simples. Así, el problema de encontrar la superficie y la longitud
de un círculo se puede dividir en tres problemas más simples o subproblemas.
La descomposición del problema original en subproblemas más simples y a continuación la
división de estos subproblemas en otros más simples que pueden ser implementados para su
solución en la computadora se denomina diseño descendente (top-down design). Normalmente,
los pasos diseñados en el primer esbozo del algoritmo son incompletos e indicarán solo unos
pocos pasos (un máximo de doce pasos aproximadamente). Tras esta primera descripción, estos
se amplían en una descripción más detallada con más pasos específicos. Este proceso se denomina
refinamiento del algoritmo (stepwise refinement). Para problemas complejos se necesitan con
frecuencia diferentes niveles de refinamiento antes de que se pueda obtener un algoritmo claro,
preciso y completo.
El problema de cálculo de la circunferencia y superficie de un círculo se puede
descomponer en subproblemas más simples: 1) leer datos de entrada; 2) calcular superficie y
longitud de circunferencia, y 3) escribir resultados (datos de salida).
recogidas en la figura.
Ejemplo:
Calcular la media de una serie de números positivos, suponiendo que los datos se leen
desde un terminal. Un valor de cero, como entrada, indicará que se ha alcanzado el final de la
serie de números positivos.
El primer paso a dar en el desarrollo del algoritmo es descomponer el problema en una
serie de pasos secuenciales. Para calcular una media se necesita sumar y contar los valores. Por
consiguiente, nuestro algoritmo en forma descriptiva sería:
1. Inicializar contador de números C y variable sumas.
2. Leer un número.
3. Si el úmero leído es cero:
Calcular la media
Imprimir la media
Calcular la suma
Incrementar en uno el contador de números
Ir al paso 2
4. Fin.
Pseudocódigo
entero: dato, C
real: Media, S
C ← 0
S ← 0
repetir
leer(dato)
C ← C + 1
S ← S + dato
fin si
hasta dato = 0
si (C > 0) entonces
Media ← S/C
escribir (Media)
fin si
Ejemplo:
Suma de los números pares comprendidos entre 2 y 100.
Pseudocódigo
entero: numero, Suma
Suma ← 2
numero ← 4
numero ← numero + 2
fin mientras