Curso de Introducción a la Programación
  Algoritmos
 

Algoritmos

Un algoritmo es una secuencia de pasos ordenados, bien definidos y finitos, que se siguen para solucionar un problema.

Por ejemplo, de seguro has visto en alguna revista o libro de cocina, una receta para preparar un platillo, el cual puede ser muy fácil de hacer (como huevos fritos o huevos duros) o más sofisticados (como el mole o cochinita pibil). En estas recetas hay una sección donde se especifican los ingredientes a utilizar y posteriormente se describen los pasos a seguir para preparar el platillo. Estos pasos forman un algoritmo.

Ejemplo: Algoritmo para preparar huevos estrellados.

Ingredientes
* 2 huevos
* 2 cucharadas de aceite vegetal
* Sal al gusto

Algoritmo (que generalmente llaman "Preparación")

1 Poner en el fuego una sartén con el aceite.
2 Cuando el aceite esté caliente, romper los huevos y echarlos a la sartén.
3 Agregar la sal.
4 Esperar a que se cuezan.
5 Servirlos.

Podemos escribir algoritmos para cualquier proceso. Por ejemplo:

Algoritmo para cambiar una llanta averiada de un auto.

Herramienta y material a usar
* Llanta de refacción
* Llave de cruz
* Gato hidráulico

Algoritmo

1 Aflojar los birlos con la llave de cruz.
2 Levantar el auto usando el gato hidráulico.
3 Quitar los birlos y la llanta averiada.
4 Colocar la llanta de refacción y acomodar los birlos.
5 Bajar el auto.
6 Apretar los birlos con la llave de cruz.

Ir al inicio de la página

Características de los algoritmos

Finito: Debe tener un número de pasos determinado.
Preciso: Cada paso debe estar bien definido. Las operaciones a realizar deben ser claras y sin ambigüedades.
Eficaz: Si funciona para X cantidad de datos, también debe hacerlo para una cantidad Y.
Entrada: El algoritmo puede tener 0 o más entradas (datos) los cuales serán procesados.
Salida: Es el resultado del procesamiento. Puede ser 1 o más datos de salida.

Hacer un algoritmo para calcular el área de un triángulo.

La fórmula es: 



Variables a usar:
A contendrá el resultado de la operación.
b es la base del triángulo.
h es la altura.

Inicio
1 Pedir el valor de la b
2 Pedir el valor de la h
3 Calcular el área usando la fórmula
   A = b * h / 2
4 Mostrar el resultado A
Terminar

Ir al inicio de la página

Algoritmos con condición

Hacer un algoritmo que reciba como entrada una edad X, y en base a ésta, que nos reporte si es mayor o menor de edad.

Para resolver este problema, necesitamos realizar una comparación (CONDICIÓN) entre el valor de la edad X y el número 18, a partir del cual se considera que alguien es mayor de edad. El algoritmo recibirá como entrada una edad que se almacenará en X, después se verificará si X es mayor o igual a 18, si es así, entonces se trata de una persona mayor de edad, en caso contrario se tratará de un menor.

Inicio
1 Pedir el valor de la edad X
2 Si X >= 18 entonces
   3 Mostrar el mensaje "Es mayor de edad"
4 En caso contrario
   5 Mostrar el mensaje "Es menor de edad"
Terminar

Otro ejemplo donde se usa la comparación de valores.
Hacer un algoritmo que pida una calificación, si esta es menor o igual a 5, nos dirá que reprobamos, en caso contrario dirá que aprobamos.

Para este caso usaremos la variable calif para almacenar la calificación.

Inicio
1 Pedir la calificación calif
2 Si calif <= 5 entonces
   3 Mostrar el mensaje "Estás reprobado"
4 En caso contrario
   5 Mostrar el mensaje "Felicidades, aprobaste"
Terminar

Ir al inicio de la página

Algoritmos con ciclos

Hacer un algoritmo que imprima los números del 1 al 10.

En este caso necesitamos que se imprima la secuencia de números de la siguiente manera:

1
2
3
...
10

Imagínate un algoritmo con un sólo paso:

1 Mostrar el 1

Esto imprimiría el número 1; pero no queremos indicar 10 pasos así, puesto que, si nos aumentan la cantidad de números a imprimir a 100, necesitaríamos 100 pasos (imagínate si quieres imprimir 1000). Para realizar esta impresión necesitamos lo siguiente:

