You are on page 1of 46

ALGORITMOS

• ANÁLISIS DE PROBLEMAS
• REPRESENTACIÓN DE ALGORITMOS
• DIAGRAMAS DE FLUJO
• PSEUDOCÓDIGO
¿QUÉ ES UN ALGORITMO?
Un algoritmo, nombre que proviene del matemático persa
Mohammed al-Khowârizmi, que vivió durante del siglo IX y alcanzó
gran reputación por el enunciado de las reglas paso a paso para
sumar, restar, multiplicar y dividir números decimales, es
sencillamente un conjunto de reglas para efectuar algún cálculo,
bien sea a mano o, más frecuentemente, en una máquina.

Un algoritmo es un conjunto finito de instrucciones no ambiguas y


efectivas que indican cómo resolver un problema, producen al menos
una salida, reciben cero o más entradas y, para ejecutarse, necesitan
una cantidad finita de recursos.
Una instrucción es no ambigua cuando la acción a ejecutar está
perfectamente definida.

Método preciso y finito para resolver un problema mediante una


serie de pasos.

NOTA:
Todo algoritmo se debe caracterizar por su:

• Precisión: en la indicación del orden en que deben ejecutarse


cada uno de los pasos, que debe ser siempre el mismo, para
unas mismas condiciones de ejecución.

• Finito: la obtención de éste se debe


alcanzar después de ejecutar un
número finito de pasos, es decir, se
debe alcanzar el resultado y en algún
momento debe terminar, por lo tanto
debe tener un punto particular de
inicio y fin.
• Definido o No Ambiguo: siempre sabe qué comando ejecutar
(no debe tener dobles interpretaciones); si se ejecuta el mismo
algoritmo el resultado siempre será el mismo, sin importar las
entradas proporcionadas.

• Correcto: Hace lo que se supone que debe hacer. La solución es


correcta.

• General: Debe tolerar cambios que se puedan presentar en la


definición del problema.

• Entrada: Definir lo que necesita el algoritmo

• Salida: Definir lo que produce.


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

Ejemplo:

En un algoritmo de receta de cocina se tendrá:

• Entrada: ingredientes y utensilios empleados.


• Proceso: elaboración de la receta en la cocina.
• Salida: terminación del plato (por ejemplo, cordero).
Si un conjunto de instrucciones tiene todas las características de
un algoritmo, excepto ser finito en tiempo se le denomina proceso
computacional.

Los sistemas operativos son el mejor ejemplo de proceso


computacional, pues están diseñados para ejecutar tareas
mientras las haya pendientes, y cuando éstas se terminan, el
sistema operativo entra en un estado de espera, hasta que llegan
más, pero nunca termina.
Se asume que un problema tiene solución algorítmica si además de
que el algoritmo existe, su tiempo de ejecución es razonablemente
corto.

En general la cantidad de recursos que consume un algoritmo para


resolver un problema se incrementa conforme crece el tamaño del
problema.

Dependiendo del problema en particular, uno o varios de sus


parámetros será elegido como tamaño del problema.
Se asume que un problema tiene solución algorítmica si además de
que el algoritmo existe, su tiempo de ejecución es razonablemente
corto.

En general la cantidad de recursos que consume un algoritmo para


resolver un problema se incrementa conforme crece el tamaño del
problema.

Dependiendo del problema en particular, uno o varios de sus


parámetros será elegido como tamaño del problema.
¿QUÉ ES LA ALGORITMIA?
La algoritmia se puede definir simplemente como el estudio de los
algoritmos.

Cuando nos disponemos a resolver un problema, es posible que


haya toda una gama de algoritmos disponibles. En este caso, es
importante decidir cuál de ellas hay que utilizar.

Dependiendo de nuestras prioridades y de los límites del equipo


que esté disponible para nosotros, quizá necesitemos seleccionar el
algoritmo que requiera menos tiempo, o el que utilice menos
espacio, o el que sea más fácil de programar y así sucesivamente.
La respuesta depende de mucho factores.
¿QUÉ ES UN
PROGRAMA?
Es la descripción de un algoritmo en un lenguaje de
programación, es decir, un lenguaje orientado a optimizar la
descripción de los pasos que debe realizar el ordenador para
alcanzar el objetivo final del algoritmo.

Un programa de software es un conjunto de sentencias o


instrucciones al computador. El proceso de escritura o
codificación de un programa se denomina programación y las
personas que se especializan en esta actividad se denominan
programadores.
Es la descripción de un algoritmo en un lenguaje de
programación, es decir, un lenguaje orientado a optimizar la
descripción de los pasos que debe realizar el ordenador para
alcanzar el objetivo final del algoritmo.

Según el objetivo del programa y el lenguaje en el que se describe,


se distinguen diversos tipos de programas.

• Programa fuente
• Objeto
• Ejecutable o binario
• De utilidad
• De aplicación
¿QUÉ SON LOS LENGUAJES DE
PROGRAMACIÓM?
Es el lenguaje empleado por el programador para dar al ordenador
las instrucciones necesarias para la ejecución de un algoritmo
determinado, constituyendo un programa fuente.

Existen diversos tipos de lenguajes de programación, según la


