You are on page 1of 5

Algoritmo

un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permiten
llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer
dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un
estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1

mEn la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos
ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador de su patrón. Algunos ejemplos en matemática son el
algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el
cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos
enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales.

En términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten


solucionar un problema. Los derechos de autor otorgan al propietario el derecho exclusivo sobre
el uso de la obra, con algunas excepciones. Cuando alguien crea una obra original fija en un medio
tangible, automáticamente se convierte en el propietario de los derechos de autor de dicha obra.

Definición
En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo.
Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema
abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada)
en una solución (salida).123456 Sin embargo cabe notar que algunos algoritmos no
necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una
versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no
deja de ser un algoritmo.7

A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos
utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de
"calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose en la máquina
de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver
exactamente los mismos problemas con ambos enfoques.89 Sin embargo, estos modelos están
sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en
general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.31 En general,
la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades
siempre y cuando no consideremos algoritmos paralelos:7

Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así
una secuencia de estados computacionales por cada entrada válida (la entrada son los datos que
se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una
estructura de primer orden y cada algoritmo es independiente de su implementación (los
algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden
son invariantes bajo isomorfismo.
Exploración acotada. La transición de un estado al siguiente queda completamente determinada
por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede
tomar en cuenta una cantidad fija y limitada de términos del estado actual.
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda
describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene
un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta
amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría,
por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en
principio, con números de precisión infinita; sin embargo no es posible programar la precisión
infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible
considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de
que toda función calculable se puede programar en una máquina de Turing (o equivalentemente,
en un lenguaje de programación suficientemente general):10

Aritmetizabilidad. Solamente operaciones innegablemente calculables están disponibles en el paso


inicial.

1.1 Definición de algoritmo


Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea especifica,
como la solución de un problema. Los algoritmos son independientes tanto del lenguaje de
programación en que se expresan como de la computadora que los ejecuta. En cada problema el
algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una
computadora distinta; sin embargo el algoritmo será siempre el mismo.

Por ejemplo en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar
en español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del
plato se realizaran sin importar el cocinero.

Los pasos a seguir en la solución de una ecuación de segundo grado.

Los pasos matemáticos para la solución de un número factorial.

Las instrucciones para la liquidación de una nomina.

Las acciones que se deben seguir para la obtención de una estadística.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo


que sin algoritmo no puede existir un programa.

Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:


Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea
debe de tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.

En el algoritmo citado anteriormente se tendrá:

Entrada ingredientes y utensilios empleados

Proceso elaboración de la receta de cocina

Salida terminación del plato (por ejemplo, cordero)

Un algoritmo exige que se tengan varias propiedades importantes:

Los pasos de un algoritmo deben ser simples y exentos de ambigüedades (diferentes significados),
deben seguir un orden cuidadosamente prescrito, deben ser efectivos y deben de resolver el
problema en un número finito de pasos.

El siguiente ejemplo muestra un algoritmo para cambiar un foco quemado.

Cambiar un foco quemado podría resumirse en dos pasos:


Quitar el foco quemado
Colocar un foco nuevo

Pero, si tuviera que entrenar un robot domestico para que efectúe esta tarea, tendrá que ser mas
especifico y claro en los pasos a seguir, dar mas detalles (suponga que el foco se encuentra en el
techo de una habitación):
Situar escalera bajo el foco quemado.
Elegir un foco de reemplazo (de la misma potencia que el anterior).
Subir por la escalera hasta alcanzar el foco.
Girar el foco contra las manecillas del reloj hasta que esté suelto.
Ubicar el foco nuevo en el mismo lugar que el anterior.
Enroscar en el sentido de las manecillas del reloj hasta que quede apretado.
Bajar de la escalera.

Tipos de algoritmos
Existen dos tipos y son: cualitativos y cuantitativos.

Los cualitativos son aquellos en los que se describen los pasos utilizando palabras, lo ejecutan las
personas.

Los cuantitativos son aquellos en los que se utilizan cálculos numéricos para definir los pasos del
proceso, lo ejecuta la compu.
Reglas de algoritmos
El algoritmo debe escribirse como una expresión en algún lenguaje:
¨ Descripción narrada.

¨ Notación matemática.

¨ Pseudocódigo.

¨ Diagramas de flujo.

¨ Lenguaje de computadora.

Exactamente cada pregunta del problema debe ser contestada por la ejecución del algoritmo.
Cualquiera que sean los valores de las entradas, la ejecución terminará después de algún número
finito de pasos.
Estructura de un Algoritmo
1. Presentación resumen del libro:"EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor:
Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 9 ESTRUCTURA DE UN ALGORITMO 1
2. Capítulo 9. ESTRUCTURA DE UN ALGORITMO OBJETIVOS• Conocer la estructura de un
algoritmo.• Saber organizar los elementos de un algoritmo. – Aunque todavía no se han estudiado
todos los tipos de instrucciones que existen en programación, ya se conocen todos los elementos
que se pueden utilizar parar diseñar algoritmos, pero, ¿de qué manera se organizan dichos
elementos en un algoritmo? 2 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3. Capítulo 9. ESTRUCTURA DE UN ALGORITMO CONTENIDO9.1 INTRODUCCIÓN9.2 CABECERA9.3
DECLARACIONES9.4 CUERPO9.5 COMENTARIOS 3 Libro: “EMPEZAR DE CERO A PROGRAMAR EN
LENGUAJE C”
4. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.1 INTRODUCCIÓN• La estructura de un algoritmo
sirve para organizar a los elementos que aparecen en él.• En pseudocódigo, todos los algoritmos
tienen la misma estructura, la cual viene definida por tres secciones: – Cabecera. – Declaraciones.
– Cuerpo. 4 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
5. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.2 CABECERA• En la cabecera de un algoritmo se
debe indicar el nombre (identificador) asignado al mismo. La sintaxis es: algoritmo
<nombre_del_algoritmo>• EJEMPLO: Si se quiere diseñar el algoritmo de un programa que: 1º)
Pida por teclado el radio (dato real) de una circunferencia. 2º) Calcule el área de la circunferencia.
3º) Muestre por pantalla el resultado (dato real). Nota: Área de una circunferencia = * radio2 El
algoritmo puede llamarse Area_de_una_circunferencia, por tanto, en la cabecera se puede
escribir: algoritmo Area_de_una_circunferencia 5 Libro: “EMPEZAR DE CERO A PROGRAMAR EN
LENGUAJE C”
6. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.3 DECLARACIONES• En esta sección se declaran
las constantes, los tipos de datos y las variables que se usan en el algoritmo. La sintaxis es: [
constantes <declaraciones_de_constantes> ] [ tipos_de_datos
<declaraciones_de_tipos_de_datos> ] [ variables <declaraciones_de_variables> ] Para resolver el
problema planteado en el apartado anterior, es necesario declarar una constante y dos variables:
constantes PI = 3.141592 variables real area, radio 6 Libro: “EMPEZAR DE CERO A PROGRAMAR EN
LENGUAJE C”
7. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.4 CUERPO (1/4)• En el cuerpo se escriben todas
las instrucciones del algoritmo. La sintaxis es: inicio <instrucción_1> <instrucción_2> ...
<instrucción_n> fin• inicio y fin son palabras reservadas que marcan el principio y final de la
sección cuerpo, que es donde está el bloque de instrucciones principal del algoritmo. 7 Libro:
“EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
8. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.4 CUERPO (2/4)• EJEMPLO: El cuerpo del
algoritmo Area_de_una_circunferencia es: inicio escribir( "Introduzca radio: " ) leer( radio ) area PI
* radio ** 2 escribir( "El área de la circunferencia es: ", area ) fin Por pantalla se verá algo parecido
a: 8 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
9. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.4 CUERPO (3/4)• Así, el algoritmo completo es:
algoritmo Area_de_una_circunferencia constantes PI = 3.141592 variables real area, radio inicio
escribir( "Introduzca radio: " ) leer( radio ) area PI * radio ** 2 escribir( "El área de la circunferencia
es: ", area ) fin 9 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
10. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.4 CUERPO (4/4)• La sintaxis completa para
escribir un algoritmo en pseudocódigo es: algoritmo <nombre_del_algoritmo> [ constantes
<declaraciones_de_constantes> ] [ tipos_de_datos <declaraciones_de_tipos_de_datos> ] [
variables <declaraciones_de_variables> ] inicio <bloque_de_instrucciones> fin 10 Libro: “EMPEZAR
DE CERO A PROGRAMAR EN LENGUAJE C”
11. Capítulo 9. ESTRUCTURA DE UN ALGORITMO 9.5 COMENTARIOS• En los algoritmos es
conveniente escribir comentarios para explicar el diseño y/o funcionamiento del mismo: /*
Cabecera */ algoritmo Area_de_una_circunferencia /* Declaraciones */ constantes PI = 3.141592
variables real area, radio /* Cuerpo */ inicio escribir( "Introduzca radio: " ) leer( radio ) area PI *
radio ** 2 escribir( "El área de la circunferencia es: ", area ) fin 11 Libro: “EMPEZAR DE CERO A
PROGRAMAR EN LENGUAJE C”
12. Capítulo 9. ESTRUCTURA DE UN ALGORITMO EJERCICIOS RECOMENDADOS• Resueltos: 1, 2, 3,
4, 5 y 6.• Propuestos: 1, 2, 3, 4, 5, 6, 7 y 8. 12 Libro: “EMPEZAR DE CERO A PROGRAMAR EN
LENGUAJE C”
13. GRACIAS POR SU ATENCIÓN Para más información, puede visitar la web del
autor:http://www.carlospes.com 13

You might also like