i será la variable que nos vaya almacenando el número que queremos imprimir.

Algoritmo

Inicio
1 Poner el primer número a mostrar en la variable i
    i = 1
2 Mostrar el valor que está en la variable i
3 Incrementar en 1 la variable i para obtener el siguiente valor a mostrar
    i = i + 1
4 Verificar si i <= 10 entonces
     5 Ir al paso 2
6 En caso contrario terminar
Terminar

Observa muy bien el paso 2, este es el encargado de mostrar el valor de i, quien al principio tiene un 1, después el paso 3 agrega un 1 a la variable i, con lo cual ahora tendrá un 2, en este momento podríamos mostrar el 2, pero ya tenemos un paso que muestra el valor de i y necesitamos regresar a él. Para lograr esto, el paso 4 tiene una CONDICIÓN, la cual será verdadera cuando i tome los valores 2, 3, ..., 10 y entonces se regresará al paso 2 a mostrar el valor que tenga i en ese momento, pero cuando tome el valor 11, la CONDICIÓN será falsa y el algoritmo terminará.

Esta CONDICIÓN hace regresar a un paso anterior una o varias veces, según sea el problema, y permite que se repita un paso o un bloque de ellos; a todos estos pasos que se repiten (incluyendo la condición) se le llama CICLO, y a cada ocasión que se ejecuta el CICLO se le llama ITERACIÓN.

Por ejemplo, el algoritmo anterior tiene un CICLO que iterará 10 veces.

Ir al inicio de la página

Variaciones del ejemplo anterior

Si queremos imprimir del 20 al 30, entonces debemos cambiar el valor inicial de la variable i y el valor final que se encuentra en la CONDICIÓN. Por lo tanto el algoritmo quedaría así:

Inicio
1 Poner el primer número a mostrar en la variable i
    i = 20
2 Mostrar el valor que está en la variable i
3 Incrementar en 1 la variable i para obtener el siguiente valor a mostrar
    i = i + 1
4 Verificar si i <= 30 entonces
     5 Ir al paso 2
6 En caso contrario terminar
Terminar

Ahora, para imprimir los números del 10 al 100 de 5 en 5 (o sea 5, 10,15, ..., 100), tenemos que cambiar el valor inicial, el valor final y el incremento que se aplica a la variable i en cada iteración, quedando el algoritmo así:

Inicio
1 Poner el primer número a mostrar en la variable i
    i = 10
2 Mostrar el valor que está en la variable i
3 Incrementar en 5 la variable i para obtener el siguiente valor a mostrar
    i = i + 5
4 Verificar si i <= 100 entonces
     5 Ir al paso 2
6 En caso contrario terminar
Terminar

Ir al inicio de la página

Impresión con el inicio, fin e incremento variables

¿Qué pasa si cada vez que vamos a ejecutar un programa queremos imprimir a partir de un número diferente, terminar en otro número diferente y hacer los incrementos también diferentes?

Por ejemplo, poder correr el programa 3 veces con los siguientes resultados en cada ejecución:

2 4 6 8 10 12 14 ... 20  (1a. ejecución)
7 14 21 28 35 ... 70      (2a. ejecución)
10 20 30 40 ... 100       (3a. ejecución)

Para eso necesitamos 3 variables que contendrán cada uno de los valores que usará el programa o algoritmo:

inicio será la variable que almacenará el primer valor a imprimir.
final tendrá el último valor a imprimir (a veces no se imprime, pero no se rebasará este número).
incre almacenará el incremento que se hará a la variable i en cada iteración.

Y como ya sabes, la variable i será la que vaya calculando el nuevo valor que se imprimirá en cada iteración.

El algoritmo quedaría así:

Inicio
1 Pedir el valor de la variable inicio
2 Pedir el valor de la variable final
3 Pedir el valor de la variable incre
4 Poner el primer número a mostrar en la variable i
    i = inicio
5 Mostrar el valor que está en la variable i
6 Incrementar en incre la variable i para obtener el siguiente valor a mostrar
    i = i + incre
7 Verificar si i <= final entonces
      Ir al paso 5
 En caso contrario terminar
Terminar

Ir al inicio de la página






 
  Hoy habia 14 visitantes (23 clics a subpáginas) ¡Aqui en esta página!  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis