lunes, 25 de noviembre de 2013

Algoritmo y Programas

Unidad 1: Algoritmo y Programas

o  Concepto de Algoritmos y Programas.

o   Lenguaje algorítmico y de programación.

o   Partes de un algoritmo.

o   Características y elementos para construir un algoritmo.

o   Formas de representar un algoritmo: Lenguaje Natural, pseudocódigo y diagrama de flujo.

o   Traza de un algoritmo (corrida en frío).
 
ALGORITMOS

DEFINICIÓN: Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema.
Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación. El algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje de programación. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. Existen
algoritmos, hay que coger el más efectivo.
Programa: Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programación que expresa un algoritmo y que puede ser ejecutado en un computador.
CLASIFICACIÓN DE ALGORITMOS: Los algoritmos se pueden clasificar en cuatro tipos:
  • Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una computadora. Ejemplo: Fórmula aplicada para un cálculo de la raíz cuadrada de un valor x.
  • Algoritmo no computacional: Es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo: Instalación de un equipo de sonido.
  • Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados cálculos numéricos. Ejemplos: Las instrucciones para desarrollar una actividad física, encontrar un tesoro.
  • Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o instrucciones involucran cálculos numéricos. Ejemplo: Solución de una ecuación de segundo grado.
CARACTERÍSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes características:
  • 1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer.
    2. Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos.
    3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada.
    4. Puede tener cero o más elementos de entrada.
    5. Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.
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 tener un numero finito de pasos.
La definición de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendrá:
Entrada: ingrediente y utensilios empleados.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato (por ejemplo, cordero).
Ejemplo de Algoritmo:
Un cliente ejecuta un pedido a una fábrica. Esta examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario rechazara el pedido

PARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes:
· Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado.
· Proceso, es la secuencia de pasos para ejecutar el algoritmo.
· Salida de resultados, son los datos obtenidos después de la ejecución del algoritmo.
TÉCNICAS DE REPRESENTACIÓN: Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se utilizan algunos métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son:
· Diagramación libre (Diagramas de flujo).
· Diagramas Nassi-Shneiderman.
· Pseudocódigo.
· Lenguaje natural (español, inglés, etc.).
· Fórmulas matemáticas.
DIAGRAMA FLUJO (CONVENCIONAL)
Representa en forma gráfica los pasos que se siguen para resolver un problema.






Traza de un algoritmo
Llamada también “corrida” o simplemente probar un algoritmo en papel, significa razonar cómo lo haría un computador, ejecutando cado uno de los pasos o instrucciones, asignándole valores a las variables, registrar el comportamiento de los valores y comprobar que efectivamente cumple el tratamiento o proceso al cual se someten los datos según el objetivo del algoritmo.

Datos y Entidades Primitivas

Unidad 3: Datos y Entidades Primitivas
 
o Concepto y diferencia entre dato e información, tipos de datos.
o Los Operadores: Concepto y tipos de  operadores.
o Las Expresión: concepto, tipos y evaluación de expresiones, Los Identificadores: Concepto, Reglas de escritura, las variables: clasificación de variables según su contenido (numéricas, lógicas y alfanuméricas) y su uso (de trabajo, contador y acumulador), constantes.

 Diferencia entre Datos e información

 Datos

Un dato es un elemento que por si solo no dice nada, pero al ser procesado genera información.Los datos son símbolos que se convierten en condiciones, hechos, situaciones o valores. Un dato puede significar un número, una letra, un signo ortográfico o cualquier símbolo que represente una cantidad, una medida, una palabra o una descripción. La importancia de los datos está en su capacidad de asociarse dentro de un contexto para convertirse en información. Es decir, por si mismos los datos no tienen capacidad de comunicar un significado y por tanto no pueden afectar el comportamiento de quien los recibe. Para ser útiles, los datos deben convertirse en información que ofrezca un significado,  conocimiento, ideas o conclusiones.

Tipo de datos Características Ejemplos

Numéricos Enteros Los números enteros son los números naturales positivos y negativos que conocemos.

Numéricos Reales Los números reales, son los números que tienen parte decimal.

Lógicos o boléanos Son aquellos datos cuyos únicos valores sólo pueden ser: Verdadero (V) o Falso (F), puede encontrarse,Verdadero (True) o Falso (False). Se utiliza para representar las opciones (si/no) a determinadas condiciones.
Nacionalidad = “Venezolano”(S/N)?

Carácter o Char Su valor lo comprenden todos los caracteres alfabéticos, mayúsculas y minúsculas (A – Z), numéricos
(0 – 9) y símbolos especiales (#,@,%,&).

Carácter String o cadena
Su valor esta representado por un conjunto de caracteres.
“Abril”
“Reporte Anual de Fallas

   1. Los Datos a diferencia de la información son utilizados como diversos métodos para comprimir la información a fin de permitir una transmisión o almacenamiento más eficaces.

   2. Aunque para el procesador de la computadora hace una distinción vital entre la información entre los programas y los datos, la memoria y muchas otras partes de la computadora no lo hace. Ambos son registradas temporalmente según la instrucción que se le de. Es como un pedazo de papel no sabe ni le importa lo que se le escriba: un poema de amor, las cuentas del banco o instrucciones para un amigo. Es lo mismo que la memoria de la computadora. Sólo el procesador reconoce la diferencia entre datos e información de cualquier programa. Para la memoria de la computadora, y también para los dispositivos de entrada y salida (E/S) y almacenamiento en disco, un programa es solamente más datos, más información que debe ser almacenada, movida o manipulada.

   3. La cantidad de información de un mensaje puede ser entendida como el número de símbolos posibles que representan el mensaje."los símbolos que representan el mensaje no son más que datos significativos.

   4. En su concepto más elemental, la información es un mensaje con un contenido determinado emitido por una persona hacia otra y, como tal, representa un papel primordial en el proceso de la comunicación, a la vez que posee una evidente función social. A diferencia de los datos, la información tiene significado para quien la recibe, por eso, los seres humanos siempre han tenido la necesidad de cambiar entre sí información que luego transforman en acciones. "La información es, entonces, conocimientos basados en los datos a los cuales, mediante un procesamiento, se les ha dado significado, propósito y utilidad"

Expresiones
 
Las expresiones son una parte fundamental de la programación ya que sirven para realizar una o varias operaciones sobre un dato o un conjunto de datos, obteniéndose otro dato como resultado. Los operadores definen algunas de las operaciones que pueden realizarse dentro de una expresión. Las expresiones son combinaciones de constantes, variables, símbolos de operación (matemáticos, lógicos y relacionales) y nombres de funciones que se utilizan en el
cuerpo del algoritmo. Las expresiones pueden ser simples o compuestas,  Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.
 
Por ejemplo:
a + (b + 3) / c

Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.

Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:
  • Aritméticas
  • Relacionales
  • Lógicas
EVALUACIÓN DE EXPRESIONES
Cuando en una expresión concurre más de una operación, los paréntesis indicarán prioridad, es decir, la operación encerrada entre paréntesis se realizará en primer lugar. Asi mismo, algunos operadores tendrán prioridad sobre otros.
Las operaciones aritméticas son efectuadas en el siguiente orden:

1. Menos unario o negación
2. Exponenciación
3. Multiplicación, división y división entera
4. Suma y resta

Un operador es un carácter o una secuencia de caracteres. Por ejemplo: + - * / mod div  Los operadores definen las operaciones que van a realizarse con los datos u operandos.

Expresiones: Es la combinación de operandos y operadores 

a) Aritméticos (su resultado es un número):                        potencia,  * , / , mod, div, + , -
b) Relacionales (su resultado es un valor de verdad):         =, <, >, <=, >=, <>
c) Lógicos  (su resultado es un valor de verdad):                not, and, or

Reglas de Evaluación:

          Todas las subexpresiones entre paréntesis se evalúan primero. Las subexpresiones entre paréntesis anidados se evalúan de adentro hacia afuera, es decir, que el paréntesis mas interno se evalúa primero. 

           Prioridad de Operaciones: Dentro de una misma expresión o subexpresión, los operadores se evalúan en el siguiente orden: Aritméticas ( paréntesis , signo, Potencia, raíces,  Producto y división, Suma y resta), Relacionales  y Lógicas.

          Los operadores en una misma expresión o subexpresión con igual nivel de prioridad se evalúan de izquierda a derecha 



Estandares de Calidad en el Diseño de Algoritmos y Construcción de Programas

 Unidad 2: Estándares de Calidad en el Diseño de Algoritmos y   Construcción de Programas

o  Introducción a los estándares de calidad.
o  Forma de trazabilizar un algoritmo.
o  Formas y técnicas de documentar algoritmos y programas.
o  Introducción a la elaboración del manual del sistema, usuario y programas.
o Técnicas de escritura y pruebas de algoritmos y programas.

Documentación.
Una vez diseñado y bien estructurado un algoritmo, la siguiente actividad a desarrollar, sumamente importante en programación, es producir programas bien documentados, para que se cumplan los objetivos básicos, que los programas sean legibles, comprensibles y fácilmente modificables.
La documentación incluye descripciones, comentarios, especificaciones, incluso un breve manual de uso si el algoritmo es suficientemente extenso.
Tenemos dos tipos de documentación en el desarrollo de algoritmos bien diseñados:
a) Documentación externa: Incluye la escritura de información que es exterior al cuerpo del algoritmo. Puede incluir, además de todas las especificaciones detalladas, una explicación extensa del desarrollo del algoritmo y de las modificaciones sufridas. Deben añadirse igualmente descripciones detalladas del problema, de los módulos que lo componen, adjuntando un diagrama jerárquico del diseño descendente y por último un manual de usuario donde se explicará al cliente (o al profesor en su defecto) como debe usarse el programa. Esta documentación debe adjuntarse sólo en el caso de que los algoritmos sean suficientemente grandes, lo que se consideran aplicaciones informáticas de cierta envergadura, divididas en varios programas.
b) Documentación interna: Incluye la escritura de información que se suministra con el cuerpo del algoritmo. Estará formada por comentarios, código autodocumentado e impresión agradable del texto del pseudocódigo.

La documentación de sistemas es el conjunto de información que nos dice qué hacen los sistemas, cómo lo hacen y para quién lo hacen. La documentación consiste en material que explica las características técnicas y la operación de un sistema. Es esencial para proporcionar entendimiento de un sistema a quien lo vaya a usar para mantenerlo, para permitir auditoria del sistema y para enseñar a los usuarios como interactuar con el sistema y a los operandos como hacerlo funcionar.Existen varios tipos de documentación. La de programas, que explica la lógica de un programa e incluye descripciones, diagramas de flujo, listados de programas y otros documentos; la del usuarios en forma general la naturaleza y capacidades del sistema y cómo usarlo.Muchas organizaciones tienen lo que se conoce como un "programa de documentación", el cual consiste en una política formal cuya documentación se muestra como algo que debe prepararse en forma rutinaria para cada programa de cómputo, archivo y nuevos sistemas.Importancia De 

La Documentación De Sistemas
 
La importancia de la documentación bien podría ser comparada con la importancia de la existencia de una Póliza de Seguro; mientras todo va bien no existe la precaución de confirmar si nuestra Póliza de Seguros está o no vigente.
La documentación adecuada y completa, de una aplicación que se desea implantar, mantener y actualizar en forma satisfactoria, es esencial en cualquier Sistema de Información, sin embargo, frecuentemente es la parte a la cual se dedica l menor tiempo y se le presta menos atención.Siempre se debe documentar un sistema como si estuviera a punto de irse a Siberia el siguiente mes, para nunca volver. Si la documentación del sistema es incompleta el diseñador continuamente estará involucrado y no podrá moverse a otra asignación. 

2. Estandarizacion y normalizacion 

Estandarizacion 

Significa que los símbolos convencionales se usan en todos los diagramas de flujo para prescribir el sistema y que en la documentación se usen formas estandarizadas.Aún cuando las normas de documentación varían de una instalación a otra, es esencial que dentro de una organización, se utilice un solo método. El uso de procedimientos y documentación estandarizada proporciona la base de una comunicación clara y rápida, adiestramiento menos costoso del personal de sistemas, reducción de costos de almacenamiento, y otros.
 Ventajas De La Estandarizacion
  •  Ayuda al entrenamiento del nuevo personal dentro y fuera de la organización de Sistemas.
  •  Es útil para cualquiera que tenga la responsabilidad del mantenimiento de los sistemas.
  • Ayuda a los analistas y diseñadores de sistemas en el trabajo de integración de sistemas.
  • Asegura que el sistema opere correctamente.
  • Se utilizan eficientemente los recursos que se dispongan.
  •  
Normalización
  •  Asegúrese de que los estándares sean completos, actualizados, documentados y legibles.
  •  Auditar permanentemente para que se cumplan los estándares.
  •  Evaluar si los estándares establecidos son los requeridos y hacer los cambios necesarios para que dichos estándares sean los apropiados.
 Teoria General De Los Manuales De Documentación
 Durante el desarrollo de un sistema, desde su concepción hasta su puesta en marcha se ha generado gran cantidad de documentos, que en muchas ocasiones se han visto modificados por documentos posteriores debido a cambios en el sistema.
 Para evitar confusiones en las revisiones de la documentación se desarrollan diferentes tipos de documentos dirigidos a las personas que trabajarán con el sistema y para facilitar el mantenimiento del mismo. La documentación de un sistema debe ser marcada adecuadamente, bien organizada actualizada y completa; todos los términos utilizados deben explicarse. La documentación se hará disponible a todos los usuarios dc acuerdo a sus necesidades.
  •  El estilo de redacción de los manuales de documentación debe ser:
  •  Concreto.
  • Ser preciso y definir los términos utilizados.
  • Utilizar párrafos cortos.
  • Utilizar títulos y subtítulos.
  • Utilizar formas activas en lugar de pasivas.
  • No emplear frases largas que presenten hechos distintos.
  • No hacer referencia a una información solamente con el número de referencia

Manual De Usuario: Expone los procesos que el usuario puede realizar con el sistema implantado. Para lograr esto, es necesario que se detallen todas y cada una de las características que tienen los programas y la forma de acceder e introducir información. Permite a los usuarios conocer el detalle de qué actividades ellos deberán desarrollar para la consecución de los objetivos del sistema. Reúne la información, normas y documentación necesaria para que el usuario conozca y utilice adecuadamente la aplicación desarrollada.
 Objetivos
  •  Que el usuario conozca cómo preparar los datos de entrada.
  • Que el usuario aprenda a obtener los resultados y los datos de salida.
  • Servir como manual de aprendizaje.
  • Servir como manual de referencia.
  • Definir las funciones que debe realizar el usuario.
  • Informar al usuario de la respuesta a cada mensaje de error.
Pasos a seguir para definir como desarrollar el manual de usuario.
  • Identificar los usuarios del sistema: personal que se relacionará con el sistema.
  • Definir los diferentes tipo de usuarios: se presentan los diferentes tipos de usuarios que usarían el sistema. Ejemplo: usuarios directos, indirectos.
  • Definir los módulos en que cada usuario participará: Se describen los módulos o procesos que se ejecutarán por cada usuario en forma narrativa breve y clara.
 Importancia Del Manual De Usuario

 El Manual de Usuario facilita el conocimiento de:

 Los documentos a los que se puede dar entrada por computadora.

Los formatos de los documentos.

Las operaciones que utiliza de entrada y salida de los datos.

El orden del tratamiento de la computadora con los datos introducidos.

El momento en que se debe solicitar una operación deseada.

Los resultados de las operaciones realizadas a partir de los datos introducidos.

 Al elaborar el Manual de Usuario, hay que tener en cuenta a quién va dirigido es decir, el manual puede ser manejado desde el director de la empresa hasta el introductor de datos. Por consiguiente, debe redactarse de forma clara y sencilla para que lo entienda cualquier tipo de usuario.

Programación Estructurada

La Programación Estructurada.

La programación estructurada se refiere al control de ejecución. El control de su ejecución es una de las cuestiones más importantes que hay que tener en cuenta al construir un programa en un lenguaje de alto nivel. La regla general es que las instrucciones se ejecuten sucesivamente una tras otra, pero diversas partes del programa se ejecutan o no dependiendo de que se cumpla alguna condición. Además, hay instrucciones (los bucles) que deben ejecutarse varias veces, ya sea en número fijo o hasta que se cumpla una condición determinada.

Sin embargo, algunos lenguajes de programación más antiguos (como Fortran) se apoyaban en una sola instrucción para modificar la secuencia de ejecución de las instrucciones mediante una transferencia incondicional de su control (con la instrucción goto, del inglés "go to", que significa "ir a"). Pero estas transferencias arbitrarias del control de ejecución hacen los programas muy poco legibles y difíciles de comprender. A finales de los años sesenta, surgió una nueva forma de programar que reduce a la mínima expresión el uso de la instrucción goto y la sustituye por otras más compresibles.

Teoremas

Esta forma de programar se basa en un famoso teorema, desarrollado por Edsger Dijks-
tra, que demuestra que todo programa puede escribirse utilizando únicamente las tres
estructuras básicas de control siguientes:

Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrás de otra.

•  Selección: la instrucción condicional con doble alternativa, de la forma "if condición then instrucción -1 else
instrucción-2".

  Iteración: el bucle condicional "while condición do instrucción", que ejecuta la instrucción repetidamente mientras la condición se cumpla.

Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes (como los bucles for, repeat o la instrucción condicional switch-case), pero no la instrucción goto, se llaman estructurados. Ésta es la noción clásica de lo que se entiende por programación estructurada (llamada también programación sin goto) que hasta la aparición de la programación orientada a objetos se convirtió en la forma de programar más extendida. Esta última se enfoca hacia la reducción de la cantidad de estructuras de control para reemplazarlas por otros elementos que hacen uso del concepto de polimorfismo. Aun así los programadores toda vía utilizan las estructuras de control ( if, while, for, etc.) para implementar sus algoritmos porque en muchos casos es la forma más natural de hacerlo.

Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de programación. Este hecho es importante debido a que es mucho más fácil comprender completamente el trabajo que realiza una función determinada si todas las instrucciones que influyen en su acción están físicamente contiguas y encerradas por un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres estructuras de control, y de eliminar la instrucción de transferencia de control goto.



Estructuras de Control 



ESTRUCTURAS DE DECISIÓN

 Estas permiten seleccionar la próxima sentencia a ejecutarse sobre la base de una decisión expresión lógica o variable lógica).

Los tipos de estructuras de decisión que podemos encontrar son:

● Simples
● Dobles
● Múltiples

ESTRUCTURAS DE DECISION SIMPLE

La estructura de decisión más sencilla, es la llamada simple, Si-Entonces Su efecto es el de ejecutar una determinada acción cuando se cumpla una cierta condición y en caso contrario seguir el orden secuencial.
La selección Si-Entonces evalúa la condición y de acuerdo a los resultados:
  • Si es verdadero, ejecuta una o varias opciones
  • Si es falsa, entonces no hace nada y sigue la ejecución normal del programa

EJEMPLO:
  ● En Pseudocódigo

Si (condición) entonces             Si (A>B) entonces                              Si (hora <12)
entonces
sentencias...                       Escribir ('El mayor es A')                   Escribir ('buenos dias')

fin si                                             Fin si                                                   Fin si



 

ESTRUCTURAS DE DECISION DOBLES