proximidad de su gramática y tipos de instrucciones a las específicas
del ordenador en el que deba ejecutarse el programa:

• De alto nivel: son aquellos en las que las instrucciones son descritas en un
lenguaje próximo al empleado por los humanos, ejemplo: Pascal, Fortran, Basic,
Cobol, ADA, C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP, JavaScrip.

• De bajo nivel o Ensambladores: son aquellos en los que las instrucciones


corresponden de una forma casi unívoca con las ejecutables por el ordenador.
¿QUÉ UNA SENTENCIA?
Es una instrucción que podemos expresar en un lenguaje de
programación. La precisión de las sentencias determina la precisión
de la ejecución del programa, y para conseguirla deben ajustarse a
una sintaxis muy concreta.

En la descripción de un algoritmo o programa debemos expresar, no


sólo las acciones a realizar, sino también las condiciones en las que
éstas deben realizarse.

Para conseguir controlar la secuencia (orden) en la que deben


ejecutarse cada una de las sentencias de un algoritmo, se ha definido
un reducido, pero suficiente, número de tipos de sentencias:
• Secuenciales: son aquellas que se ejecutan en secuencia, es
decir, después de la anterior y antes de la siguiente. Son
acciones elementales que se deben ejecutar para alcanzar el
objetivo final del algoritmo.

• Selectivas: son aquellas que permiten condicionar la ejecución


de una o mas sentencias al cumplimiento de una condición, es
decir, permite seleccionar una acción a realizar entre varias
alternativas.

• Iterativas: son las que permiten conseguir que una determinada


acción se ejecute más de una vez.
• Secuenciales: son aquellas que se ejecutan en secuencia, es
decir, después de la anterior y antes de la siguiente. Son
acciones elementales que se deben ejecutar para alcanzar el
objetivo final del algoritmo.

• Selectivas: son aquellas que permiten condicionar la ejecución


de una o mas sentencias al cumplimiento de una condición, es
decir, permite seleccionar una acción a realizar entre varias
alternativas.

• Iterativas: son las que permiten conseguir que una determinada


acción se ejecute más de una vez.
DIAGRAMAS DE FLUJO
• Un diagrama de flujo representa la esquematización gráfica de
un algoritmo. En realidad muestra gráficamente los pasos o
procesos a seguir para alcanzar la solución de un problema.

Su correcta construcción es sumamente importante para que a


parte del mismo se escribe un programa en algún lenguaje de
programación. Si el diagrama de flujo está completo y correcto, el
paso del mismo a un lenguaje de programación es relativamente
simple y directo.
Los símbolos usados son recomendaciones de la “International
Organization for Standardization” (ISO) y la “American National
Standars Institute (ANSI).
Los símbolos usados son recomendaciones de la “International
Organization for Standardization” (ISO) y la “American National
Standars Institute (ANSI).
REGLAS PARA

CONSTRUIR UN DIAGRAMA
DE FLUJO
1. Todo diagrama de flujo debe tener un inicio y un fin

2. Las líneas utilizadas para indicar la


dirección del flujo del diagrama deben ser
rectas, verticales y horizontales.
3. Todas las líneas utilizadas para indicar la dirección de flujo del
diagrama deben estar conectadas. La conexión puede ser a un
símbolo que exprese lectura, proceso, decisión, impresión, conexión
o fin de diagrama.
4. El diagrama de flujo debe ser construido de arriba hacia abajo
(top–down) y de izquierda a derecha (right – left)

5. La notación utilizada en el diagrama de flujo debe ser


independiente del lenguaje de programación. La solución presentada
en el diagrama puede escribirse posteriormente y fácilmente en
diferentes lenguajes de programación.

6. Es conveniente cuando realizamos una tarea compleja poner


comentarios que expreses o ayuden a entender lo que hicimos.

7. Si el diagrama de flujo requiera más de una hoja para su


construcción debemos utilizar los conectores adecuados y enumerar
las páginas convenientemente.
8. No puede llegar más de una línea a un símbolo
EJEMPLOS DE SIMBOLOGÍA VÁLIDA Y NO VÁLIDA
¿QUÉ ES EL
PSEUDOCÓDIGO?
Es la descripción de un algoritmo, realizada en un lenguaje
específico de descripción de algoritmos.

El lenguaje para la descripción de un algoritmo, debe permitirnos


alcanzar la condición de precisión impuesta al algoritmo.
Existen dos tipos de lenguajes algorítmicos:

1. Semiformales:

Su objetivo fundamental es simplificar tanto la descripción del


algoritmo, como la comprensión del mismo por un humano.

Las reglas gramaticales y sintácticas que definen este tipo de


lenguajes se han simplificado al mínimo para garantizar la
precisión requerida en su interpretación.
2. Formales:

Su objetivo fundamental es permitir a un ordenador interpretar


el algoritmo descrito, manteniendo al máximo la legibilidad de la
descripción por un humano.

En estos tipos de lenguaje, las reglas gramaticales y sintácticas


deben ser mucho más precisas e inequívocas de modo que
requieran una complejidad excesiva para su interpretación por el
ordenador.

http://pseint.sourceforge.net/

You might also like