Vous êtes sur la page 1sur 11

En matemticas, lgica, ciencias de la computacin y disciplinas relacionadas,

un algoritmo (del griego y latn, dixit algorithmus y este a su vez del matemtico persa AlJuarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y
finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a
quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los
pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el
objeto de estudio de la algoritmia.1
En 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 por parte de su patrn. Algunos ejemplos
en matemtica son el algoritmo de multiplicacin, para calcular el producto, el algoritmo de
la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener
el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver
un sistema de ecuaciones lineales.

Algoritmo
ALGORITMOS
DEFINICIN: Un Algoritmo, se puede definir como una secuencia de instrucciones que
representan un modelo de solucin para determinado tipo de problemas. O bien como un
conjunto de instrucciones que realizadas en orden conducen a obtener la solucin 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 programacin. En cada problema
el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente
programacin. El algoritmo es la infraestructura de cualquier solucin, escrita luego en
cualquier lenguaje de programacin.
Programa: Un programa es una serie de instrucciones ordenadas, codificadas en
lenguaje de programacin que expresa un algoritmo y que puede ser ejecutado en un
computador.
CLASIFICACIN DE ALGORITMOS: Los algoritmos se pueden clasificar en cuatro tipos:

Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una


computadora. Ejemplo: Frmula aplicada para un clculo de la raz cuadrada de un valor
x.
Algoritmo no computacional: Es un algoritmo que no requiere de una
computadora para ser ejecutado. Ejemplo: Instalacin de un equipo de sonido.

Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o


instrucciones no estn involucrados clculos numricos. Ejemplos: Las instrucciones para
desarrollar una actividad fsica, encontrar un tesoro.
Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o
instrucciones involucran clculos numricos. Ejemplo: Solucin de una ecuacin de
segundo grado.
CARACTERSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes
caractersticas:

1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera
precisa e inequvoca que se debe hacer.
2. Debe ser Finito, porque un algoritmo debe tener un nmero limitado de pasos.
3. Debe ser Definido, porque debe producir los mismos resultados para las mismas
condiciones de entrada.
4. Puede tener cero o ms elementos de entrada.
5. Debe producir un resultado. Los datos de salida sern los resultados de efectuar las
instrucciones.
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 despus de la ejecucin del algoritmo.
TCNICAS DE REPRESENTACIN: Para la representacin de un algoritmo, antes de
ser convertido a lenguaje de programacin, se utilizan algunos mtodos de representacin
escrita, grfica o matemtica. Los mtodos ms conocidos son:

Diagramacin libre (Diagramas de flujo).


Diagramas Nassi-Shneiderman.
Pseudocdigo.
Lenguaje natural (espaol, ingls, etc.).
Frmulas matemticas.

La resolucin de un problema mediante un ordenador consiste en el proceso que a partir de


la descripcin de un problema, expresado habitualmente en lenguaje natural y en trminos
propios del dominio del problema, permite desarrollar un programa que resuelva dicho
problema.
Este proceso exige los siguientes pasos:

Anlisis del problema.

Diseo o desarrollo de un algoritmo.

Transformacin del algoritmo en un programa (codificacin).

Ejecucin y validacin del programa.

Los dos primeros pasos son los ms difciles del proceso. Una vez analizado el problema y
obtenido un algoritmo que lo resuelva, su transformacin a un programa de ordenador es una
tarea de mera traduccin al lenguaje de programacin deseado.

Algoritmos
Los algoritmos son el fundamento de la programacin de computadoras, para que la computadora pueda
ejecutar una tarea es necesario que primero se disee el algoritmo correspondiente, es decir, especificar las
operaciones necesarias para transformar los datos de entrada en datos de salida. Una vez diseado y
probado el algoritmo, se trasforma en el programa correspondiente. El programa esta compuesto por el
algoritmo, la especificacin de los datos y las instrucciones que permiten la comunicacin entre los usuarios
del programa y la mquina.
Definicin de algoritmo: Un algoritmo es un conjunto finito de instrucciones cuyo fin es realizar una tarea;
este conjunto finito de instrucciones debe tambin ser preciso y determinstico.

Preciso: el algoritmo debe ejecutar la tarea para el cual fue diseado.


Determinstico: significa que el resultado debe depender estrictamente de los datos suministrados,
siempre que el algoritmo se ejecute con un mismo conjunto de datos de entrada, el resultado debe ser
siempre el mismo.

Son ejemplos de algoritmos los mtodos utilizados en aritmtica para sumar, restar, multiplicar y dividir
cantidades; la aplicacin de la frmula cuadrtica para encontrar las races de un polinomio de segundo grado
En todos ellos se cumplen las tres caractersticas anteriores.
Un algoritmo eficiente y confiable es el producto de un anlisis exhaustivo del problema, para determinar la
mejor alternativa de solucin.

Elementos bsicos en el diseo de algoritmos

HERRAMIENTAS PARA EL DISEO DE ALGORITMOS


Las dos herramientas ms utilizadas para disear algoritmos son el Pseudocdigo y el Diagrama de flujo.

1. Pseudocdigo
Es un lenguaje simplificado para describir un algoritmo utilizando una mezcla de frases en lenguaje comn, y
palabras claves que indican el inicio y el fin del algoritmo y las instrucciones especficas a realizar.
Por ejemplo, el siguiente pseudocdigo corresponde al algoritmo para calcular el rea del rectngulo: el
algoritmo calcula el rea (a) de un rectngulo cualquiera, si se le suministra la longitud de de la base (b) y la
longitud de la altura (h).

Las palabras subrayadas se llaman palabras reservadas, se deben utilizar sangras que facilitan la lectura del
algoritmo Las instrucciones en pseudocdigo son fciles de codificar en un lenguaje de programacin.

2. Diagrama de flujo
El diagrama de flujo es la representacin grfica de un algoritmo; para ello se utiliza un conjunto
de smbolos estndares mundialmente utilizados y desarrollados por organizaciones tales como ANSI
(American National Institute) e ISO (International Standard Organization para la elaboracin de diagramas de
flujo;
En el diagrama cada smbolo representa una accin en concreto; y cada instruccin del algoritmo se visualiza
dentro del smbolo adecuado. Los smbolos se conectan con flechas para indicar el orden en que se ejecutan
las instrucciones.
Por ejemplo, el siguiente diagrama de flujo corresponde al algoritmo para calcular el rea del rectngulo

El ovalo rotulado con la palabra Inicio indica el comienzo del algoritmo, el paralelogramo es el smbolo de
entrada de datos e indica que se lee el valor de la base (b) y el valor de la altura (h), el rectngulo es el
smbolo de proceso e indica que se realiza un proceso sobre los datos de entrada para calcular el rea (a)
multiplicando la base por la altura, (utilizaremos el * como operador de multiplicacin), el siguiente es el
smbolo de salida y representa un documento e indica que se muestra el valor del rea obtenido, en cualquier
dispositivo de salida, finalmente el ovalo rotulado con la palabra Fin indica que se ha llegado al fin del
algoritmo.
Los smbolos que se utilizaran para dibujar los diagramas de flujo son los siguientes:

Reglas para la construccin de diagramas de flujo

1. Todo diagrama de flujo debe tener un inicio y un fin.

2. Las lneas de flujo nunca deben cruzarse, para evitarlo deben utilizarse el smbolo conector.

3. Las lneas de flujo deben terminar siempre en un smbolo.

4. No puede llegar ms de una lnea de flujo a un smbolo.

5. Todos los smbolos en un diagrama deben estar conectados mediante una lnea de flujo; todo
smbolo debe tener una lnea de flujo entrando y otra saliendo salvo el smbolo que indica inicio o fin del
diagrama.
6. Como regla general el flujo del proceso debe mostrarse de izquierda a derecha y de arriba abajo.
Se recomienda mantener uniforme el tamao de los smbolos, por lo que el texto que se escribe dentro no
debe ser muy extenso, recurdese que el propio smbolo indica la operacin a realizar. La forma en que se
capturan los datos de entrada o se muestran los datos de salida se detallarn al codificar el algoritmo en el
lenguaje de programacin. Esto mismo se recomienda para la representacin del algoritmo en pseudocdigo.

DECLARACION DE LOS DATOS


Como ya se dijo los datos a procesar y los datos resultantes del proceso se almacenan en la memoria
principal de la computadora, tambin conocida como memoria RAM (Random Access Memory), y tambin se
destinan localidades de memoria cuando se necesita almacenar resultados de clculos intermedios. Para
poder localizar los datos en la memoria se les asignan nombres; que en el ambiente de la programacin se
conocen como identificadores de datos. Nombraremos los datos siguiendo las reglas para definir
identificadores especificadas en la mayora de los lenguajes de programacin:

Se utilizan secuencias de caracteres formadas por caracteres alfabticos y los dgitos decimales.

El primer elemento de la secuencia debe ser un carcter alfabtico.

No se utilizan signos de acentuacin

No se utilizan espacios, si se necesita separador debe utilizarse el carcter de subrayado (_) o guin
bajo.

No se permite el uso de las palabras reservadas o palabras claves


Se recomiendan nombres cortos y nemotcnicos (su propio nombre indica lo que representan).
Por ejemplo:
1) Son identificadores vlidos los siguientes:
longitud, altura, dato1, dato2, Coeficiente_a, numero_menor, EDAD
2) No son identificadores vlidos los siguientes:
C , porque el carcter no es un carcter permitido
1_dato, porque comienza con un dgito
numero menor, porque tiene un espacio en blanco como separador
leer, escribir e inicio, porque son palabras reservadas