Permiten ejecutar dos conjuntos de sentencias alternativos en función del resultado de la evaluación de una condición lógica.


Si el resultado es “cierto” se ejecuta un grupo de sentencias.
Si el resultado es “falso”se ejecuta otro grupo de sentencias.


EJEMPLO
  • En Pseudocodigo
Si ( decisión ) entonces            Si (edad < 18) entonces


    Sentencias....                           Escribir ('no puede votar')

Si no                                       Sino

    Sentencias....                           Escribir ('Si puede Votar')

fin si                                        Fin si


  Ejemplo Programación Estructurada de Decisión



ESTRUCTURAS DE CONTROL ITERACTIVAS

Las estructuras de control iterativas o de repetición, inician o repiten un bloque de instrucciones si se cumple una condición o mientras se cumple una condición.

Do-While

Artículo principal: Bucle do
Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.
   DO WHILE (Condición)
      (Bloque de sentencias)
   LOOP
que también puede expresarse:
   WHILE (Condición)
      (Bloque de sentencias)
   WEND

Do-Until

Se ejecuta el bloque de sentencias, hasta que la condición sea verdadera
   DO
      (Bloque de sentencias)
   LOOP UNTIL (Condición)

For-Next
Artículo principal: Bucle for
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número de veces.
  • Primero, se evalúan las expresiones 1 y 2, dando como resultado dos números.
  • La variable del bucle recorrerá los valores desde el número dado por la expresión 1 hasta el número dado por la expresión 2.
  • El bloque de sentencias se ejecutará en cada uno de los valores que tome la variable del bucle.
   FOR (Variable) = (Expresión1) TO (Expresión2) STEP (Salto)
      (Bloque de sentencias)
   NEXT

Ejemplo Programación Estructurada de Iteractivas



miércoles, 20 de noviembre de 2013

Bienvenido a la Pagina de Algorítmica y Programación


Concepto Algoritmo

Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y ordenada que permite solucionar un determinado problema. Se trata de una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten arribar a un resultado o solución.
Algoritmo
Según los expertos en matemática, los algoritmos permiten trabajar a partir de un estado básico o inicial y, tras seguir los pasos propuestos, llegar a una solución. Cabe resaltar que, si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por citar casos concretos, averiguar el cociente entre un par de dígitos o determinar cuál es el máximo común divisor entre dos cifras pertenecientes al grupo de los enteros), aunque no siempre implican la presencia de números.
Además de todo lo expuesto, en el ámbito matemático, y cuando estamos decididos a llevar a cabo la descripción de uno de esos algoritmos hay que tener en cuenta que se puede efectuar mediante tres niveles. Así, en primer lugar, nos encontramos con el de alto nivel, lo que es la descripción formal y finalmente la tarea de implementación.
Asimismo tampoco podemos pasar por alto que los algoritmos se pueden expresar a través de lenguajes de programación, pseudocódigo, el lenguaje natural y también a través de los conocidos como diagramas de flujo.
Un manual de instrucciones para el funcionamiento de un electrodoméstico y una serie de órdenes del jefe a un empleado para desarrollar una cierta tarea también pueden incluir algoritmos.
Esta amplitud de significado permite apreciar que no existe una definición formal y única de algoritmo. El término suele ser señalado como el número fijo de pasos necesarios para transformar información de entrada (un problema) en una salida (su solución). De todas formas, algunos algoritmos carecen de final o no resuelven un problema en particular.
Existen ciertas propiedades que alcanzan a todos los algoritmos, con excepción de los denominados algoritmos paralelos: el tiempo secuencial (los algoritmos funcionan paso a paso), el estado abstracto (cada algoritmo es independiente de su implementación) y laexploración acotada (la transición entre estados queda determinada por una descripción finita y fija).
Cabe mencionar por último que los algoritmos son muy importantes en la informática ya que permiten representar datos como secuencias de bits. Un programa es un algoritmo que indica a la computadora qué pasos específicos debe seguir para desarrollar una tarea.


Ejemplo Algoritmo