INSTRUCCIONES
Un algoritmo normalmente incluye una gran cantidad de instrucciones, tambin llamadas sentencias;
inicialmente se presentan las instrucciones de asignacin, lectura y escritura; definiendo cada una de ellas y
mostrando su representacin en pseudocdigo, su correspondiente smbolo en el diagrama de flujo y
ejemplos.
Instruccin de asignacin
Esta instruccin asigna valor a un identificador, cuando se ejecuta una instruccin de asignacin se almacena
el valor asignado en la localidad de memoria reservada para el identificador, este identificador tambin se
conoce con el nombre de variable y se caracteriza porque puede tomar diferentes valores durante la ejecucin
del algoritmo.
El formato de la instruccin de asignacin es el siguiente:

Donde variable es un identificador vlido y expresin puede estar formada por un valor, por un conjunto de
valores y operadores o por una funcin En el espacio de memoria asignado a la variable se almacena el valor
resultante de la expresin.
Una asignacin tiene tres partes, la variable, el signo de asignacin = y la expresin cuyo valor se asigna a la
variable. La variable siempre va a la izquierda del smbolo =, mientras que la expresin siempre estar a la
derecha.
Instruccin Leer
Se define la instruccin Leer para indicar que se debe enviar informacin desde un dispositivo de entrada de
datos, como el teclado, hacia la memoria En la memoria los datos sern ubicados a travs de su nombre o
identificador asignado.
El formato de esta instruccin es el siguiente:

Los smbolos < > no se incluyen en la codificacin, lo que indican es que el programador debe definir lo que
se le pide, en este caso una lista de variables.

Ejemplos de Pseudocdigo
Ejemplo: Realizar el pseudocdigo de un programa que permita calcular el rea de un
rectngulo. Se debe introducir la base y la altura para poder realizar el clculo..
Programa; rea
Entorno: BASE, ALTURA, AREA son nmero enteros
Algoritmo:
escribir Introduzca la base y la altura
leer BASE, ALTURA
calcular AREA = BASE * ALTURA
escribir El rea del rectngulo es AREA
Finprograma
Ejemplo: Realizar el pseudocdigo que permita al usuario introducir por teclado dos notas,
calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son nmeros enteros
Algoritmo:
escribir Introduzca las notas
leer NOTA1,NOTA2
calcular SUMA = NOTA1 + NOTA2
calcular PRODUCTO = NOTA1 * NOTA2
escribir La suma de las dos notas es: SUMA
escribir El producto de las dos notas es :PRODUCTO
Finprograma
Ejemplo: Realizar el pseudocdigo de un programa que permita saber si un nmero es
mayor, menor o igual a cero.
Programa: ComparaNmeros
Entorno: NUMERO es un nmero entero
Algoritmo:
Escribir Introduzca un nmero
leer NUMERO
SI NUMERO>0 ENTONCES
escribir El nmero introducido es positivo
SI NO
SI NUMERO<0 ENTONCES
escribir El nmero introducido es negativo
SI NO
escribir El nmero es cero
FINSI
FINSI
Finprograma
Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la
coordenada x y escriba el resultado en algn dispositivo de salida:
ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x,y) de tres puntos
SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha.
VARIABLES: i:entera

x,y: real
INICIO
PARA i=1 HASTA 3 CON INCREMENTO +1
ESCRIBE "Abscisa del punto nmero ", i
LEER x
ESCRIBE "Ordenada del punto nmero ", i
LEER Y
ESCRIBE "El punto es (" x+3","y")"
FIN_PARA
FIN
El programa equivalente a este algoritmo se muestra a continuacin. Como podemos apreciar en un
programa en Pascal es importantsimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia
termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes.
program lee_tres_vertices;
var x,y:real;
i:integer;
begin
for i:=1 to 3 do
begin
write ('Abscisa del punto nmero ',i); readln(x);
write ('Ordenada del punto nmero ',i); readln(y);
writeln (' El punto es (',x+3,',',y,')');
end;
end;

Problema: calcular y mostrar la suma de los diez


primeros nmeros entre 1 y 1000 que sean divisibles
por uno dado.
programa suma_divisibles
variables natural : divisor, suma, contador, nmero
inicio programa
divisor leer Introduce el divisor:
suma 0
contador 0
para nmero desde 1 hasta 1000 hacer
si divisor divide a nmero entonces
suma suma + nmero
contador contador + 1
fin si
si contador = 10 entonces
interrumpir
fin si
fin para
escribir La suma es, suma
fin programa